4 ms·
Are there any HNers around who can offer some good context for this? While reading this, the list of words I'd never heard before as a software engineer grew v
by cvoss 3y ago
Are there any HNers around who can offer some good context for this?
While reading this, the list of words I'd never heard before as a software engineer grew very long. I started looking some of them up, found a glossary, and that only served to increase the list of unknown words exponentially.
Jet gate core Hoon battery. I still don't know what I'm dealing with. It sounds like a really awesome system on the one hand, and sounds like smoke and mirrors on the other.
What are Plunder and Urbit, actually?
- pfych 3y agoI loathe Urbit for naming everything how it's named it, to quote this article: > "Do we really have to be bound by what he received from aliens during an acid trip?" Urbit, and plunder, TLDR from someone who dipped their toe into urbit a year or two ago (marking things I'm still uncertain about with "?"): A from scratch system and networking "protocol"(?) that features its own micro-languages. You can write programs which communicate with each-other, and their state is somewhat synced between users(?), meaning it's possibile to pick state back up from elsewhere as a user. However this is all underpinned with a purposefully cryptic language, horrific political stances by developers, and really not developer friendly interfaces for creating programs. Also, since urbit was really the first attempt at this idea, it does not scale very well and suffers from major scalability issues relating to the amount of data being thrown around by users and their apps on the network. Honestly, writing this out I've probably done a shit job at explaining it but this is what I thought about it after using it for 6-7 months as a hobbyist. I dont use it anymore, but I'm still quite interested in the idea of a "from scratch" micro language that can run on anything. The idea of Perma-computing[^1] I guess? [^1]: https://permacomputing.net/ https://permacomputing.net/
- Moon_99 3y agoUrbit is ok, give it a minute.
- thrtythreeforty 3y agoI am not an Urbit enthusiast but I did spend some time back in 2015 trying to grok their docs. So I was able to read this doc successfully. (It is exceptionally well written for such an obscure topic, one which is often intentionally obfuscated.) Urbit terminology is obscure, probably intentionally so. (As an example, Urbit picked 0 = true and 1 = false, just because it's different than what you're used to.) Nock is a virtual machine that defines only a few primitives. If I recall correctly, there is no "add," only +1. If you want to add 2, run +1 twice. The intent is that the VM is so impossibly simple that there is nothing to add. Just express whatever new semantics you want in terms of the frozen core. A "jet" is a JIT-compiled version of a Nock expression, via pattern matching. The expectation is that the Nock interpreter will notice common patterns and execute some identical, but faster, computation under the hood to evaluate a jet. To continue the example, repeated application of "increment" could be lowered to the machine's add instruction. (However, I was under the impression that the pattern matching happened automatically, but it apparently involves Nock primitive 11, which is... less elegant. Sounds like Plunder gets this part right.) Hoon is a small language on top of Nock ("typed Nock" if you like, but I understand that also macro-expands to pure Nock). I find it absolutely impossible to read because it makes extensive use of sigils ("runes"). A gate is a Hoon function. An arm is basically a member method or namespace member function. You get the idea. The article does a good job of using the more-standard term to describe the remaining pieces: arvo (kernel), vane (driver), etc. Since Urbit is so opinionated on these, my prediction is that eventually someone is going to steal one or two Urbit terms to describe something another system does - probably "jet" if I had to guess - and that will be Urbit's ultimate legacy.
- davidgerard 3y ago> A "jet" is a JIT-compiled version of a Nock expression, via pattern matching. they were also caught cheating, e.g. when the jet for markdown had different bugs to the alleged Urbit version
- sol_plunder 3y agoPlunder dev here: Here is a recent attempt to explain the paradigm succinctly: https://git.sr.ht/~plan/plunder/tree/master/item/doc/PLAN.md https://git.sr.ht/~plan/plunder/tree/master/item/doc/PLAN.md Very open to feedback as to how to express these ideas more clearly.