90 comments

[ 10.1 ms ] story [ 620 ms ] thread
> “urbit would win”

I wonder what Urbit will win, and whether it is a prize worth chasing.

The stated goal of federated everything is not too shabby.
it's extremely easy to state very cool goals, and even better when you present some impenetrable code that barely works to go along with them
Glad to see a bit of conversation here about Urbit and competitors. I had a brief go at Urbit, running it on my server and interacting with the community. While it was an interesting take on networking and when it worked it worked great, when it didn't work, it was a fucking nightmare to fix, my planet is still stuck after an update and I inevitably gave up.

I'm glad to see Plunder having another go at the ideas Urbit had, some of it was really interesting and it'll be cool to see how these ex-devs run with it.

I am biased with my own opinion of Urbit, as I’ve been visited by similar muses desiring similar results. Urbit to me today in its path and form resemble an ontological existential crisis resembling sleight of hand resulting in incompatible execution with what the vision was. It probably did not help to have the visionary spirit literally lost due to various reasons one may argue to various character issues.

The idea of Urbit is very interesting, the initial older premise was sound. The current execution is a fallacy of its own goals. It does not replace computing. It does not even proxy it. It literally is built on top of everything else which it directly against the impetus of the project in the first place.

A total new way to solve computation with no baggage was a great vision; especially one that was a sort of Maxwell’s minimally defined set of functions that represent computing forever and ever in the most reducible form. The ideas still have legs. The project doesn’t. It forked into a territory that is unable to fix itself. It would have to abandon all “jets” and all bs cryptohype nuisance as well.

Love the original design.

I ditto a lot of the opinions stated here. The vision of redesigning computing and networking was novel. But as a developer, when I started diving into it and writing code to interact with it, I started to see all the cracks. Its a shame.
> especially one that was a sort of Maxwell’s minimally defined set of functions that represent computing forever and ever in the most reducible form.

Can you elaborate?

Not OP, and I don't understand Urbit particularly well, but I think this part of the doc is the salient feature:

> The data model of Nock is the noun (*), which is either a natural number (@, called an "atom") or a pair of nouns

> The noun is famously simple; it competes with the list as the simplest possible recursive datatype

All code and all data is like that. So to me it's basically a Lisp-y networked operating system.

This also makes it very inefficient, which the doc explains. But the idea is to build everything on top of the most minimal axioms, which never change.

This just describes Lisp (itself a materialization of the lambda calculus, which is your "Maxwell equations of computing")?!
It specifically refuted lambda calculus as both minimal and rigorous due to the stipulation of code as data vs data as code. Nouns also being more general than lists.
sort of, in theory, but in most practical lisp/scheme implementations, certain values are opaque primitives. often functions are opaque. hashmaps, etc, are often primitives which don't have a "dependable formal representation". this means they cannot be e.g. serialized and coherently transmitted between processes.

Urbit solved this with nouns, which is arguably a substantial innovation. PLAN (in the author's view, which I find convincing) improves on this: https://git.sr.ht/~plan/plunder/tree/master/item/doc/PLAN.md

This looks really weird to me. I very much doubt this can be made into something practically useful.

Have you seen Unison[1]?

Unison seems like a much more interesting approach to making functions "serializable" and functional programming acquiring distributed capabilities almost transparently.

[1] https://www.unisonweb.org/

Hashed computations including functions distributed over something like DHT is a great concept with a lot of potential for a new form of computation.
Hmm ... I haven't looked at Urbit in years, but this doc was pretty well written -- and it makes me curious about a Unix-y and loosely coupled version of the system.

It always seemed a big no-no to couple the VM and OS to the language. Language diversity is a good thing.

What would it take to build something with the interesting properties of Urbit on a more normal, not-purposefully-obscure stack?

As far as I understand, Guix has deterministically built the whole ecosystem from a 357 byte bootstrap

https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-...

OK so now you have, C compilers, Python, JavaScript, etc.

---

Now what do you need to do to Linux? Do you need to get rid of time() and rand() ? (Not sure if Urbit is functional like that)

---

What about the networking? The whole network has a single state?

So is this like if you had all of these separate Linux systems all writing to one big distributed git repository or something? I never really understood how the networking is done.

---

This leaves the identity parts; I would also leave out the crypto parts too ...

But as far as language / OS / networking, I'm sorta interested in what a "conventional" system of this type would look like. I actually think it has some practical applications for some kind of functional distro like Guix (since these distros all become networked systems eventually -- they are not really single-machine systems)

I also wonder if this already exists -- are there "non-obscure" and "non-ideological" systems like this? When you add some language diversity, it becomes more interesting to me.

yeah, Urbit seems to be an uncredited crib of the original Nix paper https://reddragdiva.tumblr.com/post/724590682207141888/so-it...
Nix was novel because it brought reproducibility, immutability, etc. to a real system running on Linux -- but if you don't have the Linux constraint, then the ideas go back MUCH further

And Nix is a package manager / build system, while Urbit is more of a "distributed Lisp OS", with networking and identity

Or at least, I'd like to read a post that's not so clearly driven by personal animosity :-P

---

FWIW I briefly worked on Google's Bazel in ~2006, and all the Nix ideas were there, but nobody referenced Nix. They referenced Vesta (and other systems):

https://en.wikipedia.org/wiki/Vesta_(software_configuration_...

from 1993. Bazel is way faster and more distributed than Nix, probably because it's just had much more engineering effort behind it.

Urbit (also a real system running on Linux) is an obfuscated implementation of a lot of ideas going back to Lisp machines - but it seems proximately to be a Nix crib.

The key point is really that Urbit is not a fount of hitherto unknown novelty, however Yarvin paints it (2010):

> So we have the Urbit problem: a frozen, universal, static functional namespace. In other words: a standard static functional namespace. Perhaps we are getting further into the rocket-science department. It is not hard to write a functional namespace. But how can we standardize a functional namespace? You will search the RFC Editor's shelves in vain for anything even remotely like Urbit.

http://moronlab.blogspot.com/2010/01/urbit-functional-progra...

As you note, this claim of novelty is nonsense.

New basic computing primitives are like punk rock bands: the first few are fresh and exciting, the ten thousandth is … not. Turing machines and Lisp were new and interesting, Urbit is Yarvin’s favourite toy language.

Urbit does well-understood things, badly.

To be clear, I was asking for a distillation of the novel parts of Urbit, without all the obscurantism (and I do think there is novelty; the Plunder project seems to be evidence of that)

I don't agree with the post that says it's a derivative of Nix. Nix is interesting, and there are some common ideas, but it doesn't make any sense to say Urbit derives from it

The 2010 post cites Arc and VPRI as other "software from scratch" efforts

What other "software from scratch" efforts have extended into the realm of networking?

Nix/Guix don't tackle that problem or claim to -- e.g. it doesn't make sense to write a chat app "running in" Nix/Guix because they are package managers, not OSes. The OS is Linux; the networking stack is the Internet.

---

It's also an open question how self-hosted Urbit really is though ... if there's not an instantiation of it that's outside of Unix/Windows/the Internet, then I would say it falls short of "software from scratch". Also, it seems like the current dev process leans heavily on cloud software; it's not really self-hosted or self-sustaining.

Is it really a computer, or is it an app running inside existing computers?

The uxn system that's gotten a bunch of attention on HN is interesting because it does run on hardware, divorced from Unix/Windows - https://100r.co/site/uxn.html (but it also doesn't tackle networking)

It literally is built on top of everything else which it directly against the impetus of the project in the first place.

This is a critique that boils down to "they haven't achieved their actual goal in full yet".

What do you want? They have to start somewhere, and when you are reimagining an existing system from the ground up, there will necessarily be usage of existing tools even if your goal is to eventually supplant them. The whole point of something like jets is because you have to interact with what exists right here right now, at least with this there is a bright line between the new stuff (running purely in a nock/hoon VM), the bridge code, and the runtime for what ever operating system.

The fact that something like https://github.com/mopfel-winrux/NockPU (nock in hardware) is even possible is amazing.

My point was that it is ontologically opposed to its purpose and inception. It was on track and sent off the rails. It required a start, it changed its direction, and is no longer the same project in spirit. Urbit as the original idea which was not supposed to change has changed and more specifically Tlon is responsible for the change of direction which they’ve even forked into multiple teams now.

There existed at some point progress towards the vision of Urbit, and as of now it is so far beyond that scope it has retreated from a static namespace of computational vapor ware into perpetual “non-maxwellian” ever-growing “ball of mud” bolted onto the status-quo of today with ever increasing complexity.

\(-.-)/

Okay, I tried to read some of this, just like I tried once years ago to look at what is Urbit, and I don't get it. Maybe it's profound, but if you can't write roughly two paragraphs that clearly describe it, I'm out.
Urbit - Weird ass hierarchical distributed computing framework with aspects of cultishness. Some sort of combined bytecode vm and networked server process, that is only allowed to participate in the network if your access is blessed by someone further up the hierarchy. It is riddled with jargon, has its own languages nock (the bytecode) and hoon (a higher level) which use their own sorts of conventions and their own terms to talk about them. In a sort of scientology-ish kinda way, the jargon appears to be explicitly designed to separate the in-group from others.

The whole thing was originated by a man (Curtis Yarvin) with some very questionable political views, and even though he isn't directly involved in the project any more, he seems to have baked some of them into his design of the system.

It has been around for about 13 years and is one of those "we're going to change everything!" projects that never really gets off the ground, but has a tranche of true believers.

At this point it's probably something to be filed in the same sort of mental folder as TempleOS, though with less religion and more authoritarianism.

From a quick read, 'Plunder' appears to be an attempt to use similar ideas to make a slightly more functional system. As such I'd regard it as a little like FreeZone scientology - a splinter group who can see the issue with the church, but still believe in the fundamental model for whatever reason.

Also you need to buy a thing kinda like a domain name using Etherium? Or something? There was some noise on HN whenever Urbit did cryptocurrency things and had started an ICO or NFT sale of those things at the height of recent cryptocurrency moment.

It’s a system that’s explicitly designed to be really hard to understand and use. Why would that get adopted? How will that succeed?

I signed up when it was new. It used to be you got a 'ship' which was a 12 char string that was essentially your IP/DNS/identity. Then later they changed it to 'planets' and you had to re-register again.

Then they moved it all to Ethereum in 2018 but I had stopped giving a shit so I don't know what happened after that.

I should also note they did an auction of address space prior to Ethereum, seemed like they were trying to get in on the crypto grifts. It's all completely incomprehensible to me even though I used it for a good year or so lol

They ironically ended up moving off Ethereum with their L2 bundler, at least in the eyes of users, since it was too expensive and too slow lol.
The heavily layered jargon extracts a commitment from true believers and creates a boundary between those who “get it” and the rest of the world who hasn’t seen the light. It’s not so much a platform to use, but one to proselytize.

In this it’s closely related to Scientology and cryptocurrency. Urbit is a distributed computing platform in the same sense as Scientology is a mental health program, or Bitcoin is peer-to-peer electronic cash. Sure, there’s technically someone using it for that, but for most people the value is in the social belief system.

I think you are spot on the money with your assessment. Describing his political views as questionable is putting it lightly. I read through some of his writings many years back when trying to understand the neoreactionary movement. His essays are largely creative writing exercises, which typically meander about the subject at hand. Some of that may have been to deflect criticism for his actual views. Eventually, he said the quiet part out loud:

> It should be obvious that, although I am not a white nationalist, I am not exactly allergic to the stuff.

His projects should probably be viewed through the lens of what he is trying to accomplish more generally.

Providing context is helpful, but putting lens on reader isn't IMO. Should ReiserFS always be viewed through the lens of it's creator's crime?
1. It probably always will be

2. AFAICT some of Yarvin’s ideology, particularly Neo-feudalism, is explicitly baked into Urbit’s design.

> Should ReiserFS always be viewed through the lens of it's creator's crime?

The Linux community has broadly decided that the answer to that question is yes. No corporate Linuxes would touch it any more, and it is even scheduled for removal from the kernel.

Without the context of his writings, Urbit does not make any sense at all. It's wholly impractical technology to anyone outside of his segregationist cult.
My (relatively unbiased and informed) summary of what urbit is from the last time it came up is here: https://news.ycombinator.com/item?id=31124343

As someone who thinks urbit would solve an important use case but is too hopelessly weighed down by the stench of its founder to go anywhere, a good fork seems is a reason for optimism, so best of luck Plunder team!

Look, it's not complicated. You just reconfabulate the ankh every time a toot re-frazzles. Then after that, the version version re-increments every time you re-orchestrate.

If you can't get this, I don't see how you're even here on HN, honestly.

They’re trying to make a frozen computer spec that will run any program written at any time on any spec compliant implementation of the computer. The programs, state, and user data are all the same thing (like how the Catholic god is “father, son, and Holy Ghost” in one) and is just a big string of bytecode and natural numbers. The computer applies a function to the state over and over again, saving the result.
Urbit: Networked Lisp machines, gratuitously obfuscated, marketed to neoreactionaries.
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?

I 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/

Urbit is ok, give it a minute.
I 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.

> 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

I really don’t see what the big deal is with Urbit / Curtis Yarvin. Sure he wants a monarchy - there are other extremists who want communism. At least monarchies exist today and are quite successful (Saudi Arabia) while no communist countries have resulted in anything worth repeating.

https://unherd.com/thepost/curtis-yarvin/

It’s an interesting thought experiment but I agree with Churchill on democracy being a bad form of government, yet better than all alternatives I can think of.

Picture, if you will, a Porcupine Orchestra System, architected on a foundation of Jellyfish Gargoyles and Bamboo Fairies. In this system, the user interacts with the Crocodile Concierge, a unique interface layer that acts as a portal to the Foggy Marshlands, the computational region of the application.
’Twas brillig, and the slithy toves Did gyre and gimble in the wabe
It's disappointing how much low-effort bashing there is in this whole thread. Sure urbit is weird and has a lot of baggage and questionable design decisions, but the project we're discussing is explicitly an attempt to separate out a few good ideas and remove the bad parts. Is that really deserving of casual mockery?

I know I'm shouting into the void here, and under a pseudonym to boot, but this is an active FOSS project that real live people work on in their spare time because they hope it'll be important and useful. I like to think it's a convention here not to shit on such people for comedy value.

Parent is perhaps comedic but has a valuable point: This writeup is unapproachable for a general audience due to heavy use of meaningless (“brand”) names.

For me it’s also a red flag: Neither system seems to be designed to be approachable. One or two brand names are OK, but these systems seem to use them way too liberally.

If you decided to make a fork of linux, and wrote an article explaining why, would you expect it to be easily comprehensible to someone who's never used linux?
I'd expect someone that worked on the BSD kernel or SunOS or whatever else to be able to read about your linux fork and come away with a certain level of understanding as to what sort of thing you hoped to achieve vs what's in the existing mainline kernel. People with some kernel theory under their belt, that sort of stuff.

They may not grasp every little thing, but they would be likely to get an understanding.

But the use of deliberately weird terms for things makes it less possible for those who likely have overlapping domain knowledge to understand these systems or posts about them.

The problem isn't that you're wrong, it's that this is the same cutting insight everyone has in their first five minutes of exposure to urbit. It's like going to Australia and telling everyone you meet that vegemite probably won't take off in America because it tastes weird. We know, man.

But there's also probably some new and interesting criticisms one could make? Perhaps about the actual project described in the article? And maybe after having read it and understand it? That doesn't seem like too high a standard.

If it wasn’t intentionally obfuscated, and used more standard, accessible terms, perhaps that might happen more frequently.

The fact is that’s a major red flag.

Also I’m not sure you get to claim boredom with the answer to a question you directly asked.

I'm not bored, just sad. The "personal server" thing is a cool idea. I think the world would be better if it existed and worked well enough for wide adoption, but it seems like it'll never happen because the first guy to try to build one was a weird racist. So sorry to rag on you for something literally every other commenter in this thread is doing, it's just dispiriting to see, over and over.
They literally kicked him out of town. If there was any person you could pick that best represents the whole Urbit community now, it would be anyone but this person.

And that's not because I am beefing with him or have any personal beef with him. He's literally not there anymore. He went away, years ago.

You know you don't have to use Urbit to get a "personal server", right? You can get a small VM, install Linux or BSD on it (whatever floats your boat), set up email, web server, mastodon instance...

this would be a true "personal server", and it will achieve much more than Urbit ever could.. except insane jargon at least...

yes. I've read some of low-level technical VAX/VMS and Solaris articles, and they were mostly comprehensible. Connection Machine stuff is impractical but _fascinating_ (despite being much farther from Linux than Urbit ever was)

Urbit is really an outlier, with jargon/innovation fraction far exceeding anything else I have seen.

Do they work on it because they hope it will be useful, or because they hope their crypto-fiefdom will be valuable and make them rich?

Behind the impenetrable jargon, Urbit has always put a lot of emphasis on this "digital real estate" aspect. For example:

"Urbit IDs are property, and we think of the entire registry of Urbit IDs as a vast territory of digital land." [https://urbit.org/overview/urbit-id]

It's not exactly an altruistic open source project if your fundamental motivation is to become a member of the digital landowner upper class.

(And if you scratch the surface of Urbit, you'll find the creator is a reactionary extremist who has said he prefers feudalism to democracy. Those ideas are embedded in the platform design that makes lip service to decentralization but actually concentrates control to the very few.)

Disconnected thoughts (having just spent a couple of hours of fascinated reading around Urbit).

Thirty years ago I would have been on this train. No question. It's giving me early 90s internet optimism techno-utopia feels. Now I'm older and a lot more jaded, I think I'll give it a miss and set my sights lower with something like Gemini for my weird niche internet protocol needs.

The deliberately impenetrable jargon reminds me of 90s-era Wired's reader-hostile graphic design. We're so cool, we can put barriers in your way and you'll clamber over them to get to us. That's a marketing technique - I've heard it called challenge appeal.

All federated solutions need some kind of trust model. Money is not, at first glance, a terrible answer to that problem (hashcash for email, and some web forums charge a few dollars for accounts just to keep the spammers out). Mastodon delegates trust to the instance admin, Scuttlebutt limits its web of trust to two degrees. But this elaborate tiered model is just unnecessary - they must have considered, and rejected, proof of work or many other possible solutions. It's sad that I assume bad faith because of someone's political position, but so it goes on the post-enshitiffication internet. The trust has already been eroded.

Isn't it interesting that a piece of software can be the concrete embodiment of a philosophy?

> Is that really deserving of casual mockery?

Probably, as they were asking for it by doing their work in cultish style. If you want to change the world, you need people to accept the change you want to bring, and for that you must make it understandable, approachable for them.

Why would I need to put a lot of effort to be able to be part of a discussion which is seemingly not intended for me? If the ideas behind it prove to be useful, they will eventually resurface/be done by a more welcoming/industry standard way. Then it will be worth the effort. Until then if I want to waste my time on esoteric nonsense I go look at the Woynich Manuscript or read schizo larp on /x/. (Or just try to keep up with the SV JS scene where everything is reinvedted ignoring every industry standard ligo and is named crazily)

> this is an active FOSS project that real live people work on in their spare time because they hope it'll be important and useful.

So what? There are lots of other project done on the same basis, and for most of them you don't have to learn a new dialect just to understand what their work is about.

Urbit is a weird freak system built to be intentionally hard to use by a bunch of actual fascists whose goal is to become the new landlords of an imaginary digital real estate economy. Yes, it deserves all the ridicule you can give it and more.
Urbit made the choice to use a bunch of silly new words for familiar concepts, not because they were inventing something so new that there were no words to describe it, but because they wanted to fool people into thinking that's what they were doing. Actually they just spent 10 years trying to do https://sandstorm.io/, but made it 10 times harder than it needed to be by coming up with a wacky new set of programming languages with silly names for everything.

That's funny, and it is OK to make fun of it.

We are running a very similar setup with the exception that we went with Alligator Valet... Conceptually very similar but we found it snappier in production.
You may laugh, but a few years ago all those guys who sold us (some of? us - me anyway) on Kubernetes evidently got bored with it, and now they're all building a Hippo Factory[1]. And it's actually really good. This is the current timeline!

[1] https://docs.hippofactory.dev/

Interesting, but absolutely tragic that the authors of Plunder have decided to stick with the obscurantist, deliberately opaque and illegible manner of talking about their system.

I love the intention and think many readers here on HN are unlikely to appropriately value Urbit (and decentralization broadly), but it seems some of Urbit's lessons were not learned.

I find it impossible to know if there is anything of value in there. On the surface it looks like a set of weird ideas clothed in intentionally (as you say) obscurant terminology.

As for decentralisation, can a system that appears to be so explicitly bound in hierarchy actually be said to be decentralised? Certainly it seems to be a distributed system, but AFAICT the actual power in the system is entirely centralised, though delegated through various layers. Maybe I'm just not reading it right, which would be their intention I guess...

It’s not that opaque or obscurantist, the words aren’t hard to understand. I only read this once, and didn’t really look up anything than what a “jet” is, but here it goes:

Plunder is a definition of what they want to become a foundational system of computation that will allow past, current, and future systems to run any program.

This is achieved by three parts:

Plan is the computational model. It defines four things, pins (basically, global singletons), laws (defined functions), apps (partially applied functions), and nats (natural numbers). There are 5 axiomatic operations defined as well.

Sire is a language used to bootstrap the plunder system. I don’t get how that works yet but it seems like an implementation detail we don’t need to know unless we’re developing a new plunder virtual machine runtime.

Cogs are processes running in the virtual machine runtime that interface with calls to system hardware. They’re the programs you’re running on your virtual machine, like a message (email) client. I don’t get how this works yet, but again that seems like a detail for plunder cog programmers.

The rest of the strange words are generally urbit terms that aren’t a part of plunder. Arvo seems like the urbit operating system, nock is its bytecode like plan, hoon is a language that compiles to nock, and terms like noun or subject are just terms within the urbit model like pin or law.

None of this stuff is alien language. I think the concept here is that the program is the data is the state is the program. If you look at the state of a plunder system it’ll effectively be a big serialized string of the plan language.

The power here is supposedly that no authority can override your desires on your plunder system because it will eventually be a frozen spec, and so virtual machine runtime implementations that are correct must run any program from any time after the freeze. That means a vm I make today will run programs a thousand years from now (probably inefficiently) and a vm created in a thousand years must run programs from today. Theoretically speaking.

Assuming you are correct in your translation (it's difficult to know), there are no benefits to the language they've chosen. The only reasons to use it are to:

(1) maintain the tradition (mistakenly) established by Urbit

(2) create an artful and amusing atmosphere for the ingroup

(3) filter and keep curious normies out

None of these are reasons I can get behind.

Plunder does not use much of Urbit's terminology, outside of the linked gist, which was intended for Urbit devs, and which was cross-posted here by someone from Twitter.

I've been following along w/ Plunder for the past 10ish months out of personal interest, and I find the terminology to be about as straightforward as one can expect for a technical domain which is quite complicated.

perhaps this document is more straightforward? feedback is welcome.

https://git.sr.ht/~plan/plunder/tree/master/item/doc/PLAN.md

> maintain the tradition (mistakenly) established by Urbit

No, your traditions are a mistake. (How do you like it?)

This document was written by Urbit devs, and for Urbit devs.

Plunder is not an obscurantist project, and intends to be straightforward and easy to understand.

Thanks for working on this. Have you considered abandoning urbit references and nomenclature? I've been casually following urbit a long time, and think there's a case to be made that it has accumulated enough toxic baggage to rub off on onto any project with even a whiff of association. I mean, you can see this thread as well as I can. Would it be realistic or possible to keep what you've got in plunder but reframe it in such a way as to make it less susceptible to guilt by association?
there are pretty few mentions of Urbit in the core Plunder project/codebase & many of the core concepts are different (and more conventional, I might add).

https://sr.ht/~plan/plunder/

    ~/projects/plunder ‹master› » grep -i urbit -r . | wc -l
    5
I've been following along w/ Plunder for the past 10ish months and I essentially "bounced off" of Urbit's (imo) opaque terminology, opting to learn Plunder instead as it seemed much more concise and better conceptually distilled. not knowing Urbit has not been much of a hindrance. so I think the "guilt by association" you are seeing comes more from the framing of the above gist, which was aimed at an Urbit audience & cross-posted to HN by someone not associated w/ Plunder.
The objective outlined at https://git.sr.ht/~plan/plunder is certainly compelling:

Plunder is a new programming model where programs run forever.

Hardware restarts are invisible to the software, as is moving a running program from one physical machine to another.

Because of this, programs don't need to save their state into an external database, they can simply keep everything "in memory", and that state will be synchronized to disk transparently.

how similar is plunder to erlang's vm? a program can run without the need to know the hardware. iirc, mr. armstrong (r.i.p.) once told a story about a running program that was moved across the ocean.
There is a fair bit of overlap, but Plunder processes are persistent and Erlang processes are ephemeral.

Making processes persistent has nontrivial overhead, so the Erlang model probably doesn't translate well in practice to Plunder.

so Urbit seems to be an incompetent plagiarism of Nix:

https://awful.systems/comment/279#person-listing https://awful.systems/comment/287#person-listing

note how Yarvin claimed he was working on Urbit since 2002, but didn't drop any code until 2010.

EDIT: the Lemmy links above are hard to read. Here's a clearer cut'n'paste of the text and the claims: https://reddragdiva.tumblr.com/post/724590682207141888/so-it...

> working on Urbit since 2002, but didn't drop any code until 2010.

And here we are in 2023 and wikipedia says that as of last year the main thing it can do is ... a bare bones text-based message board. 20 years well spent!

in fairness, I recently rewrote the Wikipedia Urbit article myself, to fix the sourcing :-)
Ha! Hilarious. Now do bitcoin ;)

TBH after looking into plunder a little more, this whole area starts to feel a bit like "Nano" and their excursion into trinary computation.

What are you trying to do? Deliver a rapid P2P application development environment with built in auth.

How are you going about it? By redefining computation from the ground up, discarding standard memory models, reorganizing the whole internet into a hierarchical...

Yeah, let me stop you there. Maybe do one thing at a time and demonstrate how great it is before moving on with this magnum opus.

Main Plunder dev here, wasn't expecting to see this here.

This document was written by an Urbit dev, and the Urbit community is the target audience.

The conversation here seems to be mostly shitting on Urbit with the usual HN critiques.

However, Plunder is only tangentially related to Urbit.

It's the same paradigm, but totally different otherwise. Heavy Haskell influence.

The project is still mostly underground, but I'm happy to answer any questions.

I read your intro to PLAN. It's much easier to understand than anything I've read on this sort of topic before. I can at least come out of it understanding what the aims are and what it might provide.

It's interesting. Not something I think will affect my day to day life, but in a thought-experiment, LISP-y sort of way I can see why a certain kind of coder might find such a system intriguing. I imagine such a coder is probably into language design, lambda calculus, functional purity and formal verification rather than being on the 'just get things done' end of the spectrum.

I also don't think I can see such a design ever doing anything very quickly, as every operation is necessarily committed to disk. I guess that's where Jets come in...

It's amusing to contrast this with the general mood in programming where we strive to make programs ephemeral so that we don't care what's in memory, things die often and we just re-start them when we feel like it, allowing them to rebuild their internal state.

The main use-case is for building peer-to-peer systems with small eng resources.

The win is basically that the entire stack gets much less complex. Network, database, and business logic all operate within the same model.

For example, once the system is finished, building a full p2p chat should be possible in a couple hundred LOC.

The goal is somewhat political, to enable people to build their own social software, instead of depending on finance for everything.

> I also don't think I can see such a design ever doing anything very quickly, as every operation is necessarily committed to disk.

There is overhead to be sure, but it's nowhere near as bad as it sounds.

In practice, we don't need to fsync every input. Each syscall chooses if it should wait for a sync before running effect. Sync only blocks that effect, everything else continues to run.

For example most REPL IO doesn't need to wait for a sync, but a network transaction does.

I’m not seeing that simplicity or low-engineering overhead from reading about PLAN, personally, I’m seeing a computer scientist’s wet dream about composability and resilience, but not anything that would promote rapid development or reduced costs. In fact I think the opposite is true - this is such a reinvention that everything is likely to take subject matter experts and a lot of time.

P2P chat doesn’t seem like a very lofty goal at this point.

I’m sure there’s a lot more to your platform than PLAN, providing all sorts of facilities, but at that point you’ve kinda scuppered the “execute anywhere, forever” aspect of your model IMHO, because it relies on quite a complex VM to provide the simple coding environment.

Best of luck to you, but I’m still thinking “nerd trap” rather than “revolutionary tech”.

Why is it called Plunder?
Think of it as being a Scheme implementation: Racket, Stalin, Larceny, Plunder.
I think presenting Plunder as a "scheme lisp machine, with persisted application state" would be great for branding on HN :)
That sounds right! I'll keep that in mind.

"A lisp machine with fully automatic persistence. No database or filesystem needed" is actually a fairly accurate description.