3 ms·
I, for the millionth time, tried to go into the documentation to understand how Hoon works. My TLDR: there’s streaks of absolute brilliance, particularly in th
by sergiomattei 6y ago
I, for the millionth time, tried to go into the documentation to understand how Hoon works.
My TLDR: there’s streaks of absolute brilliance, particularly in the OS level. But it’s all so intentionally obfuscated with a dash of elitism thrown on top.
I think the most frustrating part was reading the Hoon tutorial (Hoon is their high-level programming language) and not understanding a single word. They use completely new terms, strange syntax & then throw in the casual “See? It’s that easy!”. Not even a comparison anywhere to traditional languages for reference (not that it’d help at all anyways)
Never again.
- basilisks 6y agoAs a beginner programmer I did not have any more trouble understanding the Hoon tutorial than I do C, Go, or Haskell tutorials, for example.
- Jtsummers 6y ago"A gate is core with one arm named $." "A core is a cell of a battery and a payload." "A battery is a collection of Hoon expressions and the head of a core." This is what GP is talking about. Reading through the tutorial, it made some sense. I could probably code in this language with a bit more reading and practice. But the choice of deliberately obfuscating terminology makes it read like a joke or an esoteric language (languages not meant for real use but as puzzles, challenges, maybe for code golfing). I mean, half the time they explain these things with analogies. A gate is a function, they say it nearly every time the term comes up. So why call it a gate? EDIT: When I was at GA Tech (now many years ago) we had access to a set of servers, "acme" (acmex, acmey, and acmez if I recall correctly). Each semester we had a limited amount of access to computational resources on these servers, measured in "bananas". We had plenty to do things like access mail, newsgroups, maybe do basic programming assignments. But anything resource intensive or really long running ate up your bananas and you'd have to request more (no cost, it was a limit to keep people from abusing shared resources). This was absolutely fine, and a bit humorous. "I can't run that, I don't have enough bananas." But if I were rolling out a product to universities across the country to manage access to their systems I would not use "bananas" as a term. Within the GT community it had a shared meaning, but outside it made us sound like asylum escapees (perhaps an accurate description of us). "bananas" communicates nothing to users on its own, just like "gate" and "battery" communicate nothing to anyone familiar with other programming languages.
- tripledunit 6y agoAs someone with a good amount of hoon knowledge, I'd say there are definitely some cases where new terminology does more harm than good, but in other cases simply using the name of a similar concept in other languages would hide complexities or differences that the learner will need to know eventually
- Niksko 6y agoI've tried several times to wrap my head around Hoon and failed. However I'm only a functional programming novice. The one time I reached out to a colleague who's an FP expert, his response was (paraphrased) 'I'm not touching that with a ten foot pole because of Curtis Yarvin's involvement'