"Specifically, we say that the sort of simplicity that matters is the sort that makes it easy to reason about stuff."
This comes from a project which uses loobeans, because booleans are too mainstream. "In short, use _() to turn a loobean into a boolean, __()to go the other way." Thank you for making it easier for me to reason about stuff.
From what I gather, most of this document is aspirational I think, and more a codified "style guide" for future code and ethos of the project. The part about naming things itself is a fairly big style change from only a few years ago.
I think most Urbit devs hate the C codebase just as much as everyone else does, and there's a fair few "legacy" Hoon files that are a nightmare to read compared to more recent Hoon. Loobeans are generally considered a mistake, and not worth alienating everyone else for errno semantics.
"A TLV variable name is a random pronounceable three-letter string, sometimes with some vague relationship to its meaning, but usually not. Usually CVC (consonant-vowel-consonant) is a good choice.
You should use TLVs much the way math people use Greek letters. The same concept should in general get the same name across different contexts. When you're working in a given area, you'll tend to remember the binding from TLV to concept by sheer power of associative memory. When you come back to it, it's not that hard to relearn. And of course, when in doubt, comment it."
If only there were some way to put, like, a comment right inside the name itself somehow. Almost as if the name of the thing could be a meaningful description of what it represents. But I guess that's just a language design pipe dream.
While I’m not convinced Urbit is a good idea, its extreme arcanity actually has a pretty solid justification: keeping out entryist parasites. It’s extremely difficult to fake Urbit expertise to Urbit insiders, so you can’t pull the parasitic move of entering a tech community with little/no relevant experience and becoming a “developer evangelist” or “industry advocate” or whatever other bullshit positions people use to subvert tech communities with entryist politics, corporate control, etc.
This was described in a pre-Urbit blog post by Yarvin. Something along the lines of “personal computing in 2020”.
"I'm going to rename 5 to 4 and 4 to 5. If you can't keep that straight when dealing with this community, but not the rest of the world, it proves you're an incompetent dilettante and we can safely ignore you."
A) It's not (only) about competency; it's about objective alignment.
B) You have the logical entailment flipped. Know arcana => in-group. ¬ in-group => ¬ know arcana. It's designed to reject out-group members efficiently, even at the cost of a high false positive rate.
Eternal September sucks, but Urbit has traded "ability to ever be relevant or gain significant momentum" for "no eternal September". It doesn't strike me as a pragmatic choice, then again Urbit is prehaps better viewed as an art project pursuing the ultimate navel-gazing extremes of NIH syndrome, and when viewed in that light the choices they make start to make a lot more sense to me.
As someone who can't stand Yarvin and suspects that Urbit's obscurity is a manipulative tactic to dress up ideas that might not seem so interesting (and a product that might not seem so attractive) if they were easily accessible, I still find this comment interesting. Right or wrong, it has some plausibility, and I don't see why it should be buried.
I think talking about 'entryist parasites' and 'urbit insiders shielding themselves from people wanting in', is on its face pretty obviously cringeworthy.
Like, is that a problem that Urbit has, hordes of people at the door wanting to jump in, like some coveted nightclub?
William Gibson called this very aptly anti-marketing in his Blue Ant trilogy, and like you point out in your first sentence, it's nothing but a manipulative tactic by people who want to inflate the value of what they're selling by making it artificially scarce and exotic.
You may well be right on this point. But I'm still too ignorant of Urbit to be sure that it's simply pretentious (and fundamentally unimportant except as a fundraiser), rather than a sincere attempt to further Yarvin's political project. His political writing is manipulative, but I think at some level he genuinely means it, and it has influenced a lot of people. And while he plays the character of an outsider genius in a very annoying way, in reality he is clearly at least quite smart. I have no idea how Urbit is supposed to help bring about his neoreactionary utopia, but I worry that dismissing it out of hand might be too complacent. Some of the weirdness could be genuinely strategic, rather than purely the marketing arm of a scam/hype-trap.
On the flipside, Any Community that fails to gatekeep sufficiently ceases to exist once it gains traction. The flood of entrants rapidly replaces whatever was there before via sheer weight of numbers.
Is this an actual thing that happens / can you point to an example of a tech community getting taken over by someone who lacks expertise in the subject?
The projects I think of as overly subject to corporate control (the Linux kernel, for instance) had the existing technical leadership voluntarily submit themselves to that corporate control, because it suited their desires.
If what you're really trying to say is "It keeps out the SJWs," you have no guarantee that being an SJW is anticorrelated with technical expertise, and there are several highly technically competent SJWs. So you leave yourself vulnerable to a small number of folks who are willing to learn the terminology and develop genuine expertise and then take over consensus in the project, because you've arranged things so that there are so few people deeply involved in the project in the first place.
I don't think he's saying just keep out the sjws. Note that he's aiming it at the "advocates" and other such non technical roles, which he deems as gritfters/parasites.
Funny you bring up the Linux kernel, which has been completely subverted by the likes of Intel and RHEL. Linus was forced out using a slightly unorthodox strategy because his natural disagreeability was an effective defense against traditional subversion strategies. In any case, the strategy adopted by Urbit would probably have worked to protect Linux development from this takeover, but may also have hindered adoption to a degree that Linux would never have come to dominate.
This is the official justification. There exists an alternative explanation: it's a filter to keep the gullible. Scammers use similar techniques like making you watch a lengthy movie to get to the actual pitch.
"Gurdjieff was a magnificent old rascal, who lived a joyous life, and most of his disciples live extremely restricted, rigid, and serious lives -- because the object of Gurdjieff's method was to weed out those who understood from those who do not, and those who understood went away and those who did not understand remained."
Entryism in the Urbit community is tremendously easy; all you have to do is whine about entryism and maybe throw up a Quilette link if anyone doubts you.
I genuinely made an effort to understand this platform, including going to their offices to write some code during one of their events, and I felt like a complete programming novice. Had to implement floating point using their primitives before I could do something and stalled on that.
I think this is a thing that if it takes off like Bitcoin I won't be mad that I couldn't capitalize because I literally don't know how to. At this point I've given up on it.
I'm a non-programmer who is just skilled enough with computers to do some damage. Completely clueless about mathematical and information theory concepts, etc. Here's my measly two cents:
I've been running my own Urbit for a few years that I've connected to broader communities, and have found it to be a really exciting and fun platform. It feels like when I first found Usenet and MUDs as a teen in the 90s, except people are nicer. What I understand about its essential purpose sounds great — a decentralized identity that I own and can make communities with.
I am mostly a tech outsider, but I find it strange to see such a normally open-minded community (hackers) shut it down with such vehemence whenever it comes up
Less vehement, more resigned, I think. It isn't about the platform as an application. It's about the platform as a development platform.
The glyphs, the whimsical naming, Hoon itself. Overall, I tried and I just couldn't do it. If it isn't clear, I'm not disparaging the thing, I'm disparaging the (thing, me) tuple.
Given how aggressively they've pivoted their communications away from the esotericism, I get the impression that they're pretty cognizant of this. They seemingly have their fundamental platform somewhat pinned down, given their release of OS1. I've got my fingers crossed that as they increase accessibility on the frontend, they'll also be working to make the dev experience friendlier to those of us who didn't buy into the cultishness of Urbit early on.
> it strange to see such a normally open-minded community (hackers) shut it down with such vehemence whenever it comes up
It isn't really that strange, Urbit is the antithesis of the hacker mindset in multiple ways. Hackers value free exchange of information; Urbit is deliberately obscuratinist. Hackers tend to lean libertarian; Yarvin is an out-and-proud authoritarian and Urbit is explicitly designed around that ethos.
I gave it a go a couple of years ago, and couldn't figure out a single thing. Like, not only did I not achieve "hello world", I never managed to figure out if "hello world" is a meaningful thing you can even attempt.
Maybe it's different now, but I cannot fathom a programming novice making any kind of sense out of urbit.
Hmm. Elsewhere in this thread, centimeter was talking about "extreme arcanity" to keep out "entryist parasites". I'm not sure I can reconcile your two viewpoints. ("Welcoming after you prove that you're not an entryist parasite" is the best I can come up with, but I'm not sure it's very believable...)
I don't know who "centimeter" is and never claimed to agree with their viewpoints, so I'm not sure what the other viewpoint is that you're referring to.
The Chinese language looks extremely arcane to me, but that doesn't make it so. Quantum computing is pretty arcane-seeming too. Urbit probably seems arcane to those that know nothing about and haven't invested the time to learn. Fortunately, the docs are very good[1] and updated frequently[2]. They're also publicly available and lots of people[3] are working pretty hard to make them understandable.
Urbit is really welcoming to everyone, should they take a moment to ask about it. Here's[4] where you can find out how to get in and get set up. Here's a place where, earlier today, I offered a free planet to someone that asked[5]. And here's[6] what ended up happening.
The other viewpoint is centimeters; I had thought that I made that clear.
You say the community is welcoming. centimeter says that they're using deliberate obscurity to keep people away. You aren't responsible for centimeter's views, and don't agree with them, but they clearly are a different view on what the community is like toward outsiders.
But I should have been more clear. "Reconcile" isn't the only possibility; the other is that (at least) one of you are wrong. And I'm leaning against "reconcile" as being possible...
If you have troubles getting into Hoon, the Hoon for Regular Programmers https://hackmd.io/IYd4RkpBQVqQTehmJeoxRw I made might be a good start to break the initial novelty barrier.
Yes, some aspects of Urbit are obscure, and the post is more aspirational than stating the current state of Urbit's codebase. But it is real, it works, it keeps getting better and is fun to use.
If you're wondering whether there is something of value hiding underneath all of the obscurity and if it might be worth your time to do a deep dive, IMHO the answer is a resounding no. There is nothing hiding in Urbit other than a deliberately obfuscated computing model, of the same stripe as brainfuck, but with (again IMHO) very different motives. Brainfuck is obscure purely for the sake of being obscure, in the spirit of a puzzle or other intellectual challenge. Urbit has more sinister motives, not least of which is to separate fools from their money by selling them "real estate" in the Urbit cyberworld. The obscurity is there to conceal the fact that there is no there there, to entice people into investing time and effort into it, and then keep them sucked in by leveraging the sunk cost fallacy. It is a tactic taken directly from the playbook of con men and cult leaders through the ages.
What is worthwhile (IMHO) is to read some of Curtis Yarvin's (the founder and designer of Urbit) writings and compare them to the writings of L. Ron Hubbard, particularly bootlegged copies of the "secret" teachings of the "church" of Scientology, not for content, but for structure. To my eye, there are deeply disturbing similarities.
I disagree. I haven't touched urbit in a long time but learning the language (hoon) and trying to do something with it was a delightful experience. After learning some number of programming languages it's hard to find something new, where you feel like you are exploring something. Most of them are just a simple mapping of concepts that you already know (yes, ultimately it's a mapping too but it seems to have more layers).
I don't know what secret of the universe do you expect to find there. If it would be highly practical technology or pareto optimal to anything else that's popular, it wouldn't be obscure.
If you did a deep dive and regret spending time, for things like these I suggest not going deep if you are not enjoying the dive. Life's too short for things you don't enjoy when you have your basic needs covered.
Also, while I enjoyed talking with Curtis I think it's important to be able to separate great things that people create from those people themselves. You don't want to throw out most of physics, math and computer science.
> After learning some number of programming languages it's hard to find something new, where you feel like you are exploring something.
Like the Cenobites of Hellraiser who after running out of territories of pleasure to explore are forced to venture into pain just to find new experience.
Why Hoon rather than Brainfuck? Or Cobol? Or APL? Or Dylan? The world is chock-full of obscure programming languages. The only difference I see is that Urbit is wrapped in this air of intrigue and mystery which IMHO is wholly undeserved. But if you like that sort of thing and are going into it with your eyes open, by all means, be my guest. Just don't try to represent it as something that it's not.
But if you just want to explore the programming language design space I think you're much better off designing your own language than trying to wrap your brain around Nock and Hoon. And even before you do that, there's Haskell and Rust and Webasm and Clojure and Prolog, which I think give you a lot more bang for the learning curve buck.
Can you stop criticising people's intelligence when replying to them? You've done that a couple of times in these comments (hypothetically or not). "If you can't understand/don't agree, maybe you're just stupid" is rude and a bad look.
> Urbit has more sinister motives, not least of which is to separate fools from their money by selling them "real estate" in the Urbit cyberworld.
How is paying $20, once, for an Urbit planet different than paying $20/month to play an online game? How else would you propose to have at least some minimal level of protection against spammers / bad actors?
My take is that they went with all their bizarre design decisions in order to keep normies and entryists out for as long as possible.
>My take is that they went with all their bizarre design decisions in order to keep normies and entryists out for as long as possible
But it's just complexity for the sake of complexity with no discernible benefit. It's contradictory and self-defeating to encourage developers to adopt Urbit while simultaneously purposely designing it just so developers won't adopt it. Urbit makes many weird and contrarian design choices without explanation. It's fine to explore ideas and try different different methodologies but you should at least be able to explain why you're choosing to do it and how it would be beneficial. Here's a good example from the documentation:
A loobean is a Nock boolean - Nock, for mysterious reasons, uses 0 as true (always say "yes") and 1 as false (always say "no").
So they create an alternative to booleans that's just a backwards boolean? And their explanation for this? 'mysterious reasons' What?!? The only thing mysterious here is why any developer would use this.
The mysterious part would be a joke. The actual reasoning, which Yarvin himself has explained, is to unify the underlying data values between booleans and c-style return codes. In C and unix, the convention is that 0 indicates program success and any other value indicates some kind of program failure. It's strange for the fundamental success code to be false when cast as a boolean, so it makes sense to either change the success codes or change the booleans. Changing the success codes would actually be pretty incoherent - what would you do, 0 and >1 values are failure and 1 is success? - so it makes more sense to change the booleans if something is going to change
Not saying I agree it's worth the trouble. Even Yarvin agrees it wasn't worth the trouble. But he didn't just pull this idea out of nowhere
I have some idea what I'm talking about. I was pitched on Urbit by Curtis himself on April 20, 2012, long before it launched, and before it was even called Urbit. He tried to sell me a block of Urbit address space at the time. I don't remember the asking price, but it was substantial, many thousands of dollars. I declined.
Yes, the crowdsales priced individual addresses at less than one cent, but it's a 64-bit address space, so even at one cent that puts the gross valuation of Urbit at many orders magnitude greater than the gross planetary product since the dawn of human history. I'd say that's overvalued. Also, the addresses are not sold individually but in large blocks, with part of the pitch being that people who get in early can turn around and sell parts of their holdings to greater fools. If memory serves, the first crowdsale raised $500k. So even at 1 cent per, someone ended up writing some pretty big checks.
You're either confused or the details have changed since you looked at it 8+ years ago.
The address space for sale is 32-bit. There is also a 128-bit space that is free
Actually, it's just a 128-bit address space (so I was wrong about it being 64-bit, but this just makes the problem that much worse). Parts of this space are divvied up IP-address style into 96-bit-wide blocks (and some other parcel sizes as well), so that carves out a 32-bit sub-space. But no matter how you slice it, the fact remains that they are selling a digital asset at a valuation that exceeds the total economic output of the known universe by several orders of magnitude. If that's not a scam, I don't know what is.
> they are selling a digital asset at a valuation that exceeds the total economic output of the known universe by several orders of magnitude. If that's not a scam, I don't know what is.
But they're not. There are 2^32 planets. A planet is the minimum unit of personal identity and is meant to correspond to a "responsible adult human". Within a planet you can have 96 bits of sub-identity, if you want to have things subordinated to your own identity (e.g. your IOT stuff, your phone, your router, your car, your kids, whatever). No one is buying a 128 bit identity.
You can buy planets right now for $10-$20 on opensea. $20 * 2^32 is about 10% of the annual military budget of the United States, not several orders of magnitude larger than the total economic output of the known universe.
OK, so the market price has gone down since I last looked. Still, even at $10, that's still a valuation of $40 billion. That's in the same league as Dow Chemical and Capital One. So I very much stand by what I said above about fools and their money.
I don't have much to add, although it's kind of funny that every Urbit-related discussion on Hacker News revolves entirely around some quirky social object from 5 years ago, a general statement of bewilderment, or some rehashed judgment on MM.
I don't see any comments related to any of the system theory in this rather long and well-thought-out post.
> For example, humans are much better at learning languages compared to even simple mathematics. Even those who are "good at math" are objectively much better at languages, in terms of how much complexity they can absorb.
Is this actually the general consensus? I think this is wrong. I am mediocre at math, but I can write it, and then verify that it is correct, and then it is quite abstractable and transferrable. Conventional languages handle fuzzy input better, but they do that by allowing ambiguous parsing..
> A14: Deterministic beats heuristic.
> Heuristics make it hard to give precise safety guarantees, so you should only use them when you don't guarantee much.
I think this is overly broad. If you can run a heuristic and then validate the results in a way that provides a guarantee, that can often be just as good, right? You've still got the bound, you just had to wait until after the computation to get it. Sometimes you'll get a failure to validate instead, but that should be rare if the heuristic is good. Anyway, all our programs are relying on the heuristic "hardware usually works."
I mean, nobody loves heuristics, but we keep coming up with them, so that must be a sign, right?
"I am mediocre at math, but I can write it, and then verify that it is correct, and then it is quite abstractable and transferrable."
Imagine you encountered a meaningful equation with as many symbols as you have in that sentence. Count characters, or even count words+punctuation if you like. Odds are, you are not going to apprehend that equation with anything like the fluidity or speed your wrote your sentence or I read it... yet if you really dig into it, such as by diagramming, your sentence is a quite non-trivial expression. That you are handling fuzzy parsing, and doing so so well, argues for you being better at language understanding than mathematics rather than against it. Trying to read fuzzily-serialized math is even worse.
The average IQ-100 human being will on-the-fly both generate and comprehend in real time fairly complicated grammar structures, even with no formal training, while at the same time, it takes years of formal training to even begin to process very simple mathematical expressions.
On the flip side, one can argue that there are other considerations. What we call "math" has a very different shape that the things we use language to describe... "sharper", all the details matter, etc. On the other hand, my day job, like most of us here, is slinging around many thousands of mathematical constructs fairly casually as well, more like a language than doing math. I'm using fairly mathematical tools, but I often have the impression that I'm spraying them around like some sort of quick-setting concrete coming out of a hose, rather than crafting magnificent cathedrals of precisely-chosen abstractions, and there's a lot of reasons to prefer the former to the latter.
On the flip flip side, getting to the point that I can do this took me longer than it took to speak in English, and it doesn't appear to be something the average human can do very well....
Basically, the upshot of my point here is that language users casually manipulate hundreds of symbols spontaneously so easily that it barely even registers as effort to you, whereas math is generally not so easy. And even if the "shape" of language is somehow easier, it's not like it isn't precise. This sentance is incorrect, despite only a small error. This incorrect is sentence too. Math may be more precise than language, but it's not like it's a night-and-day contrast; if you look at language carefully enough you can see it's still fairly high on the precision scale overall.
"An Urbit" is a tiny VM with its own network protocol. It allows you to run apps written for it which can communicate over the Urbit network (By far the most used one is an instant messaging app).
Every Urbit has a permanent address which persists even if you move it around between computers. Each Urbit fully encapsulates its own state, so it can be zipped into a single file, unzipped 20 years later on a different computer, and it'll still work, still be able to connect to the network, and still contain all the data you had.
Urbit apps are fully decentralized, users own all the data and control what and how they wish to share it via the Urbit network.
As it contains a high-level Turing-complete programming language named Hoon, it could be used for anything which regular computers are used for.
There are actually some very interesting ideas in Urbit. Unfortunately it's all hidden below many layers of obfuscation and weird naming.
Re-write of a) the internet, b) the WWW, c) compiler, d) operating system, e) app runtime. Presumably these all need to be re-written from scratch for undisclosed reasons.
It could be the next iteration of networked software that adds security, gives ownership back to the people, breaks the big tech monopolies, actually beyond that the Urbit docs are vague with respect to the benefits of the platform (not to mention how they plan to accomplish these goals and avoid the pitfalls of the existing tech).
I have to say I'm skeptical! I get major vibes of NIH syndrome and delusions of grandeur from this project.
* The original vision for the internet was decentralized: if I want to send you a message or do some computing work together, I would have my computer talk directly to your computer
* This vision actually failed and today virtually all computing on the internet has become centralized in big corporate servers. Instead of my computer talking to yours, my computer logs into Facebook's server and we communicate through Facebook controlled accounts. These big corporations control our accounts and identities and often our data too. They can censor us at their whims, serve us ads, and data mine us
* The decentralized vision failed because decentralized software is much harder to build than centralized software and servers are much harder for everyday people to operate than regular client operating systems
* It seems unlikely that these problems can be solved from within the current ageing technology stack, so what if we built a new tech stack - designed from scratch to make decentralized networked computing easier - where running your own server is no harder than running your own web browser or smartphone
> a new tech stack - designed from scratch to make decentralized networked computing easier
It's important to emphasize how very deeply from scratch it is, renaming absolutely everything, even the most basic concepts, with lots of abstractions.
That's maybe important and interesting to developers, but the value proposition of urbit is to the regular computer user. John Doe doesn't care what names or concepts are used in ECMAScript, he just cares that his browser works. John Doe doesn't care what names or concepts are used in the urbit stack, he just cares that his personal server works
The value proposition depends on developers, so mentioning the mysteries they have to go through is relevant to making a summary. It's a huge part of what makes urbit urbit.
> F: Real Software. Not all software matters. Any software which wouldn't exist on Mars isn't real.
Is it true that mars has neither lambda calculus nor category theory? From what I've read, Urbit is meant to be a boolean – it's either mathematically perfect and succeeds, or it's not and it fails. And it appears it's not perfect. Do I have it right?
Except the idea is wrong. Software can be mathematically imperfect and succeed (hello, Microsoft Windows), and it almost certainly can be mathematically perfect and fail (by being mathematically perfect but not doing anything that anyone cares about).
I, for the millionth time, tried to go into the documentation to understand how Hoon works.
My TLDR: there’s streaks of absolute brilliance, particularly in the OS level. But it’s all so intentionally obfuscated with a dash of elitism thrown on top.
I think the most frustrating part was reading the Hoon tutorial (Hoon is their high-level programming language) and not understanding a single word. They use completely new terms, strange syntax & then throw in the casual “See? It’s that easy!”. Not even a comparison anywhere to traditional languages for reference (not that it’d help at all anyways)
I've tried several times to wrap my head around Hoon and failed. However I'm only a functional programming novice. The one time I reached out to a colleague who's an FP expert, his response was (paraphrased) 'I'm not touching that with a ten foot pole because of Curtis Yarvin's involvement'
"A battery is a collection of Hoon expressions and the head of a core."
This is what GP is talking about. Reading through the tutorial, it made some sense. I could probably code in this language with a bit more reading and practice. But the choice of deliberately obfuscating terminology makes it read like a joke or an esoteric language (languages not meant for real use but as puzzles, challenges, maybe for code golfing).
I mean, half the time they explain these things with analogies. A gate is a function, they say it nearly every time the term comes up. So why call it a gate?
EDIT:
When I was at GA Tech (now many years ago) we had access to a set of servers, "acme" (acmex, acmey, and acmez if I recall correctly). Each semester we had a limited amount of access to computational resources on these servers, measured in "bananas". We had plenty to do things like access mail, newsgroups, maybe do basic programming assignments. But anything resource intensive or really long running ate up your bananas and you'd have to request more (no cost, it was a limit to keep people from abusing shared resources).
This was absolutely fine, and a bit humorous. "I can't run that, I don't have enough bananas." But if I were rolling out a product to universities across the country to manage access to their systems I would not use "bananas" as a term. Within the GT community it had a shared meaning, but outside it made us sound like asylum escapees (perhaps an accurate description of us). "bananas" communicates nothing to users on its own, just like "gate" and "battery" communicate nothing to anyone familiar with other programming languages.
As someone with a good amount of hoon knowledge, I'd say there are definitely some cases where new terminology does more harm than good, but in other cases simply using the name of a similar concept in other languages would hide complexities or differences that the learner will need to know eventually
“[I]n many ways nonsense is a more effective organizing tool than the truth. Anyone can believe in the truth. To believe in nonsense is an unforgeable demonstration of loyalty. It serves as a political uniform. And if you have a uniform, you have an army.” -- Curtis Yarvin
I don't think that's fair to TempleOS. While portions of it reflect Davis' bouts of insanity, the core of it is a world that has passed us by, and all of the anger that goes along with losing something that you can never get back. For all of the shortcomings, it's hard to not look back at what computers were like in the time of the Commodore 64 and not have at least a little contempt for how everything panned out afterwards.
Urbit is what happens when you have smoke blown up your ass for too long. It's everything that TempleOS didn't want to be; for all of its aspirations of being a Third Temple, the point was always that TempleOS was within your ability to understand. Urbit is postured in a way that implies it's never meant to be truly understood.
TempleOS was practically straightforward by comparison. The language it's written in is almost (but not quite) C, and it generally follows the design patterns of an older (perhaps early-90s?) software application. It's certainly got its weird aspects, but they exist at a higher level -- in its self-imposed design constraints and naming conventions, for example.
Terry Davis' TempleOS was one man's project and shared with the world. It was accessible, if somewhat eccentric.
Urbit is a collective project that includes a redefinition of true as false and false as true. It is deliberately inaccessible, and quite eccentric. They seem to have an objective of creating an inner sanctum, a group of high priests for this technological future. They obfuscate with their writing rather than trying to provide illumination for others to be able to participate.
I think Terry's outbursts are of a very different character in light of his general condition. Yarvin appears genuinely, intellectually committed to being a bigot.
In any case look at it for its technical merit not the politics of its founder. If you're going to eschew any tech founded by someone with... shall we say "interesting" views... then your tech stack will get pretty small.
I think Urbit is interesting, but I find it too weird and rigid and idealistic and far from the metal to see wide adoption.
If I recall correctly, the entire point of Urbit's design philosophy was to demo the neo-cameralist ideology that Curtis Yarvin came up with. While the poster above is taking flack, I'd argue that, at this point, there's no way to split the ideology behind Yarvin, and the design of Urbit.
Yarvin was quite explicit about creatively embedding neo-reaction in the design. The most obvious is the hierarchical finite namespace -- you receive your identity from an authority, and the authorities (read as "land") are already assigned by the founders (read as landlords). The early writings were very explicit with language like "planets", "moons", etc. https://urbit.org/blog/the-urbit-address-space/
I find the network and addressing model to be the worst designed and least interesting part of Urbit. That's the part that reflects Yarvin's political ideology, but I also think neoreaction is political flat Eartherism. Pretty much all of neoreaction boils down to refusing to account for survivorship bias. The average old thing looks better than the average new thing because crappy old things were forgotten.
The interesting parts are the functional programming approach used, which is somewhat novel or at least novel in its execution.
Another reply compared it to DNS, which is valid, but DNS does not have artificial limitations like Urbit does. DNS is also in many ways a bad design, not because it's inefficient but precisely because it encourages a feudal model that artificially constrains what the Internet could do. DNS was maybe the only viable model back when the largest machines online came with a whopping few megabytes of RAM, but some kind of distributed replication approach could be done today.
Don't forget that in the initial source-code, Yarvin called the planets and moons, dukes and earls. To me, that's a pretty clear indicator that feudalism was on his mind at the time of developing the software.
The address space is scarce (not dissimilarly to ipv4). Ethereum is used to map address space to owners and activities like transferring ownership. Urbit processes listen to an Ethereum gateway to learn about ownership changes and address lifecycle events ("breaches"), there aren't other "transactions"/fees involved in the protocol/implementation.
Here's a very concrete example: The address space in Urbit for self-controlled entities is 2^32, four billion. You can use Urbit if you don't have such an address, but you're a subsidiary of whoever is giving you access to the rest of the network and you're subject to censorship/control by them. You can't develop an independent identity that someone else can route traffic to.
Now, it's true that the IPv4 internet also does this. But the IPv4 internet does this because they didn't expect to run into the limit (far fewer than 2^32 IPs were originally usable), and then they started working (halfheartedly, but whatever) on IPv6. Urbit has the limit because, as a philosophical position, they believe the limit is a good thing, because there should not be more than four billion people with full human rights.
> A 32-bit planet is a tool, not a toy. Like a car, it's a device for a responsible and independent adult. There aren't 4 billion cars in the world, nor 4 billion independent adults.
> If you aren't an independent adult, and you don't need or even shouldn't have unconditional digital freedom (no one's 8-year-old daughter needs unconditional digital freedom), a moon from someone else's planet is fine. (Even most of today's independent adults don't complain enough about being Facebook's moons.)
This was written by Yarvin in 2016, when there were over 5 billion people over the age of 18 in the world, so at least one billion adults then were unworthy of first-class citizenship in Urbit's "digital city," and even more today - not to mention the 8-year-old daughters or 12-year-old daughters or 16-year-old daughters who need conditions on their digital freedom.
It's not that those adults aren't worthy of first-class citizenship or digital freedom, it's that they wouldn't know what to do with it, or how to steward/safeguard it properly.
Based on my username, it's easy to figure out where I stand with regards to independent digital ownership of content. But even I have to admit that the process of being self-hosted for anything at all brings esoteric advantages at best, is very hard work to set up and keep running for a non-technical person, and is prone to takeover by a motivated adversary unless one is constantly vigilant.
It's far better to have a person in their lives who would manage their digital independence for them, assuming they are trustworthy and would do a good job at it. We already know the phenomenon of the "resident geek of the family", or their paid equivalent. Why not have a "resident digital independence keeper of the family/small community"? Surely that's already better than a mega-keeper like Facebook, who is unaccountable, not worthy of trust, and not with the user's interests in mind?
Each address ownership has to be tracked in the PKI database, so there's a big pressure to limit their number.
Users don't have to use a self-owned addresses (planets). They can use moons which are delegated by the planets that issued them. The only limitation is that they are not fully independent (can't be resold, can be "canceled" by their planet) - just like an account on the website (just being run independently).
> not to mention the 8-year-old daughters or 12-year-old daughters or 16-year-old daughters who need conditions on their digital freedom.
Nothing is really stopping them from using a moon issued by their school, university, a random website offering such an account, other family member or a friend etc.
Right now most of the world is using identities issues by Facebook, Twitter, Github etc. and not many people seems to mind. Also most people have their devices behind a NAT and also don't mind. That's exactly what using a moon would mean.
Having a planet is for more serious usage: where one wants to guarantee independence: proper identity that can't be canceled and so on. Akin to owning a root DNS name for your personal server. So 4 billion is probably even way more than we are going to need, even if world population grows x10.
Yup - I think that all matches what I'm saying. It's a fundamental philosophical tenet of Urbit that there are fewer than four billion people in this world who are deserving of a "proper identity that can't be canceled." Urbit specifically exists to promote having an independent digital identity instead of being subservient to Facebook, Twitter, etc., but not everyone in the world is worthy of having that independent digital identity in Urbit's eyes, and never will be.
To be clear, I'm not primarily arguing whether Urbit's view is right or wrong - it's probably clear that I mostly think Urbit's view is wrong, but the primary argument I'm making is that Urbit encodes this particular view into its technical implementation. I'm definitely not arguing, for instance, that 8-year-olds deserve the same rights as 30-year-olds - but I am arguing that it's a legitimate position to say they do, and that human society may, with good reason, come to that conclusion in the future. But Urbit has closed the door on that question. Sure, we live in a world right now where not all people have the same rights, and in particular children do not. But in a world where Urbit succeeds, there's no point even debating the question, because not all people technically can have the same rights.
Nobody is truly independent, and has never been. It may seem offensive to the Western notions of liberty, but the evidence is clear and Urbit is merely acknowledging the reality of the situation.
- The average people are dependent on the whims of the voting majority (democracy), or the whims of their leader (monarchy/totalitarianism)
- In addition, the average person chooses to do or avoid doing certain things, to maintain social conformity and avoid ostracism.
- The upper classes and elites are dependent on the whims of those above them in the power structure of the country
- The ruling class depends on the loyalty of those below them, so their conduct and decisions must be naturally shaped by those who they depend on to stay in power (see CGP Grey's "The Rules for Rulers", https://www.youtube.com/watch?v=rStL7niR7gs)
- On an international level, this applies correspondingly. Weaker countries are at the mercy of their superiors, co-equal countries must not go too far in violating norms lest they get called out on it by peers, superpowers are dependent on their fellow superpowers not punishing them and on their client nations not to rebel.
I do agree that environments like Urbit should make it easy and cheap to become independent, and free to change your "landlord", but that's a mere implementation detail.
There's nothing baked in stopping moons from being freed from their planets other than code for that hasn't been written yet. Indeed its the general consensus among the community that creating more addresses by liberating moons would be what is done if the ~4 billion limit were ever reached.
There's ordinary mathematical reasons for the 4 billion limit - it makes the address space 32 bits. I've never met anybody working on Urbit that believes the notion you're putting forth.
OK - could the folks working on Urbit update that page or indicate that it doesn't reflect the current project's plans/beliefs, then? A "Common objections to Urbit" page that says "We would and easily could add more than four billion planet-like entities if the need came" would be far more convincing to objectors than "Actually, there aren't four billion people in the world deserving of our project's goals."
(I realize the document is from 2016 and written by someone no longer associated with the project, so maybe a disclaimer at the top linking to an entirely new version of the document would work, or something.)
There's a lot to be said for separating the art from the artist (Heidegger always comes to mind). That being said, if the art is an expression of the ideas that are considered reprehensible, then it becomes much harder.
With the example of Heidegger, his core works, including Being and Time, did not expound upon his Nazi sympathies. Had Being and Time instead be a work which deeply integrated Nazi ideology, the dialog around the work would be significantly different. Instead, a clean line can be drawn between Heidegger the Nazi, and Heidegger's work.
With Yarvin on the other hand, his work actually expounds upon the ideology he created. There's no clear way to draw a line between Yarvin's ideology, and Yarvin's software, since they're so deeply linked.
> Not all humans are born the same, of course, and the innate character and intelligence of some is more suited to mastery than slavery. For others, it is more suited to slavery.
should be disqualified from having his works shared here. I'll pass.
"Aristotle said that some people were only fit to be slaves. I do not contradict him. But I reject slavery because I see no men fit to be masters." -- C.S. Lewis
His mapping of the structure of our current governmental system was eye opening to me. I liked the explanation of the prescriptive (planned/written) vs. the descriptive (actual/unwritten) constitution. I also liked the idea that organizations that aren't officially part of the government are effectively part of it without having any accountability.
His imagination is limited. He is a statist and thinks if a persons opinion doesn't matter (subjects of the state) Then they have ultimate freedom. He equates having zero power as freedom.
Isn't that a valid way of thinking? I think most Chinese citizens are in many ways more free than American ones. Obviously in other ways not so much, but it isn't obvious that it's all for the worse. For instance, they don't have to pay attention to politics nearly as much as Western citizens do. Look at the state of our politicized society, how much stress it generates, and how much better your life would be if you didn't have to deal with politics invading every aspect of society.
Less, because the way it invades those aspects is direct, and not indirect through other human beings. In our society, for power to work it has to convince the population of what power wants, which means that the political invasion happens by other people caring about politics. In a country ruled by a dictator, that isn't the case, because the dictator doesn't have to convince the population of anything, he just does it, and if it works and it's better then good, and if it doesn't then he can try something else (without having to reconvince anyone that now this something else might work).
China's social credit system is highly exaggerated, and not far too different from what already exists in most Western nations. People get fired here for the slightest social mistakes, right? On top of not being able to buy all sorts of things if they don't have enough credit.
As for the first question, it's not a problem for China specifically because their leaders seem competent. But more generally the problem of power transfer in case of poor results probably has lots of different solutions that haven't been tried in the past, especially now that we have more technology available. One interesting thing China does is have lots of surveys about local policies, which seems to me like something easier and more practical to have now that everyone is online.
In any case, that question is not too different of a problem than what to do when the government in a decentralized democracy such as ours has been taken over by all sorts of interests that are not aligned at all with the population's interests.
Decentralized systems like the one we have are very hard to fix incrementally precisely because they're optimized for stability in the face of constant growth, and we've reached a point of no growth, so the stability starts working against it as it makes the necessary changes harder to enact (since it's very decentralized). Like it or not, the most logical solution for this is more centralization of power. And this will likely happen in the coming decades. It's better that it happens willingly than unwillingly.
I'm not going to take advice on what is 'wrong' or 'correct' from a document that says "The halting problem says that it's impossible in general to even determine if a piece of code will finish without running it.", which is a gross misstatement of the halting problem.
To believe that to be a problem, it would require someone to think that saying "impossible in general to x without y" is the same thing as saying "doing y is sufficient for x". The thing about that is that they're not the same, and that kind of person is certainly in no position to be (loudly) trying to point out others' logical mistakes.
The emphasis of "generally" is poorly placed, but more importantly they also imply that you can tell if something halts by running it, which is only true if you run it long enough for it to halt! (Which is the real crux of the halting problem)
This comes from a project which uses loobeans, because booleans are too mainstream. "In short, use _() to turn a loobean into a boolean, __()to go the other way." Thank you for making it easier for me to reason about stuff.