
Urbit in 2017 - alfredxing
https://urbit.org/blog/2017.1-update/
======
pavlov
I appreciate the design notes, but there is a strange dissonance in the
concept.

The text reads: _" Urbit has to be just as usable as any widely used app in
2017. For a personal server, the usability bar can't be Unix."_

Just above this, there is a screenshot of a browser displaying the following:
_" OK, ~ravmel-ropdyl is coming online. Ping 734ms, DNS Waiting, :talk
Waiting"_

...which, well, looks exactly like '70s Unix usability.

I also find it odd that Urbit wants to conquer the world, yet the design is so
attached to entering ASCII sequences on a command line. This severely limits
the platform's international usability. Their programming language's syntax
page even proclaims "To make ASCII great again, we've mapped each punctuation
glyph to a syllable": [https://urbit.org/docs/hoon/syntax/#-glyphs-and-
characters](https://urbit.org/docs/hoon/syntax/#-glyphs-and-characters)

The problem with using all these ASCII punctuation marks is that many of them
are hard or even impossible to type on various international keyboards. It
doesn't seem like non-English users were ever considered when the decision was
made to "make ASCII great again".

On a more conceptual level, marrying a supposed futuristic redesign of the
Internet to a 1960s character set just seems off. Today's computing
increasingly happens on touchscreens, but Urbit's I/O model is happy to settle
for the ancient paradigms of teletype terminal emulation and ASCII streams.

The whole thing has a weird retro-futuristic vibe to it, like it's more of an
art project about a computer system that the Mad Men would have used to update
their websites in some alternate reality.

~~~
chc4
I really don't think that worrying about what symbols Hoon uses is productive.
There are tons of worse things to say about Urbit than "once it becomes bigger
than C, how will Japanese people code it"

Arabic and Japanese people have been using C and Javascript just fine, so I'm
not sure even in the hypothetical future it would be a problem. And if it is -
Hoon has keyword style now ("|- a/@ (add 5 a)" can be written (":gate a/@ (add
a 5)"), or barring that the language rune parser can be replaced with a simple
gsub in the source.

Hoons runes are really just names for which AST node it is, so it would be
trivial to make a smartphone Hoon editor that works like Scratch or Lisp
instead of textual.

Hell, Hoon compiles down to Nock, so you don't even have to use it, just write
another language that targets Nock instead.

~~~
e12e
Japanese is actually not the best example of "bracket pain" \- in order to
type in Latin script at all, you need to shift completely away from "native"
input, as the various methods for typing kanji and kana tend to be some
variant of lookup (via eg pronunciation) - select (like tab completing
identifiers).

Thus, it makes a lot of sense to simply switch input modes and maybe even
keyboard layouts.

Now, for something as close to English as Norwegian - you have a rather
different touch layout due to having 29 letters. This is actually one reason I
like python - less gymnastics due to less curly brackets.

Another problem with using ascii, is that now even code comments need to be in
English character set in practice. Never mind function names etc.

Utf-8 by default is actually great in the programming languages that support
it.

Don't mistake "have been tolerating absurd limitations of C" with "greatly
enjoying the backward limitations of ASCII".

~~~
chc4
I'd actually have to check if Urbit supports utf8 code. I want to say yes,
since the compiler internals technically can, but it's probably not hooked up
correctly.

Are there any languages do this right? Even if identifiers can be utf8, they
still have English reserved words. Maybe something like Forth, where the
entire language is redefinable. Or, I dunno, Smalltalk.

~~~
yjftsjthsd-h
There's always APL!

------
PeterReid
For a toy project of mine, I needed a way to encode small programs to send
around. I originally wrote a interpreter for the MIPS instruction set, but
then I encountered Urbit's functional machine language, "nock", and switched
right over to that. It ended up being a much much simpler interpreter with
more compact program encodings and a lot fewer arbitrary-feeling decisions
involved. Nock also turns out to be a really straightforward compile target
for lisp-like languages. Nock is confusing to approach, but it is really very
clever. I would recommend learning it if you are in the mood for a puzzle!

Nock:
[https://github.com/cgyarvin/urbit/blob/master/doc/book/1-noc...](https://github.com/cgyarvin/urbit/blob/master/doc/book/1-nock.markdown)
My project's nock VM:
[https://github.com/PeterReid/hoplight/tree/master/vm](https://github.com/PeterReid/hoplight/tree/master/vm)

~~~
chc4
Neat! Are you compiling Hoon for the programs, or did you make your own
language that targets it? How are you handling infinite loops or calling
potentially unsandboxed jets? Reading over your code, it looks like you
expanded Nock a bit with opcodes for e.g. hashing. instead of having a base
stdlib context you are calling against with a jetted gate for it. Any reason?

The problem with Nock as an embedded language is that you need a certain
critical mass of jets before it's usable, unfortunately. How has that worked
out for you?

I thought that Nock would be a cool language for this type of stuff, or
replacing Bitcoins/Etherums embedded stack languages due to the purely
functional, its-just-reduction aspect.

~~~
samatman
This is one of the reasons I included all arithmetic operations in ax:

[https://github.com/mnemnion/ax/blob/master/ax%20spec.md](https://github.com/mnemnion/ax/blob/master/ax%20spec.md)

Also because once you say 'natural number', the arithmetic operations are
already in scope, so to speak.

~~~
chc4
I get that Nock is half philosophical perfection, so it makes sense to me. All
those operations can be trivially defined without any cost, but they muck up
the spec (Does your language gzip to 340 bytes? Can I wear it on a t-shirt?).

Not that there's anything wrong with defining a language that is usable out of
the box, but at the same time muh intellectual purity.

~~~
samatman
You might have to use the back of a t-shirt.

A spec which includes the term 'natural numbers' but not subtraction might
even be argued to be incomplete, rather than minimal. Ymmv.

~~~
chc4
You can synthesize subtraction from recursion and addition. Peano numbers
really only have successor, but is still a valid encoding.

Really, you aren't wrong. But then how would we be able to advertise how
stupid Nock is for those sweet internet points? It can't even do subtraction!
Come see, tickets one dollar!

Addition is kinda the prime operation that is needed - everything else can be
dissolved into it, but without it the jet system doesn't hold up because your
language can't really /do/ anything. If you didn't require jets to be
transparent to the reduction, you could just have /all/ operations be jets and
not even pretend Nock was useful without them.

~~~
pcmoore
Check out [https://github.com/tibru/tibru](https://github.com/tibru/tibru) No
primitive arithmetic operations at all, no need for jets but the same time
complexity as arithmetic in C just with a higher constant factor.

------
trashtoss
It's a wonderful luxury to craft such a sufficiently vast work of nonsense
that no one possessed of sufficient reason to craft an informed critique will
ever feel it worthwhile to invest the time to do so...one can putter away
indefinitely in such a self-crafted safe space

~~~
Karrot_Kream
Must all creation be judged? Subject to code review? Criticized and torn
apart? Next, let us ban the child's doodle, for it is a self-crafted safe
space, free of criticism and the harshness of reality.

~~~
kognate
Yes. Yes. Yes. And Exalted, Loved, and Adored. Critique is not the same as
banning. The Child's doodle is always critiqued, which is why we say "Good
Job!" to the child who shows us the doodle. The doodle is not created in a
self-crafted safe space by any measure.

Creative works are not delicate embers that need to be protected from the
elements. They are divine sparks, each one illuminating the darkness. That
light is meaningless without eyes to see it.

------
jff
I remain unsure whether Urbit is a real thing or simply an incredibly long-
running satire. Their missives do nothing to clarify this point.

~~~
callahad
Well, you can run it and it does things, which effectively puts the question
of "real" or "satire" into our hands. At this point, it is what we make of it.

~~~
Dylan16807
You can use an onion article as a force to motivate activism, unleashing a
very real effect upon the world. But it remains satire.

Your post is more about real vs. not real, while I think the question was
supposed to be satire vs. not satire.

~~~
ncallaway
The parent post from jff was explicitly framed as "real vs satire" and not as
"satire vs not satire".

~~~
Dylan16807
It used the word "real", but I'm pretty sure it was a synonym for "not
satire", not the more philosophical meaning that callahad took. It's very
common to use the word "real" that way, for something that isn't just extant
to demonstrate an idea.

------
overcast
Reading urbit, I feel like I've stumbled upon some ancient alien artifact,
that no one has any idea what its purpose is.

~~~
nyolfen
the 'alien artifact' characterization is one used by popehat in his
explanation of urbit from a few years ago, which i recommend to those curious
as to what exactly urbit is: [https://www.popehat.com/2013/12/06/nock-hoon-
etc-for-non-vul...](https://www.popehat.com/2013/12/06/nock-hoon-etc-for-non-
vulcans-why-urbit-matters/)

~~~
davidgerard
That's ClarkHat, _not_ PopeHat.

~~~
nyolfen
aha! apologies

------
nnq
...still no "Urbit for mere mortals guide" or something like this?

Or even a "how to do X with Urbit" where X could be anything.

Sorry, but no matter how great the ideas, until they can show an explanation
_anyone_ can understand it's all worthless. If you try hard enough you can
explain block-chain and bitcoin and ethereum to a poet or painter or
politician. Won't be easy, but you'll get somewhere.

Whereas their:

> If Bitcoin is money and Ethereum is law, Urbit is land.

...makes absolutely no sense whatsover to anyone, despite the plain words
used. What's the correspondence, analogy, what abstracts what, what does
what?! No place for your mind to even start chewing this. With this you can't
even explain Urbit to a mathematician or to a philosopher... let alone to Joe
Average or Frank Underwood.

~~~
setr
Bitcoin is digitally manages money, ethereum digitally manages laws (in the
form of autonomous contracts, in the form of code is law) and urbit digitally
manages real estate (in the form of hierarchical address space).

My understanding of Urbit is that its trying to solve the problem of identity
management, while maintaining that all data begins with you, while using ie we
give our information to facebook, and facebook is free to use that information
as it wishes (including modifying it, or deleting it). Facebook thus becomes
the source if truth. Ideally, the control structure should be inverted; our
machine is the source of truth, and facebook gets to read from us when we let
it. And since we're the source of truth, there's no issue with sharing that
data to anyone else (ie google).

This is of course what we have when dealing with desktop applications reading
from our personal files; vim and sublime can be used interchangeably because
our files are ours, and we always have access to it. Use google apps, and you
get access to your text file only when google chooses to let you have it. If
they refuse to give it back to you in a format recognizable by anyone else,
then, well, you're fucked. But if we choose the format, and google must
follow..

The idea, as they express it, that using a cloud service a n:1 deal; many
users on a single app. Urbit tries to provide the inverse, 1:n. Many apps
working solely for you.

After that is a bunch of interesting implementation details; a purely
functional os, language; the pretense that multiple servers are one unified
machine, the pronouncable base-256 encoding, the astronomy-naming system for
address space, the political governance of Urbit as a network, etc.

------
pushcx
Yarvin's having a laugh at all of you.

Early in the article:

> What is an app, anyway? It's _shared computing_. Everyone's data is one data
> structure, in one program, on one server, owned by one corporation.

This is a callout to the Nazi slogan Ein Volk, ein Reich, ein Führer:
[https://en.wikipedia.org/wiki/F%C3%BChrer#Ein_Volk.2C_ein_Re...](https://en.wikipedia.org/wiki/F%C3%BChrer#Ein_Volk.2C_ein_Reich.2C_ein_F.C3.BChrer)

And then the only other time "shared computing" appears in the document:

> To paraphrase Walter Sobchak: say what you want about the tenets of shared
> computing, but at least it's an ethos.

In the movie _The Big Lebowski_ , the protagonists are harassed by by
nihilists that the sort-of militantly Jewish Walter initially assumes are
Nazis. When it finally gets through to him, he says, stunned, "Say what you
want about the tenets of National Socialism, at least it's an ethos."

Yarvin is a deliberate, meticulous writer who prides himself on his
references. This is not a coincidence, this is a white supremacist laughing at
programmers not recognizing that he's calling competing software Nazis. Well,
I happen to be reading up on Yavin's buddies[0] and I understood that
reference[1].

[0]: [https://www.amazon.com/They-Thought-Were-Free-
Germans/dp/022...](https://www.amazon.com/They-Thought-Were-Free-
Germans/dp/0226511928) [1]:
[https://www.youtube.com/watch?v=YIp-0V6YKfQ](https://www.youtube.com/watch?v=YIp-0V6YKfQ)

He's laughing at you because he knows the technical and political are
inseparable, and the longer you think so the longer he gets to use you.

------
cocktailpeanuts
How is this different from many other approaches like Sandstorm, or any other
effort to "decentralize the web" by giving people their own servers?

I'm asking in terms of actual benefit it provides, not the technical part. I
think at this point it's pretty clear that these efforts have failed due to
lack of traction in that department (not enough people care about "owning
their own server" or "controlling their own destiny")

~~~
chc4
It provides an application framework and reinvention of the world to have
decentralized apps work, instead of just providing packaging apps like
Sandstorm.

Urbit has an identity system with limited space to prevent Sybil attacks. The
network pretends to expose exactly-once networking that Just Werks so that
apps don't have to worry about it. All apps are purely functional state
machines to make it easier to handle them and transparently upgrade them from
code updates. Sending RPC messages so your own apps I exactly the same as
sending them to remote hosts, the same with reading files, with peer discovery
happening for you by the kernel.

~~~
cocktailpeanuts
This doesn't answer my question. In fact, it's the opposite of what i asked. I
said:

> I'm asking in terms of actual benefit it provides, not the technical part. I
> think at this point it's pretty clear that these efforts have failed due to
> lack of traction in that department (not enough people care about "owning
> their own server" or "controlling their own destiny")

~~~
chc4
I'm not really sure what else to say, then. Can any project with similar ideas
answer anything other than "no, nothing different"? The idea for all the
different projects is to make self-hosting sufficiently easy and usable, just
different ways to come about it. You could ask the same thing about IPFS or
even Bitcoin, and the disregard it when you don't get a yes.

~~~
cocktailpeanuts
Bitcoin does have a use case--you can buy drugs with it. I'm not going to
judge whether this is moral or not, but the point is it's serving a previously
unmet need. There have been tons of attempts at cryptocurrency before Bitcoin,
but Bitcoin came and it just worked to serve this purpose. And it enabled
whole new type of transactions online. Currently it's definitely not
mainstream currency but at least it has a clear set of customers from which
they can expand.

Which means, it's not like Bitcoin invented a non existing demand. It already
existed, and Bitcoin came and served the previously unmet demand.

My question was whether this urbit technology is something like Bitcoin where
it serves a previously unmet (AND significant) demand. All previous attempts
at this approach failed NOT because the technology was bad but because not
enough people used them, which is different from Bitcoin.

~~~
yummyfajitas
Urbit is a network where you can, by default, trust the other party you're
communicating with. It does this by making identities hierarchically
controlled; if you behave badly, the rest of the network will blacklist you
and your master. Thus, your master has a strong incentive to police your
behavior.

tl;dr; it should be a spam free network.

Note that this is already a mechanism used in the public stock markets; your
broker polices your behavior because if you screw up, the broker is on the
hook for your losses, and the clearinghouse is on the line for the broker's
losses.

------
ThrowAway123543
A couple thoughts from an early backer who really, really wants Urbit to
succeed (and fears it won't):

1\. What is Urbit?

I'm not involved with it and don't speak for the devs, but this always comes
up, so I'll just explain in plain terms what I think Urbit is, or what I hope
it will grow up to be. Urbit is the server-app-container thing that would make
my non-techy Mom want to pay $5/mo for a hosted server instance.

Imagine if every man, woman and child had their own server. Nothing fancy,
just a cheap ECC instance or DigitalOcean droplet or something. What would
they do with them? Well, host a webserver I suppose, maybe a mail server,
maybe a Minecraft server, stuff like that, right? But, these would have to be
accessible to non-sysadmin types, so all of these server applications would
have to be easy-as-an-iphone to set up and administer. Right now, such apps
don't exist, because there's no market for them. But if the market were there,
millions of people with hosted servers just sitting around, you can imagine
how quickly they'd get made.

What about a social media? At a high level, every social media app is
essentially the same app - they let you upload a file to the cloud and they
let your friends access it and they show you ads. The differences between
Twitter and FB and Instagram and Snapchat are nothing more than differences in
how those three features are implemented. So why do they all use the cloud?
Because there aren't a million people with server space just sitting around on
which to host their IG pictures and FB arguments and Twitter profundities. But
if there were, a good self-hosted social media app would make a lot of sense
to build.

Urbit is intended to shortcut this chicken-and-egg problem by making a
container in which it is easy to build those things. My Mom can afford a
hosted server, but she has nothing to run there. If there were great things to
run there, like a Facebook with no ads and a webserver with no hassles, she
might rent one. Urbit is intended to be the thing in which those great apps
are easy to build.

2\. Why I want it

Those are all abstract reasons why something like urbit might succeed. As we
all know, the mark of a good startup is not whether you can explain why it
might succeed, it's whether there are users who want to use it _right now_.
Well, I do want to use it, but it's hard to explain why. I'll take a stab at
it.

If you're over 40, you may remember getting your first shell account. Wasn't
that the shit? You want to host some files for colleagues? Just make a
directory, chmod it to world-readable. You want to run a web server? Go ahead,
and don't worry about security, the only people that can see this are inside
your college/company. Want to see what Bill Smith is up to? finger bsmith.
Want to argue about politics? talk.politics. God, how simple things were!
Playing with Urbit feels like those days to me. It makes a handful of things,
like identifying users and sharing files between them, trivial. You could
probably write a Twitter clone in less than 1K LOC.

Or at least you could, if Urbit does everything it says it does. That's a big
if. Which brings me to...

3\. Isn't it really weird and fucked up?

Yes. _Oh yes_. It is incredibly eclectic, the fevered result of an insane
genius toiling away in obscurity on his dream project when he wasn't busy
writing interminable political screeds. It is an attempt to combine a bunch of
things (a ground-up OS, two new languages, and a novel networking
architecture) that might be too much for such a small team. The Hoon language
is weirder than you've heard. Some people swear it's great once you get used
to it, but the docs are sparse and I haven't invested the effort. And if you
do invest the effort, it could well be that it has non-obvious architectural
flaws that will doom it to be a buggy mess for all eternity. And on top of
that, the founder is primarily known for political rantings that are... well,
not racist _per se_ , but close enough to get Urbit boycotted by the sorts of
people who boycott obscure open source projects due to things in the founder's
blog.

But if it fails, I really hope someone builds something less weird that
accomplishes the same thing, because at the end of the day, I want it. I want
a cheapo server with a cheapo self-hosted Twitter clone and a cheapo self-
hosted FB clone, and I want to share pictures of my kids with my Mom without
running them through some enormous corporation's billion-dollar machine-
learning advertising algorithm, and I want to host my own website and server
apps without taking on "sysadmin" as a night job. And it seems like, right
now, Urbit is the fastest way from here to there.

~~~
theamk
Thank you for the comment. It is nice to be able to talk to someone who
believes in Urbit ideal. I have a question for you: there are many advantages
of running things on huge scale. How do you see Urbit will solve it? For
example:

\- webserver: I used to run a personal web server, and then I noticed that I
have to throttle the speed to avoid ending up with a huge bill, and when the
colo is down, the server is down. I keep all my data in the cloud now, and due
to economy of scale, I do not have to worry about availability, ping times, or
bandwidth limits. How can personal server compete with CDNs?

\- I also used to run my own mailserver, and it was always a pain to keep spam
away. This is a complex process which includes tuning spam filters, deciding
which DNS blacklists to use (oh controversy!), deciding if I want to use DCC
and at which stage. And I had to re-tune periodically, otherwise it would eat
my automated messages... At the same time, Google (for example) has it easy --
at their scale, they have all the information they need to decide if the mail
is spam or not.

\- Social media: no, I have not run my social media server :) But I cannot
understand how do you get started. The main point is network effects, and even
Disapora, which has been around for a long while, is not that popular. Plus
spam and viruses, of course -- how do you prevent that? If my friend gets a
trojan on her machine, will her account be able to spam entire network?

~~~
ThrowAway123543
Thanks for responding! Sadly the signal:noise ratio on HN really plummets when
urbit gets mentioned. Zaphar's response is good but I'll go in to more detail
(as I see it):

\- bandwidth : there's nothing in Urbit itself to address this, but one
presumes that if you host an urbit on EC2, you'd also be putting cloudflare in
front of its webserver. More generally, if Urbit got even moderate adoption,
the hosted-server companies would fall over themselves supporting it, because
it's a new customer base for them.

\- mail : Agreed, I would never want to run a mail server, on urbit or
anywhere else, due to how convoluted it is. However, Urbit uses a federated
addressing system that would make spam unprofitable. Read their page on
identities if you want details, but the short version is that full-fledged
identities on the Urbit network cost a couple of bucks, and it is assumed that
anyone who spammed from one would get blackholed before they recouped the
investment.

\- social : From a user's perspective, I think the big difference between
Diaspora and the-yet-to-be-made-facebook-clone-on-urbit is that the latter is
not the _only_ thing you can put on an urbit. It's unlikely that Urbitbook
would be so popular that anyone would run out to host an EC2 just to join it.
But Urbit is supposed to be useful in and of itself. And if it does take off
on its own merits, it seems very likely that a self-hosted social media clone
would be one of the popular apps.

\- viruses : Urbit is designed to be essentially impervious to malware. (Which
is not the same as saying it _is_ impervious - kind of depends on whether the
people who architected it are as good as they think they are. I'm not
qualified to weigh in on that.) In a worst-case scenario (say, your whole
urbit got bitlocker'd), recovering would require you to a) get your hosting
provider to restore from a backup, and b) notify your "galaxy" (your parent in
the distributed network architecture) that you have lost continuity, and
convince them that you are your urbit's rightful owner. That last bit would be
nontrivial (because this is exactly how someone would go about stealing your
identity) so it is assumed that the most galaxies would have stringent
requirements, or if Urbit is as stable and unhackable as its supposed to be,
not allow it at all.

~~~
tptacek
I don't think the acerbic swipe at HN here was merited; as threads about
programming environments go, this one seems pretty high-signal, with less
flamage than any of the recent large threads about Go or Rust.

If your expectation about threads for Urbit is that they center on its real-
world applications or potential, the project itself has done you no favors. It
doesn't so much beg as howl madly for the kind of meta discussion that
dominates this thread.

~~~
ThrowAway123543
That's a fair point, I was complaining about past Urbit threads, which
sometimes spend a lot more time on the founder's weird-but-irrelevant politics
than on the technical merits of the project. I expect and welcome flaming
about why it's built the way it's built! I would _so_ love a big deep thread
between the urbit devs and some really smart people who have deep misgivings
about its architecture, because the outcome of that would help me decide
whether it's worth investing time learning hoon.

~~~
tptacek
You say his politics are irrelevant. I disagree: the only person in the world
who probably has a complete picture of what this system is meant to be is
Yarvin, and there are troubling indications that his political principles
influence the design. See, for instance:

[http://web.archive.org/web/20131014210123/http://www.urbit.o...](http://web.archive.org/web/20131014210123/http://www.urbit.org/2013/08/22/Chapter-7-security.html)

But that's neither here nor there, because this thread hasn't really centered
on his odious politics, but rather on the dubiousness of its design and the
steps the team has taken to conceal the basic details of the design behind a
wall of obfuscation. We generally don't like distributed systems that go out
of their way to make themselves _harder_ to reason about.

I'd further add that a lot of basic support Urbit receives on places like HN
seems premised on the idea that there's something intrinsically novel about
it. But that's not so: overlay networks are a relatively well-trodden topic in
CS, including overlays based on what we used to call "mobile code", including
functional mobile code overlay networks.

I'd like to see more discussion of decentralized overlay networks, including
compute overlays, on HN. I find it unfortunate that all those discussions for
the past year or so have more or less been captured by this goofy system.

~~~
ThrowAway123543
_shrug_ As you like. If whoever wrote Jira revealed that the reason "stories"
and "bugs" and "epics" all have the same default fields was because he thinks
capitalism is better than socialism or what have you, I would entirely ignore
it, and I don't think I'd be any poorer for it.

I would also wish for more projects in this vein. If something came down the
pike with similar aims but minus the spooky political baggage and the
eccentric syntax, believe me, I'd subscribe to their newsletter. But AFAIK
there is nothing in the offing even remotely similar to urbit other than
urbit.

~~~
tptacek
That's because Jira is just a bug tracker. None of us need any assistance
understanding the implications of a bug tracker, even one as sprawling as
Jira.

------
newsat13
Someday I hope to understand what urbit actually is :-)

~~~
Avshalom
Urbit is a VM/library/io it runs programs, sometimes local, sometimes remote,
sometimes distributed.

It's Jboss.

If you want to be generous it's Inferno.

~~~
flukus
I never could work out what JBoss was meant to be either.

~~~
kazagistar
Lets go see what their website says. How bad can it be?

> Red Hat® JBoss® Middleware is a family of a lightweight, cloud-friendly,
> enterprise-grade products that help enterprises innovate faster, in a
> smarter way. The ideal middleware portfolio for open hybrid cloud
> environments, our products and services help you accelerate application
> development, deployment, and performance, integrate data and applications
> efficiently, and automate business processes across physical, virtual,
> mobile, and cloud environments.

Its bad.

------
foota
Is the idea behind urbit that you have one place that stores all your data and
then you can use different services to access and use that data in whatever
way they want?

~~~
danielvf
Correct-ish - you can run other people's applications against data you own to
get things done.

------
foota
Why did they go with 32 bit addresses for planets? Seems short sighted given
the woes of the ipv4 -> ipv6 transition.

~~~
rspeer
Artificial scarcity helps them make sure that only the "correct" people get
planets.

EDIT: You think I'm making a random political dig at Urbit that isn't borne
out by the actual system, don't you. No, I am making a political dig at Urbit
about something that is actually designed into the system. The design is about
ownership, and about how not everyone can have it.

~~~
ThrowAway123543
This is just grousing; If urbit got so popular that addresses were sparse, a
big if, planet owners would just vote to add more.

~~~
rspeer
Now you're faced with exactly what the GP said: address spaces are hard to
change later.

What part of Urbit involves voting?

Even if Urbit were a democracy, which sounds improbable, why would the people
who have the scarce thing vote to open it up to more people? Look at Bitcoin
right now: they can't increase the block size because large miners benefit
from the small block size.

~~~
ThrowAway123543
I shouldn't have said "planets". I think only the top 256 "galaxies" (owned by
the founders and investors) really get a vote. Maybe? That might not be right,
I don't remember the details.

But there are two other misconceptions to clarify.

First, the defense against "What if the people who run urbit turn out to be
jerks?" is not to have democratic voting. And it's not Bitcoin-style "51% of
us agree" forks either, urbit is a top-down hierarchy. The defense is that
Urbit is open source, and anyone could go out and start their own Urbit
network and ask people to join it.

Second, planets have (theoretical) value, but they're not fungible, they're
identities. A good analogy is: imagine if Reddit were designed to only have
2^32 handles, and they each cost a dollar. In that scenario, if Reddit said,
"Hey, we've sold all our handles, hooray! Now we're going to issue an update
that makes some more available", would existing Redditors lose anything?

~~~
rspeer
Why would they each cost a dollar when they're running out? How could you
possibly defeat economics like that? Scarce things are expensive.

The Redditors who are paying lots of money for the scarce handles, and the
people they are paying lots of money to (the feudal lords or whatever, I don't
know what to call people in this hypothetical Reddit/Urbit mashup), would
_absolutely_ lose out if more became available. They would be like taxi
medallions, or houses. Urbit itself makes the analogy to real estate, and real
estate owners do not have the tendency to say "yay, more neighbors!"

And I don't need to fork Urbit given the people who run it are jerks; I can
just run my own normal Linux server, which runs reasonable well-designed
programming languages, and can subtract in constant time.

~~~
ThrowAway123543
> Why would they each cost a dollar when they're running out? How could you
> possibly defeat economics like that? Scarce things are expensive.

The "urbit is land" analogy is, like any analogy, only so useful; don't carry
it so far that it breaks. Urbit addresses are numbers, and numbers aren't
scarce. They're only limited by convention, and conventions can change.

I think the devs like to trot out that "land" analogy for BTC users, to help
illustrate that urbit addresses aren't fungible, but it only holds if you
imagine that land in this scenario can be created out of thin air by the king
when he feels like the kingdom is getting crowded, and if polluting your land
makes other landowners pretend your land doesn't exist, and if used land on
the secondary market is all presumed to be polluted.

------
pcmoore
For those using Nock and seeking an alternative take on Urbit check out this
open source project
[https://github.com/tibru/tibru](https://github.com/tibru/tibru) A few willing
devs could take this forward with open libertarian ideals. There is nothing
special about Nock and Urbit technically or mathematically.

------
chriswarbo
I find Urbit very confusing. It uses a bespoke virtual machine for a bespoke
programming language, uses a bespoke approach to optimisation, uses another
bespoke programming language which compiles down to the first, has a bespoke
OS written in that second language, connects these OSes into a bespoke p2p
network, all in order to.... what?

Their go-to example seems to be social networking with an interface to
Twitter??

I _absolutely_ get the 'own your data/compute' idea.

I think a bespoke OS is a decent approach, as it removes a lot of legacy
complexity and allows a few carefully-chosen, simple, unified approaches to
things like I/O and addressing.

I like the use of a functional language, as it's an extreme form of
isolation/sandboxing/reproducibility which makes sense in an untrusted online
world. I don't see why a new language was invented though, when something like
a subset of Scheme, Joy, plain lambda calculus, etc. would suffice.

I have absolutely no idea why they've invented a custom p2p network/addressing
system. I chalk this up to huris, along with their spiel about ASCII
punctuation, etc.

I have absolutely no idea how this has anything to do with social media. I
assume it's just for buzzword value. I don't use social media, but I imagine
programming language theory isn't its main appeal?

Even if we assume that all of Urbit's ideas pan out: interacting with Twitter
seems to _completely undermine_ all of it!

\- Twitter is centralised, whilst the point of Urbit's network is
decentralisation.

\- No matter how much elaborate language machinery you build, there's very
little you can actually _do_ with Twitter, since they keep their database
secret.

\- Despite all of the sandboxing, reproducibility, etc. Twitter will not
execute any code that you try to send them. The only operations which can be
performed are chosen by them, and exposed as API endpoints.

\- Doing anything with Twitter throws purity out of the window, since they
only interact via I/O requests.

\- No amount of fanciness in OS interfaces or language semantics can do
anything to prevent Twitter modifying/deleting/overwriting/etc. any of their
data at any time, without any notification to anyone; hence there are very few
guarantees that the OS or language can actually provide about such values
(e.g. there's no referential transparency, no way to know if a cache is
invalid, no way to know if someone else will receive the same data you did,
etc.).

\- Whatever the resulting API looks like, it will be a constant source of
incompatibility and churn, since Twitter are free to modify their API at any
time. If some operation gets dropped, any applications which rely on it may
break irreparably.

I get that the Twitter example seems to be along the lines of a minimum viable
product, but it seems like a bad choice considering that it can't really make
use of any of Urbit's features. It could be implemented as a big string of
Javascript, with Urbit only being used to get it into the browser; the result
would be about as integrated as any other approach.

A more relevant example might be a multiplayer game with a shared leaderboard,
player chat and non-critical use of external APIs (e.g. gravatar for player
pics), e.g. a clone of Words With Friends or maybe something with more
animation.

The game itself would be a decent test of the programming languages, rather
than just shuttling strings in/out of Twitter. The interactivity and chat
would test the latency. The leaderboard would test shared access to data.
Using external APIs would test the data-shuttling, in a way that doesn't much
affect the application if the provider shuts down the API.

~~~
ThrowAway123543
Interesting thoughts. I'll just weigh in on the ones I feel confident
answering:

> I have absolutely no idea why they've invented a custom p2p
> network/addressing system.

Part of what Urbit does is make it easy to identify people and exchange
messages with them, so it has to have a built-in idea of what identity means
and how to tell who someone is. If it didn't have its own identities, each
application would have to do that itself, which is where we are today.

> I have absolutely no idea how this has anything to do with social media.

It's just a use case that everyone's familiar with which illustrates something
that urbit makes easy to do. But I think the hope is that "Hosting
continuously available cryptographically identified server apps is easy now,
what shall we do with that?" would spawn genuinely new niches, in the same way
that mobile phones have.

> Even if we assume that all of Urbit's ideas pan out: interacting with
> Twitter seems to completely undermine all of it!

I think the idea is that you'd have some app on urbit that sits between you
and your social media. So, when you take a picture of your kid and want to
share it, you'd use an app within urbit that would (say) post it to twitter,
put it on facebook but only for "family", and store a copy in the "backed up
monthly by the hosting provider" folder. As social media apps come and go, you
could use them while they're useful and abandon them when you tire of them,
without having to export or import things.

------
zekevermillion
Needs a GUI to be useful for any non-enthusiast users. Does urbit need any
non-enthusiast users at this point, though?

~~~
fche
There is a well-integrated web api/interface to the shell-based services.

------
crsmithdev
An interesting idea confounded by inexplicably strange design choices, and the
regressive, odious politics of its creator.

Would love to see a similar idea done by a different team.

~~~
to3m
Poor old Urbit! Learning curve so steep that nobody has the time to figure out
that it's bollocks on its own terms, and they are obliged to dismiss it purely
on the grounds of who it was created by.

~~~
Apocryphon
What makes it bollocks on its own terms?

~~~
monodeldiablo
Urbit is totally new to me, but from what I understand, the hierarchical
identity layout and restricted address space are instant red flags for any
distributed system. Oh, and the founders assert ownership over a non-trivial
block of addresses.

Looking in from the outside, this looks like a fairly transparent attempt at
bootstrapping a fiefdom: Create a type of digital "property", artificially
restrict supply, reserve a huge chunk for yourself, and hope it becomes
popular (making you "digital rich" and "digital powerful").

~~~
dragonwriter
The funny thing is that, after dismissing criticism based on the creator and
his politics, you just made a technical criticism that is basically reaches
the exact same co conclusions about its intent and effects as are frequently
made by those reasoning from the author's publicly stated political views
(including those directly attached to Urbit docs before those were cleansed to
make the product more commercially viable.)

Which is not to say you are wrong to prefer technical criticism, only that in
this case the telegraphed political intent seems to match precisely the
technical criticism.

~~~
Apocryphon
Not speaking for the parent comment, but maybe the two aren't so inseparable
after all. I would rather not immediately dismiss this project, since there
are multiple contributors to it and it seems cruel to bash their hard work
just because of Yarvin's presence. However, it seems like there definitely is
a similarity between the product of the man and his ideology- especially the
same inscrutable, esoteric, unconventional nature.

