| Disclaimer: I work on Urbit full-time. There are some good write-ups on the technical decisions here: https://urbit.org/blog/precepts
https://urbit.org/blog/precepts-discussion Funnily enough, most of the "mystique" isn't really intentional. It's that the inevitable "muh Curtis" arguments that always show up have discouraged many of the team from bothering to engage in explaining the project (here moreso than anywhere else) and instead focus on building the thing. Summarization: Urbit is a reaction to Unix-driven software complexity that dominates modern software development. The thesis is that cascading complexity cannot be solved without a complete rewrite of the computing stack, and that goes all the way back to the operating system. Here's an even better summarization: https://twitter.com/pcmonk/status/1201298411011629063 Alternative summarization: the internet, being built on a hodgepodge stack of tooling that wasn't made for people to communicate the way that they actually do now, has major incidental flaws. Urbit is a completely rebuilt computing stack that better maps to what we want to do with networked computers. That involves things like, but not limited to baking a non-fungible, valuable identity into the networking layer. This is another good summarization, although the sections after "Urbit ID" are out of date: https://urbit.org/understanding-urbit |
I keep reading explanations about Urbit along these lines but what's perplexing about this explanation is Urbit does nothing to achieve this goal. Regardless of the fact that Urbit is referred to as an operation system it still isn't one. It relies on a conventional OS, often UNIX family OS's like Linux to run. Urbit just layers a new even more complicated software and networking stack on top of the 'Unix-driven software complexity' that still underpins Urbit. Urbit does nothing to address these problems, it just makes them worse. Urbit's underlying software stack (Nock, Hoon, etc.) is just bizarre and non-nonsensical. For example, this gem from the docs:
"A loobean is a Nock boolean - Nock, for mysterious reasons, uses 0 as true (always say "yes") and 1 as false (always say "no")."
Wat? Why?!? And it doesn't end there. Urbit is littered with these WTF design choices and terminology. No one in their right mind is going to build professional software solutions on a platform like this. You might as well just be developing software in something like Brainfuck.