notes-computer-programming-programmingLanguageDesign-prosAndCons-hoon

See [1], [2], [3], [4].

---

ha ha, he should read 'fever in urbicand'! (not because of any deep connection, just b/c of the pun)

---

i guess one way to think about odors vs. types is that odors are telling you how a thing (in this case, an atom) is to be interpreted, whereas types are telling you about the shape of a tree structure. So i guess any language might contemplate having two 'type systems' of this sort.

hoon types are exactly structural types, but hoon type vs. odor is not quite like structural types vs. nominal types. althouth odors can be said to be nominal types, but there is more/less to odors than that; odors are not so much types as hints about how to use things, although they are weak types too.

---

My Opinions and complaints

i've been looking at Hoon because it is by the same guy who made Nock, and i loved Nock (Nock is a "combinatorial assembly language"). I am working thru the tutorials at http://urbit.org/doc/hoon/tut/1/ . So far i am finding a lot that i don't like. Some complaints:

You may notice a common pattern in many of the above complaints; like a fantasy book author who labors over every detail of their imaginary world, including imaginary plants and imaginary languages, the Hoon language author delights in creating a new world in every detail. I would prefer if the language had stuck to new semantics and left out the new vocabulary.

However, keep in mind that my complaints here are sort of like complaining that salmon should waste less much energy by not swimming upstream to spawn. Small projects, including programming languages, reflect their creator's personality to some extent, and the creator of Hoon is (at least online) an inveterate witty, wisecracking leprechaun. Expecting Hoon to be Hoon without lengthly esoteric witty diversions is just not in the cards. Nock was not like this, but Nock was an expression of a different side of the creator's personality. If this annoys my plodding, humorless personality, this is my problem, not Hoon's; Urbit has nevertheless managed to attract a community of intelligent programmers and even to seed a company with over $1 million in funding.

In addition, making programming languages is difficult, and making programming languages and tutorials is a lot of work, and if i tried to make a language, my attempt might end up just as confusing than Hoon. In addition, regarding the tutorial, HackerNews? discovered Urbit before the creators planned to release it, and i think much of the Hoon tutorial was frantically thrown together shortly afterwards in an act of kindness to save the time of a group of people who were reverse engineering Hoon anyways.

I'll probably still finish reading thru the tutorial, and then read it again, because (a) Nock was great and i want to check out Hoon because it's by the same guy, and (b) i'm interested to see what a high-level language built in the Nock (combinatorial) paradigm looks like, and (c) because the Hoon paradigm for handling 'subjects' (state) might be inspiration for ways to manage state even in other noncombinatorial, languages.

In summary, Hoon is a neat language which is handicapped by the use of esoteric names for everything, and by the tutorial.

-- bayle

a related list of my complaints about the style of the tutorial:

issues with the style of the tutorial (see above):

---

more links: