1/ Q: What is Urbit?https://twitter.com/M_C_Masters/status/1502277549338107909 …
-
-
4/ Starting at the bottom and working up (if the next few tweets don't make much sense, stick with me, and it will get coherent again around tweet #10 or 15 or so) we have a new "virtual machine". A virtual machine is a model of computation that has a few specified operations.
Show this thread -
5/ You could imagine making a virtual machine of an abacus. This would be a software package that maintains 10 memory locations, each with 10 beads, and the machine allows a caller to move a bead on any wire left or right...but never add beads, never remove them, never add wire
Show this thread -
6/ The reason for virtual machines is to simplify from the absolute insane complexity of modern CPUs. Simplification allows clear modelling / thinking. Virtual machines are not new. Javascript in your browser (Which makes images move and scale, buttons glow, pages autoupdate)
Show this thread -
7/ ...runs inside a virtual machine called "The Javascript Virtual Machine" (JVM). Why a VM in your browser? To strictly limit and control the possible operations the code from 3rd party websites can do, so that it can't format your hard drive or disconnect you from the 'net.
Show this thread -
8/ Urbit has it's own VM...and...it's weird. Here's the definition of it. If this looks like it's intentionally obscure, a bit of Berkley slam poetry that's formatted INTENTIONALLY TO DISCOMFORT THE MUNDANES...you're right.pic.twitter.com/Hcw2EwAWzn
Show this thread -
9/ Each line in the above image represents one action that can be done in the VM. There are 16 or so actions this micro / baby / software defined computer can do. Everything else is built atop those.
Show this thread -
10/ The first two lines say "there is an operation which, given some piece of data, will tell you if that piece of data is a number, or a datastructure". The next two lines say "there is an operation that adds 1 to an integer, but does not modify a datastructure".
Show this thread -
11/ The next three lines say "there is a function which tests if two things are identical to each other". Etc.
Show this thread -
12/ The VM operations get weirder as you descend the list. In the middle we get data access...and this is where it is revealed that the VM does not use linear memory like every other bit of computation ever in the history of the world. See, in computers, memory works like >
Show this thread -
13/ a long row of mailboxes. The first mailbox is number 0, the next one is 1, next is 2, next is 3... etc. And computers operate, at a base level, by taking the data in mailbox 13, adding it to the data in mailbox 98, and storing the result in #9971. or ...
Show this thread -
14/ looking at the number stored in location 931, and if it's 0 next moving on to mailbox 932 and performing whatever operation is stored there, but if that first number ISN'T zero, then instead going somewhere else and etching an instruction from that location.
Show this thread -
15/ but, key thing here, is the memory is linear. Addresses get bigger and bigger. In the urbit VM, memory is a tree structure. The first memory location has two children. Each of those children has two children. Etc. So to get to a certain memory location you can't just >>
Show this thread -
16/ start at location 0, check your notes, see "ahh, we're going to location 9 million and 6 ...let's speed walk along this row of mailboxes till we get there". Instead you start at location 0 and then take a forking path: left, left, left, right, left, right, right right...
Show this thread -
17/ The language, the 16 opcodes, that run on this virtual machine, are called Nock. Nock is insanely difficult to program in, so Curtis wrote a higher level language ON TOP of Nock, called Hoon ... which is ALSO insanely difficult to program in.
Show this thread -
18/ OK, we're back to the part of the thread that normal people can follow. So, we've got this new programming language called Hoon, which runs on top of a new virtual machine. So what? Well, the software is free. You can download it and run it on your windows, linux, Mac >
Show this thread -
19/ and when you do, the software on your machine is in connection with every other person in the Urbit-verse, or, rather, the software running on THEIR machines. You can type at your local Urbit, and interact with other people and their local Urbits. These local things >>>
Show this thread -
20/ were once called "ships", then "yachts", and after three or four renamings they are now called "planets" or "comets". A planet or a comet is a bunch of things at once:
Show this thread -
21/ * a window you can type into * a store of information on your local disk * a "mailing address" that is unique from every other "mailing address" in the urbit-verse (kinda like an email addr, or a domain name, or an IP address) * NFT "property" that can be subdivided & sold
Show this thread -
21.5/ Twitter apparently broke threading here. Thread continues ---> (tho if you go here and look for context, you can see that I threaded it correctly and 21 precedes it )https://twitter.com/MorlockP/status/1502285486865403911 …
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.