I got tired or waiting to find out what Urbit actually does, so I checked Wikipedia:
Urbit is a decentralized personal server platform. The platform seeks to deconstruct the client-server model in favor of a federated network of personal servers in a peer-to-peer network with a consistent digital identity.
I think every comment I've read so far contains an objection to being called "Normies," so I won't belabor that here. I will say that if the HN audience (highly interested, highly competent) tunes out before you can make your pitch you are doing marketing wrong.
As far as I can ascertain, Urbit consists of a sensible, worthwhile goal, and many man-years of work building bizarre, contrarian executable artifacts that have nothing to do with that goal.
Let's say I want to host a video, and I'm a "normie" that only has a cell phone. Under this model, my device is my server, so I'm hosting it off my cell phone. I want my friends to be able to see it whenever, but I don't want to have an internet connection at all times just for my friends to see my video. How can I achieve this on this network without a "broker" to host the video? Peertube is a "solution", but its a failure for widespread adoption because it adds complexity compared the mainstream solution. You're only going to draw average users to your platform by providing a superior user experience - very few posting even here can sincerely say that they don't sacrifice their privacy for convenience on a daily basis.
Additionally, they mention that your ID accrues "reputation" on the urbit network, which makes it pretty ballsy to bring up comparisons to Reddit because their system of upvotes and "karma" is one of the major structural failings making their platform unsuitable for free speech (same thing here tbqh famalamalampai). Thus the behavioral problems of modern social media (excessive virtue signalling, witch hunts, shadowbanning) are only amplified by this system, the tyranny of the majority extended into every aspect of your networked computing experience.
Overall I think this is a cool idea for certain applications where it has potential, but they're not pitching it just for those applications, they're pitching it as a technology to replace the entire current internet model with, and that's just not going to happen.
Urbit sounded interesting but I dug into the source code a bit and found that the core of the whole system (the Nock language) has "loobeans" instead of booleans in which 1 represents false and 0 represents true at which point I nope'd out pretty hard.
> In electrical engineering, there are practical reasons to do this.
> Here, there are none, except to be contrarian.
I know that in electrical engineering, there exist good reasons. But doubt whether the reason for loobeans is to be contrarian. I rather suspect that if you look deeply into the architectural details of Nock, you will find a good reason for loobeans, too. In this sense, I suspect that loobeans are "contrarian" is rather a welcome side-effect than raison d'être.
I'm still looking for "Urbit for normal developers."
For instance there's a notebook, from the way this article talks about it I would assume it's a collaborative notebook (otherwise it's pretty boring). What kind of data structure is used to store it? How are edits communicated and conflicts resolved? Assuming conflicts require some domain-specific computation to resolve, where does that computation happen? Is there an access control list, or some secret that gives access? How would revoking access work? How do changes come in and out of the user agent/browser? Where is the program that manages this hosted? How do I get updates to that program?
This satisfies some long-held desire to unpack the mystery. But now that I know what it is, I know that in fact I'm not interested in it, and (unsurprisingly) it's not the future of computing.
This article, and every other article, goes to great length to talk about the problems they attempt to solve: computing (and storage?) separated from an individual device, personal ownership of an identity, and communication channels between those identities and presumably the computation that works on those identities' behalf. With a bunch of privacy stuff and maybe some ability to fund this computation?
Where every article fails is in saying how they accomplish it and what any of it means in practice. We're both baffled on that point.
It's a bullet point on Curtis Yarvin's head-CV: "Successfully reinvented computing and the internet as we know it, creating a better world for everyone."
I really love the Urbit system. But I'm not sure why anyone posts about it here - it has never attracted substantive discussion and I don't think it ever will.
Yarvin's formative influence on this project will prevent it from ever achieving scale and that seems problematic for a decentralized system that relies upon an active network of peers.
His neo-reactionary thinking bled directly into the architecture of Urbit and I don't think there are very many "normies" out there who would support it, if they realized all of the long-term implications of a feudalistic social computing system.
I think the larger problem slowing down their growth is not his "neo-reactionary" thought bleeding into the architecture of Urbit. I think a big part of it is the massive technical debt that Yarvin straddled the project with via his C code. It is written in a hard to read style that I at least have never seen before anywhere else.
This is a pretty short critique about apparent issues with Urbit, from a non-ideological viewpoint and detached from referencing the author- though a reply points out those technical criticisms may have been inspired by ideology!
That is definitely a very insightful post you linked, but I think the project is terrible even if you block out every single possible connection between the tech and ideology. I quite literally mean that I can't read the code. They designed a variable and function naming convention which obscures what the C code is doing. The naming is all nonsense syllables and seems deliberately intended to confuse anyone trying to audit the code.
The app for example claims to be end-to-end encrypted peer to peer connections. Is this true? Is it implemented correctly? I'm not sure they could find a reputable security auditor who would willingly subject themselves to this codebase regardless of how much pay was offered.
The first 7-8 paragraphs are about the author (Hint: I don't care.), the next few are a technical description. As a "normie" I'm not reading 15 paragraphs in to see how it can help me
As a consumer, what benefit does it provide to me? "Normies" are going to bounce way before they see what the answer is. Drop the derogatory term and tell me how this helps me from the start.
It is weird. I had a similar reaction. My immediate focus was on the use of the word 'normies' as opposed to the original subject of that post. I wonder if the author shot him/herself in the foot by using such language.
The project also already shot itself in the foot on arrival, due to the creator's other work. (He's one of the most prominent modern far-right philosophers/writers. Among other things, known for staunchly criticizing democracy and advocating for monarchism and authoritarianism as a better system.)
As far as urbit is concerned, I'm definitely a normie, but I still don't get it. Where is all this stuff? Running all of megacorp's stuff takes a bazillion servers. If we're not going to use those anymore, where is my data going to live? How can I access everything from anywhere if there is no centralization? Will my "urbit computer" be running on other people's physical computers? Can I decide to run an infinite number of infinite loops? Will it be running on my physical computer? What if my hard drive dies? Do I lose all my stuff?
Your data lives on your computer. And on the network, to anyone to whom you have given access. If your hard drive dies, you lose your stuff. But you might be able to recover the shared information.
The derogatory term "normies" hampers the explanation of Urbit. I can't help from commenting on that term, instead of helping to spread Urbit, which is the opposite of what Urbit wants. Whatever it is.
Perhaps it's a matter of perspective, but I don't see it as derogatory. Rather I see it as a reflection of the way which questions about Urbit are typically asked. I.e. "Can someone explain what Urbit is and why it's relevant to a normal person like myself?"
Except that "normie" is the name a particular in-group gives to their out-group. It's not a name that out-group adopted. Most normal people seeing "normie" will both intuit what it means (a normal person), but also recognize the person using it is also signaling in-group status.
And, I'd add, gives to them specifically to be dismissive and to imply that the out group is failing to (or maybe isn't able to) understand things with the special insight the in-group has.
Insults are in the ears of the beholder. A bit of context goes a long way, when you realize that that the "in-group" is miniscule, and the the "out-group" is the vast majority.
If you frame it that way, it should be obvious that the "in-group" in this case would appear, on the surface, to be a bunch of deluded eccentrics, hardly anything to feel insulted about.
If the title had been "Urbit Is Not for Normies: How Urbit Will Save the Elect from Eternal September" I would agree.
As it stands, the intent here seems to be to disarm the reader's own insecurities about how whether they are able to (or welcome to) grasp what the Urbit project is about.
I'm curious what you mean by "inherently insulting". Do you think there are words that are insulting "inherently" whereas there are other words that are only contingently insulting?
I ask because it seems to me there's nothing inherent at all about the use of any word, so whether or not "normie" is insulting comes down to the degree to which people tend to use it insultingly. And I believe common use is overwhelmingly derogatory.
There may be exceptions, of course, and you personally may even be more familiar with the exceptions than the typical usage.
Hm.. when talking about the inherent meaning of a word (and whether there is such a thing) I might make reference to denotation vs. connotation, but I'm not prepared to dig into the semantics here.
I would say that my experience with regard to the use of the word "normie" is indeed different from yours.
Regardless, on a site called Hacker News, in an era where "geek" has a neutral or even slightly positive connotation (despite it's history and origins) I think the default should be to assess how an author actually uses a word, rather than how it often used in broader society.
When your goal is to initiate those in the out-group, it's counter-productive to use an in-group term in the title, especially when that term refers to members of the out-group itself. Insulting has nothing to do with it; in-group terms are not welcoming to the out-group.
Fair question. Relative to the Urbit community I am probably a "normie" in the sense that I am neither a user of Urbit nor do I have a deep understanding of what Urbit is (though I do have a general idea).
Let's just say that my reaction to this article title was "Oh, this could be helpful to me!" and I was rather shocked at the negative reaction in the comments.
My point is that it doesn't matter whether you see it as derogatory or not, because here we are arguing about it instead of Urbit (whatever it is), and therefore it is bad marketing.
The goal of good UX is to eliminate question marks, except for the questions you want people to ask. Usually those are, "Cool, how much is it?" or "Where do I get it?"
Having now read the article, I think have a better understanding of how they intend a non-technical person to use Urbit.
Take link sharing for example. Instead of going to a 3rd party site like Reddit or Hacker News, I would simply have a link sharing app on my Urbit virtual computer. Because I host the app, I have control of the links I share and who I share with, but I don't have to go through the rigmarole of actually deploying a LAMP stack (or whatever) or dealing with configuring a public IP address, firewall, CDN, authz/authn, domain name registration, or any of that stuff. I just say "share these links with these other people" and it just works.
Now, I don't know how that works under the hood. I don't even know if that actually works today (looks like it does?). But so long as I right about how I'm supposed to actually use Urbit, then I'd say the article was successful.
1. Try rewriting this and putting your use cases first.
2. Try explaining to people what it does for them. Why is this better than other platforms?
3. Next, give a little technical jargon ("decentralized personal server platform blah blah blah) and link to meatier standard stuff getting into the tech.
4. As a zillion other people have said, ditch the word "normie." If you have to spend that much time justifying the use of that word, it's probably doing a disservice to your marketing efforts.
Try something like: "Tech for the ordinary joe." or "High tech solutions for people who don't have or want a CS degree." or "Privacy and control of your data for everyone."
Yeah agreed... wtf is he even talking about? "terrible way to work" is an absurd thing to say - I use a command line for easily 90% of my work and would argue its a FAR SUPERIOR way to get things done efficiently. This sentence alone makes me dubious of this entire project.
Even in the case where the Urbit container and network are perfectly implemented and widely adopted, I'd imagine privacy as of the average user if not most users would continue to be compromised:
The plebs would end up authorizing liberal permissions to to watch some out-of-network UrbitTikTok video, even as we screamed at them not to. And the devs would be forced to enable some phone-home capabilities in exchange for access to their pro tools. Or go the jailbreak route and play a constant game of cat and mouse. In essence, if you're on the consumer side, it seems like you're not in a position to negotiate privacy terms regardless of whether you access the network in a centralized or p2p way.
No screenshots anywhere of anything as far as I can see. This is a strong signal for me that the project is not suitable for neither a demo or an example.
I would also like to see comparison with Keybase that actively competes in the same area, but actually has a viable product.
This is a question I'm probably better suited to answer than anyone in the world, since I used to work on Holochain in 2018 and I've worked on Urbit since 2019.
They solve a similar set of problems from completely different directions. Chiefly, they are both trying to create infrastructure for running distributed programs that run primarily on the devices of the user in such a way that the user has total control over their own data and not in a horribly inefficient way like blockchain-based dApps.
Urbit has a bottom-up approach while Holochain has a top-down approach. Urbit is about building powerful infrastructure for individual users to manage their own data and, from there, networks of users may be built that can run their own apps and share data amongst themselves however they like. Holochain instead starts by focusing on building networks of users that share data in a prescribed fashion, and how each user manages their own data outside of Holochain is up to them.
I see them as complementary, almost dual to each other. Urbit is about creating infrastructure for individuals that can then form networks, while Holochain is about forming networks that individuals can then join. Urbit starts as close to bare metal as you can get (its a whole operating system, programming language, and assembly-level instruction set) and starts getting thin around userspace, while Holochain lives entirely in userspace. Stack them on top of each other and your entire computer from the GUI all the way down to the processor instruction set is oriented around user data privacy and efficient distributed computing!
In a future where both Urbit and Holochain take off, people could use Urbit to manage their personal data and cryptographic property which would be fed into Holochain apps. There would be a bridge between the Urbit PKI and the Holochain PKI so that your identity in one is linked to your identity in the other.
Both projects aspire to create something like a "universal interface" along the lines of WeChat, except not a dystopian privacy invasion nightmare.
I could write more about this all day. If you have any further questions I'd be happy to answer. I'm mostly excited to have met someone else using Holochain and Urbit in the same sentence.
Some additional thoughts I have in this direction in no particular order:
Both Holochain and Urbit emphasize composability. One of the main design patterns with Holochain are microservices that you can hook up together to make more complicated apps. This philosophy emanates from the receptor notion in Ceptr (the OS that Holochain is supposed to be distributed data integrity engine for). When I worked on Holochain I spent a lot of time going on about what sort of mathematics you'd need to do this well and without unintended side-effects: namely category theory, as category theory is a mathematical formalization of the notion of composability. Composition is a first-order concept in category theory and the whole point of category theory is to be able to think of things in terms of what they're composed of - this is a large chunk of the content of the Yoneda lemma. I believe that there is a good description of Holochain using category theory in the sense of David Spivak and his collaborators, and more generally that creating an entire operating system made of composable "atoms" like Ceptr would really benefit from that kind of theoretical backbone. I never got to the point of anything really worth sharing, though.
The one project that is going in that direction though is Statebox. They are designing a language for making distributed applications based on new ideas on composable Petri nets and how they can be used to represent symmetric monoidal categories. Work of Abramsky, Coecke, and collaborators has shown that in some sense, symmetric monoidal categories can be thought of as a general model for any kind of distributed computation, including quantum computing. Thus Statebox should be able to talk about things like blockchains, holochains, block lattices, whatever, all in the same categorical language. This will allow apples to apples comparisons, cross-compiling, and lots of other fun stuff. So Statebox is, in my mind, the most mathematically sound language that's in production for building composable systems of microservices. I think it would be really interesting to rewrite Holochain using Statebox.
Urbit attempts to achieve this level of composability by virtue of being written entirely in a purely functional language. Functional programming has many ties to category theory which is why this is the correct strategy, but Urbit actually tries to be as mathematically simple as possible. No category theory is really in sight (ok, some monads are hanging around now) and for the most part, nothing more than high school algebra is needed to understand how Urbit works. The whole system is actually much simpler than the Unix stack, it just doesn't look that way from the outside. Urbit follows the Unix philosophy of simple tools that just do one thing well. You can really start doing some magical things when all those tools are written in a purely functional fashion.
One other project I'm aware of that is trying to do the purely functional distributed apps thing is the Ambients protocol, but sadly I haven't put aside the time yet to learn about it.
Is it really? It seems like an enormous amount of effort for a prank. 18k commits on the main repo, tens of thousands of words of explanatory blog posts and documentation, etc.
That's how you know it was a successful prank: enough people fell for it for enough time to make all those commits and docs!
See also postmodernism which I still believe to be long-form trolling by Derrida et al., yet has attracted considerable scholarship and wields enormous influence over culture.
Considering the creator, it seems in the vein of Davis's TempleOS. Not a prank, but also not a thing really built for it's utility for the wider world.
Feudalism is a fairly close model for how IPv4 address allocations work, and if IPv4 is not "widely-used" I don't know what is. It's not like Urbit is adding anything, besides a 64-bit address space (and even then, that's the same size as the space of fully-routable IPv6 networks)
Yarvin has crank tendencies that show up in Urbit, but the ones that do show up have less to do with his politics and more to do with his penchant for obscurantism. He wants to be seen as a thought leader, in politics, computing, and elsewhere, but both the ideas in Urbit and his political ideas are either relatively straightforward to someone learned in the art, or highly objectionable. So they are wrapped in matryoshka-doll nestings of obscure notation with the promise "Just accept it for now, it'll all make sense in the end."
Was just perusing the Hoon tutorial out of curiosity, and it's wild how alien of a language it is. To my eyes it's like a bastard child of brainfuck and common lisp; look at the "simple Hoon program" they give in section 1.1 as your first introduction to Hoon code https://urbit.org/docs/tutorials/hoon/list-of-numbers/
Also, the interpreter won't parse integer literals without thousands separators (which are periods). JackieChanMindBlown.png
That doc and the language itself reads like a parody of obscure functional programming languages with obtuse syntax and semantics.
Keywords are RUNES and RUNES have CHILDREN, CHILDREN can be RUNES and the programs chains the RUNES until there are no CHILDREN. Functions are GATES and tuples are CELLS and you run programs as GENERATORS from your SHIP's DOJO.
It 'clicked' for me once I got to the example using the ?: rune since I'm already familiar with that as the shorthand ternary operator in various languages, and 'Generator' doesn't sound strange at all to any Python programmer.
Urbit is a decentralized personal server platform. The platform seeks to deconstruct the client-server model in favor of a federated network of personal servers in a peer-to-peer network with a consistent digital identity.
I think every comment I've read so far contains an objection to being called "Normies," so I won't belabor that here. I will say that if the HN audience (highly interested, highly competent) tunes out before you can make your pitch you are doing marketing wrong.