Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>Interesting stuff, but in my usual 15 minutes of attention-span for things like this, utterly impenetrable.

It's pretty much designed to be as hard to understand as possible.

Look at the source/demo videos - it seems like it's designed to be obfuscated.

https://github.com/urbit/urbit

http://urbit.org/preview/~2015.9.25/materials/part-i

Personally, I can't get over the really made up words.



> Personally, I can't get over the really made up words.

The idea of having new names for everything is that when you use a name you've already seen before in another context, you carry forward any ideas you have about things with that name based on their implementations in those other languages.

There's a specific meaning for the words that are used for the introductory language concepts: arm, gate, battery, sample, core, rune, glyph, ... twig, jet, and so on.

Many of these are either new concepts, or new arrangements of old concepts. A gate is not a lambda or a function, neither is a core, and if either were called those things anyone who hadn't seen them explained before would probably go ahead and take the big word to their nearest search engine, only to become even more confused by idiosyncratic and sometimes conflicting explanations of those ideas that appear slightly differently in hundreds of other languages.

I think that Hoon hopes to be the first programming language for a lot of people one day, so they won't usually be coming expecting familiar things to have familiar names.


Interestingly, this same objection comes up when people try to read so-called (normally French) postructuralist theory from the 60s and 70s. Derrida himself, or Rorty writing on Derrida, supposedly advanced a similar argument, that using new terms allowed one to avoid falling back onto old concepts.

I couldn't find a good source quickly, but it's mentioned here: https://en.wikipedia.org/wiki/Jacques_Derrida#Criticism_from...


Fascinating side-chain .. thanks for that!


You mean that out of all the things in this combinator [0] flavored abstract rewrite system [1], programmed via a symmetrical [2], forward-inferenced [3] typed language, exposing modula-2 style per-code-block compilation control [4], all designed to support a content centric [5], natively networked [6] global computing environment with sovereignty-hard siloing capabilities [7], the most difficult part to understand is the naming scheme?

Edit: In the early Urbit docs [8] there was a nigh ad nauseam emphasis on the "stupidity" of the project. What the epiphany of careful inspection revealed was that this stupidity was not that of intellectual deficiency, but rather opposition to "cleverness" of the kind that tends to foster (and infest) Urbit's peer group of deep stack [9] rebuilds. One of the most insightful comments I've heard after springing Urbit on unsuspecting PL professionals was (paraphrased): "It [Urbit] does all the things we've said we wanted, in the worst possible way." All words are equally made up until grounded in referents. The question is, are the Worfian shorthands new words provide worth the cost [10] of expanding the symbol table, as compared to the interpretation overhead of translating new concepts into old? Under the burden of internalizing all the content linked below and more, I judge new vocabulary justified.

[0] http://www.ucombinator.org/

[1] https://en.wikipedia.org/wiki/Abstract_rewriting_system (ARS being the most mechanical of the pure computational models outside reversible logic)

[2] http://tunes.org/wiki/symmetric_20lisp.html

[3] https://en.wikipedia.org/wiki/Forward_chaining

[4] https://en.wikipedia.org/wiki/Modula-2#Description (see Definition/Implementation modules)

[5] https://en.wikipedia.org/wiki/Content_centric_networking

[6] http://netcentriccomputing.org/

[7] https://en.wikipedia.org/wiki/Capability-based_security (not yet fully implemented)

[8] http://moronlab.blogspot.com/2010/01/moron-lab-goals-princip...

[9] I won't say full stack, because the reshaping blade only penetrates OS deep. For a hardware-grounded reset, see good old Loper OS (http://www.loper-os.org/?p=8).

[10] Because words are context dependent, this expansion is only logarithmic with respect to the increase of immediately referable concept space.


That's not at all the thing that I have the hardest time understanding, you're right - it's just the thing, along with CY's past, that makes me stop taking it seriously, although it is an interesting idea if it were implemented in a way that didn't attempt to be as arcane as humanly possible.


Arcanity is relative to experience, so the ASCII phonemes can indeed be the most stymieing element of this experiment in futurity. However, what do you think of the phonetic numeral system? Compared to other protocols that map identity to a unique point sha256 space, "~hex" is no worse than "46", and "~fantyv-ralpen" is obviously better than whatever is its corresponding number; Urbit's vocalizable number to name mapping is possibly its most obviously correct (to me) and portable innovation.


Yes.


Then you are of inestimable value to the project and its intellectual antecedents! You will perhaps find the phonetic encoding for numerals more obviously correct - many's the time I've wanted to share some long hash identifier with a friend across the table, only to have to reiterate when they or I transpose "75555294111..." into "75552941111..." or the like. Even if nothing else from Urbit is adopted, the phonetic numerals are a demonstrably superior human readable format.

Hopefully the tractability of the number base will help bootstrap your familiarity with the ASCII alt-names. When you've poked around Urbit enough to see the ideas described in the link storm above, I would be very interested in discussing them with you (or even to discuss them in a general, non-Urbit context, both are standing offers).




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

Search: