The world is moving to cloud computing – which means that the world is moving to giant megacorps that are excessively cozy with the government owning all your data.
Which, as general David Petraeus discovered, can be really bad for you. Google tipped off his enemies, not by reading his email, though they did read his email, but by tracking where he was when he logged in to gmail. Which is why Hillary likes to keep her email server’s database on a thumb drive that she personally controls. Supposedly this is bad for national security, but I am pretty sure it is mighty good for Hillary’s security.
Urbit is intended to fix this:
Your urbit is a personal server: a persistent virtual computer in the cloud that you own, trust, and control.
Unfortunately urbit is also a language, a rather weird language, and a language that is interpreted rather than compiled.
A compiler can compile itself, and usually does. An interpreter cannot interpret itself.
Urbit, as a language, is kind of like Haskell as a language. Except that Haskell has a compiler, which is a huge advantage.
Let us suppose you want to multiply two times three in Haskell:
Well if you multiply two by three in C++, the compiler generates code that loads the number two into a register, loads the the number three into another register, multiplies the registers together, then stores the result where you tell it to store it.
If you multiply two by three in Haskell, the interpreter first creates a function to multiply any number by two, then applies that function to the number three, and it does not store the result. Which means if you have any non trivial program, it is pretty hard to figure out what the program is actually doing and how much time and memory space the task is going to take. Except that you can be pretty sure it is going to take more time and more memory space than doing it in C++.
Does anyone actually use anything written in Haskell? All alleged successful uses of Haskell are in-house usages – the man who uses the program is the man who wrote the program. We don’t see someone writing something in Haskell, and then large numbers of other people using his software. If you google any standard language, you get lots of hits of people wrestling with vast amounts of data used by vast numbers of people. If you google functional languages, you get academics playing interesting and clever games for the entertainment of other academics.
I rather suspect that no one except Yarvin is likely to be able to write any large efficient program in Urbit.
In order for Urbit “your personal server on the cloud” to be useful, your personal server needs to provide tools that are the functional equivalent of blogging, tweeting, reddit, facebook, Github, email, the pirate bay, the silk road, ebay, and such. Tools whereby you can use your personal server to securely interact with other people.
Not seeing specs for such tools. Such tools seem like a lot of work.
The huge advantage of a language such as Urbit is that the cloud is inherently massively parallel, and Urbit is designed to be inherently adapted to massive parallelism. Your personal server on the cloud can scale – enormously. Which is more of an advantage if you are a giant corporation. And even so, giant corporations do not use such languages, because they are hard.
Something like Urbit is the right way to do things in a massively networked environment. But it is an enormous and difficult task. Writing a compiler would not be such a big job compared to all the other jobs that have to be done to make Urbit useful.
Urbit is a bright idea. It is a correct idea. But it is a really big job.