Hacker News new | past | comments | ask | show | jobs | submit login
Crash course in Nock (2013) (github.com/cgyarvin)
17 points by networked on Jan 9, 2016 | hide | past | favorite | 9 comments



The public Urbit documentation page: http://urbit.org/docs

The current version of the Original Poster's Nock doc link: https://github.com/urbit/urbit/blob/master/urb/zod/pub/docs/...


For anyone interested, the current repo is here: https://github.com/urbit/urbit.


I think a lot of the UrBit ideas are good, but the documentation and naming schemes leave a lot to be desired.


It's too bad, whatever good ideas there might be in Urbit, the conversation is always going to be dominated by discussion about how the equal sign is renamed 'tis', etc.


Part of the problem is that if there are good ideas to be found in Urbit they could be proposed on their own but they're not, and that's because it's a totalizing system: the authors want you to accept all of Urbit before you can benefit from one idea of Urbit. Urbit's central thesis is this: The fact that Google, Twitter, and Facebook control the modern internet is proof that literally everything about computing from the way network addresses are resolved to the execution model to the silicon to what we call the fucking equals sign, is deeply, fatally, irredeemably flawed and must be completely thrown out and reinvented. You want to do Urbit, you have to pretty much get on board with that, which a lot of hackers for justifiable reasons are hesitant to accept.


From the Urbit whitepaper:

"Besides cosmetic details like character sets, this exercise should yield the same results on Mars as Earth."

My personal opinion is that if you believe that you need to re-invent everything (and that part might be true), you have a hard enough problem that time spent on "Martian" details (like the equals sign) both detracts from more important problems and alienates potential outside help.


Urbit has no shortage of true believers who will insist that, in practice, Hoon -- and Urbit's alarmingly weird verbiage in general -- is very easy and pleasant to use and not at all strange, despite it being as penetrable to hackers outside the project as, say, the rantings of a Sea Org member. In fact I think a major portion of the purpose of the project is to produce a vanguard of true believers who buy into the whole vision thing, and then go spread try-it-you'll-like-it propaganda on sites like this to recruit yet more true believers, etc.

As evidence I submit that a gentleman put up a significant bounty to implement a simple game in Urbit[0]. There were no takers.

When you consider chunks of Urbit's completely reinvented network space are for sale for real cash money, it gives you a glimpse as to the rest of the project's purpose.

Urbit is the brainchild of a blogger who is prone to lead his readers on lengthy circumlocutions only to tie them up into conclusions about political systems -- if indeed they be conclusions at all -- which are not only old ideas but some of them really bad ideas which humans have tried before and proven to be really bad. While the ideas underpinning Urbit may not align with Moldbug's politics -- Urbit's design and rationale follows his methodology. The funny weird names not only for symbols but for common OS concepts like files, network endpoints, and closures, are a part of an elaborate cup-and-ball game intended to convince the unwary of the intelligence of Urbit's creators and the innovativeness of the system itself, despite evidence that it basically consists of idiosyncratic implementations of well-known computer science concepts, with possibly ulterior motives.

[0] http://trilema.com/2013/so-this-urbit-thing/


Speaking as someone who's been following the project for a few years and once actually bothered to learn Hoon, your first paragraph is probably the best criticism of Urbit I've seen. I do think there is an interesting system buried under all the obfuscation, but the uncritical groupthink within its user base is obnoxious. I kind of doubt "produce a vanguard of true believers" is a primary goal of the project, but Yarvin doesn't really seem to discourage that behavior either.

That said, the old "it's just typical Moldbug" trope isn't much better than the propaganda his followers spout, and the rest is pretty weak too. AFAIK, the Urbit term for "file" is "file". I don't know which funny weird name you're thinking of for "network endpoint", as that's not really a separate concept in the system. Hoon's cores (which I assume you're at least passingly familiar with) are pretty distinct from closures in any language I know... I mean, do you also complain that Java uses the word "object"? (Forgive me if I omit the part where I ascribe sinister motives to the creators of Java due to their choice of vocabulary.)

As for "implementations of well-known computer science concepts", cue Rich Hickey[1]:

> It's interesting, because Clojure provides almost nothing you can’t find somewhere else. But I do think it occupies an otherwise empty spot in the multidimensional space of language features and capabilities.

In other words, even if your claim is true, it describes almost every project in computing in the last 15 years. We might as well say "oh it's just event sourcing" and call it a day.

[1]: http://codequarterly.com/2011/rich-hickey/


Funny you should mention Clojure -- a language that I found to not bestow any appreciable performance, abstraction, or usability advantage compared to a halfway decent Scheme-on-Java such as Kawa, yet still be different enough to be annoying.

If you like Clojure, don't let me stop you. But I've shipped servlets written in Scheme that did millions of dollars in business... forgive me if I personally am a bit slow to accept that Rich Hickey has brought us fire from the gods.

In other words, even if your claim is true, it describes almost every project in computing in the last 15 years.

Now you see why when tickets go on sale for the next language, framework, or OS hypetrain, I'm quite reluctant to buy.

That said, the old "it's just typical Moldbug" trope isn't much better than the propaganda his followers spout, and the rest is pretty weak too.

Urbit is almost never presented as "here's an interesting pure-functional VM and OS abstraction layer I've been working on, I think its advantages are this-and-such" but Grand Pronouncements like "The Internet Has Failed. We are writing its successor. Join us. It is your destiny." The rationale is that since data silos are more common and accessible than distributed systems and ISPs are dickheads on the modern internet the internet itself is architecturally unsound. But data silos and dickhead ISPs are much more a social problem than a technical one, and I never heard technical reasoning for why the internet is broken from the Urbit folks.

It's always "Google, Facebook, AOL, Comcast, therefore Unix and the internet are broken." But there's no chain of reasoning in the middle. It's a rhetorical cup-and-ball game.

And when I challenge the Urbit folks on this and tell them that I see no benefit to Urbit that I can't get from other more battle-tested systems, and that Urbit is different enough to be annoying without being advantageous, I get one of a few stock responses:

"That was fine for 1975. We're trying to build a system for 2015."

It is 2015 (now 2016). You still haven't specified in any detail how the system I run every day isn't up to the task.

"We want to make administering your server as easy as administering your smartphone."

Smartphones are administered largely from afar, by actors whose interests mainly do not coincide with my own. So I don't think that's a goal you can really reach without severely compromising your vision.

"In practice, Hoon is really easy and pleasant to use."

So is Scheme. So is Haskell if you want to go full functional. So is C once you adopt certain simple practices. How, exactly, is Hoon easier and more pleasant than these?

"Uhhh, yeah, we're working on making the documentation clearer and the names less weird..."

Good. I might check again when that work is completed.

I've encountered arguments of this type (Grand Pronouncements of the doom of the status quo, stock phrases as to why our system/product is better with a dearth of reasoning) before. It never, ever comes from a good place.

And I totally get the desire to play at being Alan Kay. But doing that successfully requires Alan Kay levels of insight into how computers and brains work deep down, which Moldbug hasn't convinced me he has.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: