- cross-posted to:
- technology@beehaw.org
- cross-posted to:
- technology@beehaw.org
I am a jr. Dev, but not imaginative. I find most programming languages to be poorly advertised and explained. Usually they assume too much knowledge.
What would I use Web Assembly, like Goblin (https://spritely.institute/), for? Are there examples of Web Assembly programs?
It is for web pages, or online games? Can they be run offline?
I’ve made some contributions to Goblins and Hoot and am close with the members of Spritely in several ways so I have a good idea how they work.
Goblins is not directly related to WebAssembly, but it can now run in WebAssembly through Guile Hoot.
Hoot is one of Spritely’s projects, and it’s a way to run Guile Scheme, a lisp programming language, in the browser by compiling it into WebAssembly which is a web standard that lets you run code from many different programming languages (C++, Rust, Zig, etc) in the browser.
Goblins is a framework/library written in Guile Scheme that lets you write programs that are transactional, secure and distributed, because it abstracts away the complexities related to communicating across servers, synchronizing transactions, and distributing secure capabilities. It is strongly based on the well researched concept of Object Capability Security, which is well described in their whitepaper.
The goal of Goblins is to be able to create regular programs that can be distributed across networked machines/servers/clients easily without having to architect your code explicitly to handle the details of communication across the network. This allows for unlimited types of “secure collaboration”, apps that can be social (think apps like Google Docs, but distributed and open source) Everything in Goblins runs inside multiple “vats” and these vats can communicate with each other with transactions locally or over the network–the code is the same both ways.
The goal of Hoot is to be able to run Goblins (and many other programs written in Guile) in the browser, so that programs written with Goblins can be easily run by users. If you like the language Guile, Scheme or lisps in general it’s a really great project for getting code into the web browser!
I also recommend watching Christine Lemmer-Webber’s talks about Goblins, they are very fun!
The goal of Goblins is to be able to create regular programs that can be distributed across networked machines/servers/clients easily without having to architect your code explicitly to handle the details of communication across the network.
Ah! So a new MPI!
Any big packages, like AMBER or CHARMM, picking it up?
It’s not really like MPI. It’s more oriented towards writing social software that communicates over the Internet, as a next step beyond ActivityPub. You could use it for a lot of things, but one example is to write federated software like Lemmy where you have lots of instances communicating with each other. But it makes things more flexible, you can really make any sort of social app with it.
Thanks for the nicely written summary. Sounds like an interesting project. I haven’t written any Scheme in a long time, although I’ve worked with R a lot (which is actually kind of lisp-y internally anyway). I messed around with Clojure in the past, but I didn’t use it for anything serious. I think it’s cool when older programming languages get revised and refreshed.