What is Urbit?

Mencius Moldbug has released
Urbit.

Q: Who is Mencius Moldbug?

A: An utterly brilliant neo-reactionary big-picture, San Francisco area software engineering iconoclast (although he'd almost certainly frown on actual clasting of icons…as best I can tell he limits his destruction to ideas).

Q: What is Urbit?

A:

http://www.urbit.org/faq.html

Is Urbit a VM, an OS, a language, or a social network?

Many of these things! Well, Urbit itself usually refers to a system of all of these things. At the highest level, there’s the social network, which is a single broadcast network using the Ames protocol. This social network is where “ships”, “piers” and “flags” are relevant (among other nautical terms). The network (probably called the Urbiverse) is accessibe by virtual computers mounted in piers running Arvo, something which is very similar to an operating system (one that doesn’t run on bare metal, but is hosted). Arvo is written in C and a language called “Hoon”. Hoon is the native programming language of Urth, is spoken, and is static, typed, and functional. Hoon itself is built on the semantics of Nock, a maxwellian formally specified VM.

In short, Urbit is a static functional namespace, with a social network, an operating system, a programming language, and a formal virtual machine.

Is that completely clear? Does it answer all of your questions?

No?

Then you'll want to stick around for my attempt at an exegesis over the coming weeks.

UPDATE: please read my follow on post.

Last 5 posts by Clark

Comments

  1. says

    OK, this is a biased, shallow, ignorant comment based on absolutely no data but what's posted above, and the results instantly returned by the pattern-matching algorithms in my wetware upon reading it:

    Q:What is Urbit?
    A:The roughly 10-millionth attempt to bring the old-school hacker ethos that actually built the internet to the 21st century, which will vanish into obscurity like all the others, because network externalities matter more than security, stability, or scalability. (See https://en.wikipedia.org/wiki/Usenet_II, for one of the earliest such failures to replace a well-used system with a technically superior system that lacked critical user mass and was stuck in the negative feedback cycle of "No one uses it, so, no one uses it.")

    Now, I will go actually read the site, and see if my wetware needs an upgrade to its pattern matching algorithm.

  2. Shkspr says

    Oh, Clark, your blog posts about post-apocalyptic life in the future as a result of the shutdown are all amusing, but I think this one is the kookiest, with it's poorly-spelled attempts to just make up some wacky "cyberpunk" aesthetic based, no doubt, on the coming Asian-dominated mesh of high technology once the Chinese buy us out of our failed political experiment. I gleefully imagine us all using the "Urbiverse" to communicate using "Hoon" to simulate a happy life while we Westerners are all actually at forced labor in the salt mines in meat-space. Good parody!

  3. Chris Rhodes says

    Being a software engineer, I can (mostly) follow what he's talking about here. The writing style is quite thick, but also amusing.

  4. lelnet says

    I am reminded rather strongly of the Illuminatus trilogy.

    But as far as I know, Moldbug is not a habitual user of hallucinogenic drugs. So there must be some other explanation.

    It's desperately in need of an elevator pitch. And one of the key requirements (usually unstated, but nevertheless critical) of an elevator pitch is that it not require attaching meanings to any words which do not correspond to those words' entries in a common dictionary.

    Once convinced that a product or system does something new, or something old in a new and interesting way, I'm happy to read goat-choking quantities of documentation about how and why. But this, while nominally written in English, makes no sense at all.

  5. says

    Sounds like Erlang, recycled with a bunch of nautical terms replacing the computer programming tidbits.

    New words do not a new thing make every time.

  6. Tom says

    This guy might have some actually good ideas. Some of what I read on his site appears to reflect real insight. Unfortunately, he's decided to cloak his ideas in an impenetrable wall of obtuse terminology and an obnoxious, "folksy" writing style. Some of his comments about prior art reflect disdain for the developments of the past few decades while simultaneously demonstrating a lack of understanding of those developments; it borders on anti-intellectualism.

    I'm sympathetic to the idea that we need to dramatically reconsider the foundations of the Web and computing in general, but throwing the baby out with the bathwater is not the way to achieve that.

    For a more realistic approach to some of these ideas, take a look at Nix.

  7. Justin Kittredge says

    I found a detailed video of Urbit if it helps anyone to understand it more in depth

    Here:

  8. A Walrus says

    I can tell that this is either crazy or a joke (both, perhaps?), but I feel like I'd have to call up one of my old CS professors and ask him to either explain *why* it's crazy, or at least tell me which bit is the punchline.

  9. says

    The whole project comes off so obtuse that it appears to transcend the MFTL concept by a pretty big margin, if there is a unit abstract enough to measure the distance.

    Looking at the example syntax, I considered that the whole thing might be satire, but it appears to have too much foundation of its own.

    Instead, I would venture that the author is proffering it as art. Kind of a "programming language as a medium" equivalent to a weird fucked up movie, hyper-complex industrial sculpture, or even a super amplified version of a rule-defying piece of prose, ala ee cummings.

    However, the process of "consuming" the art is very difficult and laborious, since even the limited audience of folks that can grasp it are going to be unlikely to spend the time to read it all. Whether he wants it to be an abstraction or a real tool that is used, the medium is still the written word.

    And there are way too many written words.

    It would make nice art if it could be boiled down to a few pages. But in its current state, it appears to be the screed of an artist/tech who has simply gone dark for too long without any feedback from people who might appreciate the art.

    When it does surface, it looks like… well, kinda like crap. That's my cut.

  10. StephenH says

    Yeah, the pitch is a little less than awesome. It's also barely a prototype, but a prototype of a kind of nifty idea. If there's an elevator pitch here, it would probably be:
    Imagine every person on Earth being able to run on a single, infinitely scalable computer. This software allows you to run on that computer, by adding your computer to it.

    It is the Borg Collective of PCs.

    Oh, and its filesystem has awesome, magic versioning support.

    Here's how it appears to break down (I have some personal editorial in here, sorry):

    Every physical machine in Urbit exists in a global filesystem, where people can come and go as they please. Each machine gets its own directory in that global filesystem, referred to by a number. To try and make it friendlier, those numbers are transformed into names for the filesystem, but it still produces really long, ugly names. So you can reserve a shorter name, until the shorter names run out.

    Since everyone gets their own directory on the infinite filesystem, everyone can look at everyone else's files by referring to the location on the filesystem. The person who owns the file just has to be online, or the system will wait until the person comes back online. I don't know whether you can write to other people's files, but I'm guessing not, or at least not yet. There's no access control whatsoever, but the FAQ concedes it will eventually be needed.

    The physical machines can also send arbitrary data to each other, as if they were users sharing a common machine. This is mostly demonstrated with a text chat, but it could be any kind of data. This could be pretty cool for certain distributed projects, but my limited imagination mostly sees it as a parlour trick. Maybe it will actually revolutionize the world if enough people get into it. It is hugely exploitable for malicious broadcasts, and the only defense the docs suggest right now is "don't let bad people have access to the infinitely scalable computer".

    In addition to that, the filesystem in which everyone gets a directory is self-versioning, with support for labels. If you just want the latest version of a file, you just refer to the file and it will update automatically as new versions become available. But, if you want to go back to a previous version of a file, you can refer to it by a static name on the filesystem. This applies to other folks' files as well as your own.

    Label support means you don't have to look at version "5" of a file, you can look at version "Release" instead, which can be created and updated at will by the person who owns the file, separately from the version number that is created automatically, which refers to a static, specific version of the file.

    Since this infinite computer is provided through software, it has its own virtual machine language, like Java, so that people can write software that runs on it without having to worry about what physical machine the software is running on. The docs basically taunt would-be crackers to break it, so I'm guessing this will be exploited about 30 seconds after it gains any sort of traction, if it hasn't already.

    To try and help build a community, there are some social features thrown in, but I don't really understand the importance of them other than Facebook-envy.

    Oh, and all of the network communications are encrypted, which is cool, I guess. Not sure what it buys you until the filesystem gains robust access control and the communications protocol goes through some TOR-like routing scheme. Access control to protect data from simply being lifted from your directory in the filesystem, TOR-like routing to anonymize communications on the physical network from folks who want to learn where objectionable content is being hosted. Until at one one of those happen, encryption is a parlour trick and this machine has no value to anyone wanting to express ideas.

    I don't know if anyone cares about the terminology here, but here's what I'm making of it:

    A "ship" is a directory on the infinitely scalable PC. In the long-form number, it's a "submarine". The short-form number is a "destroyer". There are other nautical and piracy-related terms tossed around, with inconsistent or undefined meanings, relating to various levels of filesystem organization and yet-to-be-implemented privilege management.

    Nock is the name of the virtual machine language that this infinitely scalable PC runs.

    Hoon is the name of the initial language that has been implemented with, and compiles to Nock virtual machine code.

    Arvo is the client you run on your physical PC to become part of the infinitely scalable PC.

  11. Mathew Wait says

    Okay, I'm not the best programmer in the world (it's a hobby, not a profession), but I do have a degree in networking tech, and this is -still- about half-buzzword-laden garbage. The other half is mildly amusing and at the same time answers so very little that it's a great study in how to write a tech manual without writing anything that could get you in trouble!

  12. Irk says

    Is this a darknet built by an internet marketer?

    Or Git without access management? That's great, I want everyone to change things all the time. We should run the government on this.

  13. Laura says

    StephenH, thank you for the explanation! Though I must confess that I spent a while boggling at "Imagine every person on Earth being able to run on a single, infinitely scalable computer" as meaning that Step 1 involved uploading my consciousness to the infinitely scalable computer. I have read too much science fiction to entirely rule this out as someone's business plan.

  14. StephenH says

    @Mathew Wait:
    Well, I am a decent programmer and, until recently, I happened to specialize in network programming. That said, his demos are dense in his own vocabulary, almost to the point of being gibberish. I had to read other bits of documentation and rewatch that first video a few times to put it together, and I'm still not 100% certain how much of what I've gleaned is fully functional, versus tech demo, versus vaporware.

  15. says

    "Q: Who is Mencius Moldbug?"

    A: "Most everything I have to say is available, with better writing, more detail and much more erudition, in . . . Nock, etc, etc." http://unqualified-reservations.blogspot.com/2007/04/formalist-manifesto-originally-posted.html

    But I do have to give Moldbug credit for being a Georgist, albeit of an odd sort, to-wit: "A well-run state is very profitable." http://unqualified-reservations.blogspot.com/2007/08/against-political-freedom.html

  16. says

    Also, I just want to give props to StephenH for actually plowing through all that baroque wordplay to present his findings as normal language that can be understood by folks competent in the art.

    Actually, maybe a medal would be more appropriate.

  17. Nyarlathotep says

    This is so obtuse that part of me wonders if its a Sokal Hoax type of deal aimed at Silicon Valley rather than academia.

  18. says

    OK, pattern matching algorithm in wetware needs a slight upgrade. This isn't someone's delusional Facebook replacement, it's someone's delusional Java replacement. Got it now. New data point added; neural network (literally) adjusting to compensate.

  19. Christenson says

    If you want to upgrade the foundations of security, you have to begin with the endpoints. Specifically, you have to deal with how to make sure the computer *IS NOT* doing anything other than what it advertises.

    That is, the powerful computer I am working on here is (tin foil hat!) mining bitcoins and spamming and sending out my banking details without my permission, simultaneously while it lets me post on Popehat.

    The upgrade requires the OS to be dramatically *simplified*, to confine programs to doing only what they are allowed to do, in a convenient way. Reception of arbitrary, always malicious data from the internet has to have limited consequences that the machine's owner has full control over, similar to chroot jails.

    This guy isn't going anywhere….he's isolated himself with his language, he is just describing a cloud system with a global file system. Hadoop and VMWare, anyone?

  20. Dan Weber says

    I used to hang out on MM's blog, until I became pretty sure it was a trap to see how many people he could sucker into agreeing with him before he called the cops on us.

    I guess I'm here now.

  21. GoSign says

    Thanks StephenH, like everyone said.

    One more question, though (stated three ways): Who is the theoretical target-user served by this? What sort of goal or project does this simplify / enable / support / encourage? Why would someone want to use this "infinite computer" instead of other internet services like dropbox and github?

  22. orv says

    I don't think the utility is the point; it's pretty clearly a toy for hackers (in the old-school sense of the word "hacker.") That's actually reason enough for it to exist; many interesting and sometimes even useful things started as hacker toys, including Linux. Not that I expect this to become the next Linux, mind — it's too different from any existing system, and too cloaked in its own obscure terminology. Reading about it I get the same sense I used to get reading LaRouche flyers, that I'd have to already be a follower of this guy to stand any chance of understanding what he's talking about. But it was fun to watch. It nudged the part of me that's always wanted to implement an OS from scratch, just to be able to say I'd done it.

  23. Malc. says

    Some of the (early) statements are actual gibberish, which call into question what the real goals might be.

    For example, "The goal of any programming language is to become a standard" is nonsense. Even allowing for a semantic shorthand (i.e. he intended to write something like "the goal of any programming language developer is to create a programming language that becomes a standard"), the statement reflects a profound misunderstanding of why programming languages exist, and why there are more than one of them.

    In reality, all programming languages are created to facilitate creating and maintaining software. Whether or not a language becomes "a standard" is often irrelevant as long as the cost/benefit analysis of using a "non-standard" language exceeds that of the alternatives. So although it is true that the more standard a language is, the more people exist that can quickly be productive in that language, it is not true that beyond a certain point (how many people do you need to hire???)

    But clearly this guy thinks "becoming a standard" is important, because "Universal standardization equals world domination". So I conclude this is an effort to grab mindshare, regardless of any actual value, because "world domination" easily translates to "becoming Google/Facebook/Twitter", i.e. "becoming staggeringly wealthy".

    And I mistrust "becoming staggeringly wealthy" as a design goal for technology, because it confuses cause and effect.

  24. orv says

    Alternate theory: It's for people who used to play Dwarf Fortress, but found the UI too user-friendly.

  25. tom says

    Urbiverse is only two letters off from Furbiverse, the universe of pure evil. Coincidence? Impossible. He's trying to open a portal. We cannot let this happen.

  26. says

    I know what this is.

    There is a story that Unix (from which came Solaris, and Linux and other good things) was invented by two hippies in Bell Labs as a _joke_. A gag. A funsie.

    They had no idea it would be taken seriously by the squares in management, and were secretly appalled when their less gifted peers latched onto it, despite it's glaring flaws and obvious tells.

    By that time it was being used in production, and ported to who knows what by god knows whom … and way too late to admit it's origin as a joke.

    These guys accepted the challenge of _topping_ Thompson and Ritchie.

    And heck – it does compile and seem to do stuff.

  27. Lapsed Pastafarian says

    The description of Urbit while appearing to be nonsense becomes completely intelligible if you if you listen to it with the original Hoon "umbling" subtext restored.

  28. says

    I went to the site and read the documentation, and I feel… trolled somehow.

    Learning Hoon would make an excellent punishment for the Avout in Neal Stephenson's Anathem, if anyone gets the reference.

    I have no idea if the rest of Moldbug's writing is like that. If so, I guess I have better things to do.

  29. anne mouse says

    Hoons and nautical motifs and Urs? How uplifting!

    (Still unsure about Arvo – a Finnish first name?, and Nock – an archery theme?)

    I couldn't take him seriously after he mentioned that the complete list of supported types was "oak", "yew" (there's archery again), and one or two others.

  30. StephenH says

    @GoSign:
    As others have mentioned, the target user right now is probably old-school hackers. It might also be a joke, but if so then it's a joke with what I think are some interesting ideas.

    You've also pretty much hit the nail on the head with regards to why many people won't necessarily need this: Similar versioning functionality can already be achieved with Git and GitHub, and Java provides a robust cross-platform VM already. The new-ish thing here is that this integrates the Git-like functionality into the filesystem, for automatic versioning, and sends files on a peer-to-peer basis instead of going through a central server like GitHub. The only thing a centralized server would do is track the 32-bit aliases to the 128-bit native directories. It may not even map the 128-bit natives to IP addresses – the 128-bit number given to a directory may simply be the IPv6 address of the Arvo client.

    I still think it could be cool, but the extent of coolness gets lost really easily behind the wall of jargon and aggressively egocentric tone of the documentation. I'll wait for someone else to see it and reimplement it as "Borg: The Collective PC".

  31. lelnet says

    scav: So. You're the other one. (Who read Anathem, liked Anathem, and upon reading the documentation for this thing, immediately thought of The Book.) Well met, friend. :)

    StephenH: It seems redundant, but I'll chip in to offer thanks as well. Even if your suppositions about what he's talking about turn out to be wrong, they at least provide a framework to compare against, when trying to choke down his documentation, and take up propositions regarding it (such as "this is/is not useful", "this will/won't work", etc).

  32. Anglave says

    Arvo is written in C and a language called “Hoon”. Hoon is the native programming language of Urth, is spoken, and is static, typed, and functional.

    This is the part that confirmed my suspicion.

    The native programming language of a fictional place? A programming language which is spoken? I think not.

  33. says

    > A programming language which is spoken? I think not.

    Why not?

    I spend not a little time talking about code, describing code. Even, once in a while, dreaming about code.

    Since no one uses COBOL anymore, one is reduced to metaphor and circumlocution to describe what is going on.

    I imagine being able to describe, precisely what the code is doing, and being understood, by speaking the code itself to a peer. It brings a smile to my face.

  34. [REDACTED] says

    Sounds like a hell of a roundabout way to say it's a network of VMs hosted on a network of hardware machines. Or at least that's about as much as got through to me before my brain shut down.

  35. Dan says

    I reckon that few of you took the time to reflect that Clark posted this. Let me simplify the BNF:

    :: nock(a) *a

    actually means

    Harry Reid + John Boehner = [polio | cancer] * liberty

    Your clever exegesis of obscure programming paradigms will not serve you while chained to the rail cars inbound to the FEMA camps. Wise up.

    Dan

  36. Oaxx says

    I, too, was enticed into checking this out. I got as far as setting up some instances, trying stuff out, etc. While reading the docs on urbit.org (Nock), this bumped against my brain's lip like a cigarette butt in a bottle of beer:

    We should note that in Nock and Hoon, 0 (pronounced “yes”) is true, and 1 (“no”) is false. Why? It’s fresh, it’s different, it’s new. And it’s annoying. And it keeps you on your toes. And it’s also just intuitively right.

    $ rm -rf urbit

  37. Kittens R. Horrid says

    The linked documents contain many references to the Jorge Luis Borges story "Tlön, Uqbar, Orbis Tertius."

  38. Gabriel says

    Based on my initial reading, the "killer app" here is neither Github replacement nor Java replacement, but privacy. He's awfully proud of the fact that public identities are hashes of secret keys and that the "email address" equivalent is the same as the "IP address" equivalent… he also explicitly makes the point that he doesn't use DNS for anything.

    And he makes snarky jokes about the NSA. And this is a Clark post. The obvious conclusion is that this is an attempt to build a global network syntax which allows for reliable identification of online presences but not for reliable mapping of online presences to meatspace persons.

  39. Mathew Wait says

    @StephenH Okay, glad I'm not alone in thinking there's a good deal of gibberish going on here….

    As far as the versioning the file system thing goes… Didn't Microsoft of all people already implement that in Windows 7 and onward? … So really, the best peircing of the veil of nonsense here is someone is trying to build a new Java/Git/SMB combination that… is an interesting toy with some interesting ideas.

    Remind me to check in on this in about 5 years when they get access controls set up in a sane way, and implement some sort of TOR-like routing.

  40. StephenH says

    @Gabriel:
    Let's suppose I'm a government agent for a country with less-than-appealing speech laws. For kicks, let's pick on Thailand, because it's too mainstream to choose China. I just found some very "lese majeste" pictures under ~freyxib-joltat-inkar-blofu-requit-klima-delbon-morthix.

    I boot up Wireshark, load a simple filter to remove the usual trash traffic that I don't care about, and hit up ~freyxib-joltat-inkar-blofu-requit-klima-delbon-morthix/all-hail-the-king-parody.jpg. The IP address of the offender is now in my hands, and they'd better pray they don't live in Thailand. No DNS necessary, this is pure IP-space.

    Now let's talk about how this affects countries with actual power, will, and history to perform extraordinary renditions or assassinations, like the U.S.

    If a visual aid would help, I happened across a useful one recently.