
Urbit is now in open developer beta - jonasrosland
https://urbit.org/
======
aaron-lebo
This might be the most revolutionary technology in the world, but I really
have no idea because your landing page is full of the vaguest most utopian
promises. You might say, well, you should go read the "technical docs", but
have read about so many hyped techonologies that came to nothing at this point
that I am incredibly skeptical.

If you can't tell me what you are doing in a single paragraph, then you've got
a problem. If you can, why doesn't your homepage reflect that? Show me! I
don't want to scroll through another website with 16 point font.

We all love the Unix philosophy and puppies, too.

Please take this as the constructive criticism it is.

~~~
kovrik
Agree. Feels like it was written by someone with schizophasia.

Like:
[https://urbit.org/docs/hoon/advanced/](https://urbit.org/docs/hoon/advanced/)

What are they talking about? Dry/wet arms? Batteries? Metal cores? Bridges?
Gates? Superpowers?

For me it looks like they've just replaced common concepts with random "cool"
words, deliberately obfuscated the syntax and try to sell it as an innovation.

~~~
kovrik
Also, I doubt they could handle it, their scope is huge: new OS, new
programming language, networking, encryption, time, compilation,
virtualization etc. I don't believe group of 5 unknown people can handle it.

Like, Urbit time:
[https://urbit.org/docs/hoon/library/3c/](https://urbit.org/docs/hoon/library/3c/)

Where the hell are timezones, Leap seconds etc.? They just store constants!

~~~
Sanddancer
Not only that, they are incorrect constants. The definition for :cet, for
example, is only correct for non-leap centuries. 2000-2099 has an extra day
compared to 1900-1999, or its partner :qad, which has the opposite problem and
assumes any 4-year span has a leap year.

Of course, the language has other problems too, like 'moar' being used as a
serious part of the language's grammar, or worse, more nebulous verbs like
'snag', which makes the language even more difficult to understand for non-
native english speakers. It's just an utter mess.

~~~
cronjobber
> difficult to understand for non-native english speakers

Au contraire! They managed to almost eliminate any advantage that programmers
who speak english usually enjoy.

~~~
wolfgke
> Au contraire! They managed to almost eliminate any advantage that
> programmers who speak english usually enjoy.

What are those advantages?

When I was young and my English was really bad, I simply learned the keywords
just as mathematical terms (i.e. if, else, for, while, break, next, goto,
gosub, signed, class etc.) - I mean, they aren't that many (say 40 and you've
covered most mainstream programming languages that aren't really verbose (OK,
COBOL is an exception, but who uses COBOL ;-) ). This really isn't much harder
than learning mathematical terms as sin, log, cos, exp, cot, asec etc. even if
you know no word of English.

What really makes programming hard when you are not sufficiently fluent in
English is that lots of documentation is only available in English (this was
the main problem I had). And I don't see how Urbit is going to change that.

~~~
chris_st
> documentation is only available in English

As a native english speaker, I'd like to politely disagree with this phrase!
(and that was the GP's joke... since they're using so many made-up terms, it
effectively isn't english).

------
tree_of_item
Urbit is purposefully obfuscated. If you don't believe me, just take a look at
the docs:

[https://urbit.org/docs/hoon/advanced/](https://urbit.org/docs/hoon/advanced/)

There is no reason to gensym all of your concepts like this. It is different
just for the purpose of being different: apparently you can't sell people on a
"revolutionary technology" without _appearing_ to be extremely different.

Nock is also not a good virtual machine. Recognizing blessed sequences of
bytecode and replacing them with opaque blobs of code is not a valid approach
to optimization. No one can actually run a pure Nock VM, so what is the point
of having Nock in the first place?

Someone else on HN gave the best summary of Urbit I've seen yet: an elaborate
cup and ball game, meant to give the impression of innovation and technical
excellence.

~~~
Camillo
There is what amounts to a direct claim of purposeful obfuscation here:
[https://github.com/cgyarvin/urbit/blob/master/doc/book/1-noc...](https://github.com/cgyarvin/urbit/blob/master/doc/book/1-nock.markdown)

> We should note that in Nock and Hoon, 0 (pronounced "yes") is true, and 1
> ("no") is false. Why? It's fresh, it's different, it's new. And it's
> annoying. And it keeps you on your toes. And it's also just intuitively
> right.

~~~
emmelaich
Focus on the intuitively right. I think it makes sense for 0 to yes/true.
Think of the Unix exit codes, and golang returns. No news is good (yes/true)
news.

edit: as to the "annoying" that's just Yarvin being cheeky. I really don't
think it is too serious.

~~~
kazinator
Zero is good for "absence of failure". It's a "yes" in the sense that "this
worked". Whereas any one of the myriad non-zero codes is "no, it didn't work".

If we have a situation in which there are many numeric codes, exactly one of
which means "success", it's probably best if that one is assigned zero.

~~~
lisper
Except that Curtis strongly (and snarkily) claims that Hoon is a typed
language:

[https://news.ycombinator.com/item?id=11819810](https://news.ycombinator.com/item?id=11819810)
item #3 (and subsequent discussion)

So why are they punning integers and booleans in the first place?

~~~
kazinator
Punning means that we have two types, and we somehow interchange them; use an
object of type A, as if it were of type B. We thereby leave behind the type
system and take responsibility for that being correct.

If a language doesn't have a Boolean type, and some other type serves for
indicating truth/falsehood, then that is a representational technique distinct
from punning.

A language with no Boolean type can be statically typed. It just means that
the conditional operators work with some non-Boolean, like integer, yet
according to well-understood rules. For instance if we have some "if expr foo
bar" such that either foo or bar is evaluated based on whether or not expr is
zero. This would be statically well-typed if expr has integer type and foo and
bar have the same type.

Of course, we can't do pattern-matching whereby a value is classified as
Boolean or integer in separate cases. (Unless we use the language's type
construction ability to define a Boolean type which wraps integer, or
whatever).

~~~
lisper
I don't want to quibble over terminology, so fine: Hoon doesn't pun integers
and booleans, it conflates them. Whatever you call it, it's still a horrible
hack, and IMHO if you put in your language you surrender your snark privileges
when comparing your language to Lisp.

~~~
kazinator
Common Lisp conflates _all_ types with Boolean. NIL, the sole instance of the
NULL type in Common Lisp, is false, and an instance of every other type is
true. (Of course, this situation quite good).

~~~
lisper
> Common Lisp conflates all types with Boolean

Yes, I know.

> (Of course, this situation quite good).

I think that's debatable. Javascript, for example, does something similar but
it takes all empty containers as false, along with zero and a few other
things. (Not that I am necessarily holding up Javascript as an example of good
language design. My point here is just that there is not a consensus on how
(or whether -- c.f. Scheme) to conflate booleans with other types.)

The salient differences between CL's boolean conflation and Hoon's are:

1\. CL's conflation design is justifiable in terms of how it simplifies coding
recursion over a list, which is the single most important Lisp coding idiom.

2\. Hoon tries to justify using zero as true by saying that non-zero integers
can carry information about the nature of a failure. (At least I've heard some
people try to justify it in this way. I'm not sure if Curtis does not not.)
But now you are no longer conflating integers with booleans, you are
conflating integers with multiple enum types, one for every possible set of
failure types. Flouting convention is one thing. Flouting convention in order
to enable conflation of integers and enums undermines Hoon's claim of being
strongly statically typed (at least in any interesting way).

~~~
kazinator
CL's conflation also means that can use NIL to indicate the absence of an
object (in the usual situation in which NIL isn't a valid value). We can test
for this absence glibly, using a conditional. This is at least as useful as
the benefits in list recursion.

The Javascript design means that we cannot test for the absence of an integer
in this manner, because a negative result could mean that a zero is present.

It could be handy from time to time. I propose a NAUGHT function for Lisp
which returns true for empty sequences, empty hashes, zero (integer, real or
complex) and any other nothing you can think of.

~~~
lisper
Sure, but if you want to make that argument then you have to deal with the
fact that there is no false value which indicates the "absence of an object"
in the case where the value being tested is a list. Having multiple false
values really can be a feature. (They just shouldn't be _integers_!)

------
Animats
I dunno. This thing is weird, but they put a lot of work into it, and you can
download something that runs.

What they want to build, from the user perspective, seems to be a federated
social network. Like Diaspora, only with some of the problems solved. The two
big user-level problems they claim to solve are 1) spam, and 2) being tied to
a service provider.

The solution to 1) is that you have to buy an identity from someone. You can't
create identities for free. This is a profit center for someone, although I'm
not clear whom. Not clear how much a personal identity costs, but there are
only 2^32 of them.

The solution to 2) is that you can pick up your ball and go home - take the
entire state of your online presence and move it to another server. The
routing gets fixed somehow. Sort of like cell phone number portability.

Those are both good features. Right now, they apparently power only an online
chat system and the ability to host web pages driven by programs in their
language. Somebody could potentially build a Facebook-like system on top of
that.

The terminology and the cult-like aspects are seriously annoying. It reminds
me of Xanadu and its team. (I knew that crowd. Mostly extreme libertarians.
Everything is pay per view in Xanadu.)

I wonder if this could be used as a lightweight container system for server-
side web applications. It has a container system, and those containers can
serve web pages and talk to other containers. Unlike, say, Docker, you don't
have to lug around a whole Linux environment in your container. Being able to
move your container to a new hosting service very quickly would force hosting
services to be competitive.

~~~
wmf
_I wonder if this could be used as a lightweight container system for server-
side web applications. It has a container system, and those containers can
serve web pages and talk to other containers. Unlike, say, Docker, you don 't
have to lug around a whole Linux environment in your container. Being able to
move your container to a new hosting service very quickly would force hosting
services to be competitive._

Yeah, Sandstorm is pretty cool. :-)

------
bordercases
I'm not entirely sure I buy the arguments that "made-up words" are a bad
thing. All words were made up at some point. And the English language on the
surface seems extremely redundant in its vocabulary, but each element of a
cluster of words can contain separate nuance, so we keep them around. Perhaps
this doesn't have a place in computing, but perhaps it does. Consider, for
example, the most jargon-y field of mathematics of all, category theory:

[https://ncatlab.org/nlab/show/computational+trinitarianism](https://ncatlab.org/nlab/show/computational+trinitarianism)

Proofs = Types = Categories; all related, all translatable in terms of one
another, yet all different. New words in a technical vocabulary let you be
both concise but also on occasion familiar.

I find arguments about obfuscation maybe a bit more credible. It's hard to
say. I'll venture that getting people to pay attention to your ideas by
throwing you off of previous convention could potentially work, but time will
tell.

~~~
johncolanduoni
> Proofs = Types = Categories; all related, all translatable in terms of one
> another, yet all different.

Proofs = Some Types and Type Theories = Some Categories, so I think even taken
as an attempt to paint the situation in broad strokes what you wrote is at
best misleading. Many (commonly studied) categories and classes thereof are
not interpretable as type theories, and type theories contain plenty of terms
that would not be typically interpreted as proofs.

Also, even in category theory, papers and books take quite a bit of care to be
clear when they introduce a new term. Urbit's documentation looks like it took
every conceivable opportunity to invent new words for things where we already
have words. The complaint is not about made-up words per se, but scores of
_unnecessary_ made-up words. It's like they expect to trademark the name of
every little internal concept inside Urbit.

~~~
bordercases
Although that's a benefit I didn't think of, my charitable interpretation is
that it allows for the use of terms that plug in to a social setting. Of
course this all derives from Moldbug's political philosophy. It's technology
that's engineered for a certain set of behaviors based on his framework.

The terms put the technology in the context of the philosophy, giving hints as
to how it solves the problems within it. I can see why that would turn some
people off, but for its purpose I believe it's effective. It grounds
previously ephermal concepts in metaphors that are tight, like land = server +
addressing space or code = law. A lack of good metaphors (rather than an
abundance of poor ones, as is the state of things) may be a part of the reason
we've become so disoriented with how we handle privacy. When you think of
privacy issues as, "my identifying documents are on someone else's land",
suddenly it becomes more clear as to what the problem is. By contrast "The
Cloud" is a shit metaphor: the cloud is just someone else's computer. It isn't
public, universal, or neutral, like real clouds are. And where in the cloud is
there a network?

If one were to derive Unix in terms of, say, the operations of an anarchist
society, as opposed to problems that are mostly mundane or technical, I would
be saying the same thing. Arguably the last time this happened was during the
Mother of All Demos with Doug Engelbart's models of the knowledge economy.
Since then we've either been footnotes to Xerox PARC's visions, or have been
otherwise haphazard.

As for the Proof/Type/Category equivalences, you're right, they're only
equivalent for some structures in all three theories. So they're only
equivalent up to locally closed cartesian categories, or wherever. But moving
between those three perspectives even under this constraint still leaves you
with distinctions, like syntax vs semantics. So in that sense they maintain
the notion that different views lead to different nuances even if they cluster
around the same space.

------
MaysonL
It's a cult creation technology: anyone who expends enough effort to launch a
ship will have convinced themself that this is really cool, and that they are
very much smarter than the average bear.

~~~
yebyen
Actually, it's very easy to just launch a ship, if you're not up for compiling
stuff.

`docker run -i -t --name ship-container yebyen/urbinit`

This is not a part of the Urbit project, but something that I maintain. I
think there's a reference to this method of installing somewhere in the
official setup docs.

[http://github.com/yebyen/urbinit](http://github.com/yebyen/urbinit)

If you don't like docker, there's also a set of instructions for building Deb
packages that are somewhat less clear. (Sorry, I'm not doing this for my day
job...)

NB: at the time of this post, I took a bite of my own dogfood and saw that I
could not reach ~zod, the network's leader. It is possible that it is swamped
by HN visitors, or also possible that there is something wrong with my local
network, or something wrong with my docker which is a few versions behind
tip...

Not sure... would be great if someone else can take a look, I'm on the clock.

------
pbnjay
From a purely academic standpoint, I find this project and it's goals
intriguing... And I'd be interested in playing around with the environment, if
only it weren't for the "Hoon" language. I'm fine dusting off lisp, or erlang,
or any of the myriad imperative languages I know to play around, but I have no
desire to learn an esoteric language that only works in one esoteric system!
If someone ever makes a cross-compiler from a sane language let me know!

------
avip
>We should note that in Nock and Hoon, 0 (pronounced "yes") is true, and 1
("no") is false. Why? It's fresh, it's different, it's new. And it's annoying.
And it keeps you on your toes. And it's also just intuitively right.

This kind of sums up the approach taken here. I'm out. I'm too dumb for this
project.

~~~
sigusr1
He said in his recent talk about urbit if he were doing it over he probably
wouldn't have done that.

~~~
davidgerard
The current urbit.org documentation has been _considerably_ bowdlerised from
the originals, which were 200-proof Moldbug, so strong it crawls up the side
of the glass.

------
arsalanb
I met with the founders of Urbit over Dinner a few years back, part of a
community meetup at the Thiel Fellowship Finalists Round in 2014 (yeah, bring
out the pitchforks) and they seemed like pretty amazing guys.

What I don't understand, however, is the need to romanticize software. There's
too much magic in this. I get the feel that this is something very important,
but I don't understand what it is. Anyhow, best of luck to the team!

------
inaseer
I'm reserving my judgement on the system. Just sharing a few videos which
might help in understanding Urbit better. Start with this LamdaConf talk:
[https://www.youtube.com/watch?v=I94qbWBGsDs](https://www.youtube.com/watch?v=I94qbWBGsDs)
and pair with this demo video after:
[https://www.youtube.com/watch?v=Tp9aCEfA6ao](https://www.youtube.com/watch?v=Tp9aCEfA6ao)

~~~
dingaling
Thank you, that second video was very instructive. If people want to see Urbit
working, jump to around the two-minute mark and there's a demo of networked
program execution as well as distributed version control.

------
sesteel
I want to like this, but I feel like they are trying to solve too many things
at once. Which is just another kind of problem. New CLI, new language...

[https://urbit.org/docs/hoon/syntax/](https://urbit.org/docs/hoon/syntax/)

------
PostOnce
All I got from this is "we want to sell you a domain name that is unrecognized
by all existing software and infrastructure, please give us money"

If I wanna join a cyber-utopian hacker-hippie commune, I'm not going to pay a
cult to do so. Especially not an inarticulate cult. I'll build it myself? It
sure doesn't sound understandable to regular people if the HN crowd doesn't
know what they're talking about.

------
sumitgt
Wow, before I read the HN comments, I felt really dumb for not understanding a
word of what that page meant.

I thought it was one of those strange things all the cool kids are into these
days whose appeal I cannot understand or explain.

~~~
fallenshell
Same. I didn't understand a single word in there, because there is nothing to
look at there.

------
imron
> An Urbit identity, or "ship," .... is actually just a 32-bit number, like an
> IP address

32-bits huh? That's brave.

~~~
randallsquared
They are intentionally scarce.

~~~
zamalek
> By keeping addresses scarce, we make spam and abuse expensive

The entire population of earth wouldn't be able to sign up. Just over half
could. What happens in 50 years when all of those 4.2 billion people are dead?
Does the entire infrastructure die along with those who were "lucky" enough to
win the lottery?

~~~
dingaling
> The entire population of earth wouldn't be able to sign up

They also have freely-available 128-bit identities, called 'submarines', that
can be created on whim.

The 32-bit identities are 'destroyers', both being subsets of 'ships'.

Like everything else associated with Urbit, it's back-to-front. Real-world
destroyers hugely out-number submarines.

~~~
knubie
They've changed the nomenclature since then. submarines -> comets, destroyers
-> planet. along with 64 bit moons, 16 bit stars, and 8 bit galaxies.

------
VLM
A good summary of some unhappy comments is that its an experimental reboot of
a vast new system. Most of the people who are unhappy went into it expecting
something very small like "uber for the jvm" or "the twitter of functional
programming" or similar.

Progress in IT / CS has dramatically slowed over my life. Urbit feels much
like 80s home computing, where forklift upgrades of everything you know was
"normal" in the extremely rapid transition from Altair CP/M to an Amiga to a
SunOS box or whatever path. Nothing is new in the last 20 years, at least
compared to the incredibly rapid pace of change in the first 10 years I was
into computers. I'm just saying that however unthinkable a forklift upgrade is
culturally in 2016, in 1986 it was considered to be "great fun" not a problem
or a downside.

------
state
People may also be interested in the LambdaConf talk from a few weeks ago:
[https://www.youtube.com/watch?v=rkZ3GkeU9kg](https://www.youtube.com/watch?v=rkZ3GkeU9kg)

------
adrusi
I haven't read the whitepaper, but from what I've gathered, urbit is a virtual
machine that runs on a network, maybe with support for untrusted nodes? If
that's the case then that's amazing, and it's understandable how esoteric it
all seems. But that's quite an extraordinary development and I'm skeptical.

It would be nice if they would give a clear description of what is they've
made. Does this enable running a server jointly with a partner you don't
trust, with neither party having physical access, and without involving any
third party?

------
bjorndmitri
This has a strong "Shinichi Mochizuki's proof of the ABC conjecture" vibe to
me.

------
galistoca
Wow it's amazing how this post became #1 on front page, just based on
criticism, no sarcasm. I guess it is true that all press is good press.

------
kondro
I'm very confused.

~~~
akhilcacharya
It's a very interesting idea at its core implemented by a man seemingly high
on his own sense of intelligence that has some very reactionary views.

I'd love to see another project like this that doesn't talk down to its user
base and doesn't use a strange language or unreadable source code.

------
asimuvPR
The scope of the project is big. It mentions gmail, ifft and others. The api
integrations for the third parties is measured in terms of years due to
breaking changes and sheer amount of work. How is the urbit team managing
that?

------
DoubleMalt
If you prefer a more down to earth approach, check out
[https://cloudfleet.io](https://cloudfleet.io)

------
_m19m
Just a reminder, you can learn more about the folks behind Urbit, their
objections to democracy, women's suffrage, and general agenda at
[http://thebaffler.com/blog/mouthbreathing-
machiavellis](http://thebaffler.com/blog/mouthbreathing-machiavellis)

~~~
defen
So if you were around in the 50s, would you have argued against using
transistors because Bill Shockley was a racist and eugenicist?

~~~
notthemessiah
Transistors aren't a technology for eugenics. Urbit is a technology for
neocameralism.

------
zekevermillion
I will be interested to see how the address space crowdsale is set up. Any
hints?

------
drcreed
I only get a white page. Why does this site require Javascript to run?

------
panic
_Urbit is a republic. Its government has one task: promoting, preserving and
protecting Urbit. It may take any legal action which advances this goal._

That sounds a bit scary!

~~~
gaze
I think if people read Curtis's writing under Mencius Moldbug, nobody would
touch urbit with a ten foot pole.

He believes that white people are genetically endowed with a higher IQ than
black people.

Why are people giving him money? This is why we can't have nice things.

~~~
hodwik2
I do not believe IQ is heritable -- racially, _or otherwise_. Full stop.

Intelligence is, by my estimation, entirely a function of nurture, not nature.
Those exceptions are in situations where it is _lacking_ due to handicap.

Which is to say, everyone's brain has the same chance at brilliance (barring
fetal alcohol syndrome, neglect, etc.) if they are not intellectually
handicapped, and are provided the same child-rearing and temperament.

But, if you believed IQ to be heritable, as many of you do, it would seem a
fair guess that it would be distributed unequally among races, as is height,
hormone levels, muscularity, and so on.

I don't believe this, as I don't believe IQ is heritable, but I don't see how
one could possibly buy into the heritability of IQ while vehemently denying
that it could be spread unevenly among races. You guys, to me, all seem to be
grappling with two wildly incompatible ideas -- that race can't effect
intelligence, and that intelligence is heritable.

You'll need to choose which it is.

I'm happy, even having read his (wrong) ideas on IQ, to entertain Urbit
because he seems no more wrong than the rest of you. Cheers.

~~~
Throwaway585250
Heritability of traits can be measured by twin studies. Some people have spent
quite a lot of time doing this for IQ. Others have even identified some of the
genes that are correlated with high IQ, TOR1A being one of the more
interesting ones. I'd be interested to hear your thoughts on this area of
research.

Regarding population genetics, I don't think it matters as much as people seem
to think. Han Chinese are short, but Yao Ming is tall, and there's no
contradiction in that.

Regarding Urbit, I certainly hope that it isn't heritable, or for that matter
infectious, because it seems totally opaque.

~~~
hodwik2
>"Heritability of traits can be measured by twin studies."

No, correlations between traits can be measured in twin studies, but they do
not prove a causal link.

In the realm of intelligence, it could be (and I would argue) that looking
like a nerd generally proceeds becoming one. People become social outcasts,
and _then_ become intelligent as a defense mechanism. That is,once in that
nerd social caste, a greater percentage of people will find themselves using
their brains more often. As a result, they get smarter, and score better on IQ
tests.

Because twins are liable to look the same way, have the same temperament, same
physique, etc. they are liable to be pushed into the same sorts of social
groups, and as a result the same sorts of interests, ultimately pushing their
IQs up or down together.

This would not mean that IQ is heritable, but that traits which can have a
forcing effect on nurture (and thus IQ) are heritable.

~~~
Throwaway585250
How about torsion dystonia? Increased IQ can be observed before the onset of
the disease, even when matched to comparable members of the same population.

What evidence would falsify your position?

~~~
hodwik2
A few things on torsio dystonia.

One, Torsion Dystonia could just as easily be effecting something else which
effects IQ.

Two, the studies on Torsion Dystonia decided to only study people who were not
showing symptoms. This means they were _selecting around heredity_ , since
those who show symptoms and those who don't were not divided on gene
expression -- there is only one allele in play as far as we know.

Three, the study was 14 persons. Removing a single person from the sample
could have swung the data to say the opposite.

~~~
bordercases
Point 3 is weak without a quote of the variance or other such notions of
spread.

