28/ build services exactly the way they're built now: you connect to the service, you do things, the service stores a ton of data about you and your actions IN THE SERVICE'S MEMORY / DISK ...and then when you want to walk away and chant "in Urbit the data belongs to users" >
-
-
39/ e.g. Hoon has a concept of a chunk of code, that does a thing, based on input data, and this chunk of code is named. Is this a "function", a "procedure", something like that? NO!!! DO NOT CALL IT THAT. It differs in some subtle ways from a function, so don't call it that.
Show this thread -
40/ When I started writing a book on programming Hoon there was a very strong disagreement - the stance from the top was "if we call it a function, OR EVEN COMPARE IT TO A FUNCTION, people will be lulled into a false sense of security...so call it a "battery" so that
Show this thread -
41/ ...people will be INTENTIONALLY confused, and will have to approach Hoon from first principles. It is GOOD that they have no basis to compare things.
Show this thread -
42/ I ran a small tutorial group off site, and a dozen people followed EXACTLY when I explained "the 'battery' is a library of functions. The 'sample' is the arguments that are passed into the function. The 'context' is like the Windows registry, or the unix env vars"
Show this thread -
43/ a "core" is a library + some data for it to operate on. If a library has just one function in it, it's called a "gate". etc etc etc It took me MONTHS to decode these things ... and once I got it...it was all so simple. Bad docs / an insular culture kept me in the dark.
Show this thread -
44/ ...which gets me to (c) all the docs are circular / self-referential. It's ok to introduce new concepts with new names ... but you need to make a directional acyclical graph of concepts Good: animal - moves, respirates mammal - subtype of animal w hair dog - nice mammal
Show this thread -
45/ bad: hoon - a core core - battery + payload battery - left arm of core payload - sample + context sample - left arm of payload context - right arm of payload Note also that the definitions in the Hoon docs confuse two different things: concept and implementation
Show this thread -
46/ Explaining concepts is useful. Explaining implementation is useful. But they are distinct things, and the explanation of the two things should be kept separate. If a conversation is about the hot water heater and where in the house it's located, the context >>>
Show this thread -
47/ of the question "wait, it's in the basement? What's a 'basement' ?" wants an answer "a utility space located inside a house" and NOT "formed from cinderblocks with mortar binding". Both are useful, but, again, they need to be segregated.
Show this thread -
48/ So anyway, once I finally made the break through to understand Hoon ... it really wasn't remotely that complicated. It had like 1 new concept, and 30 new words for old concepts ... and there was absolutely no reason that I could not have understood it all in 4 hours.
Show this thread -
49/ And so basically a month of my life, and a huge amount of anxiety (bc I was doing contract work, and felt guilty and dumb for not getting up to speed ASAP) was caused by ... intentionally terrible docs. I'm still angry, now that I think about it again.
Show this thread -
50/ Because of the intentionally obfuscated / actively harmful docs, I can't recommend it. If the docs were not malevolent, I'd say "maybe, yes, to enjoy stretching your brain a bit". There's no ROI in the marketplace.https://twitter.com/ROGUEWEALTH/status/1502322704426455044 …
Show this thread -
51/ So, that was a lot of negative. On some positive (about the Hoon language): I do find a bunch of the experiments that Curtis did to be quite interesting, and there is a sort of artistic cohesiveness and simpleness to it that I appreciate. With good docs, I'd like it!
Show this thread -
52/ Nock is an interesting experiment in a minimal virtual machine, and I respect it for what it is. Hoon, OTOH, is a terrible language. There's the old quote "it is original and good...but what is original is not good, and what is good is not original." There's some of that
Show this thread -
53/ Every other programming language in the word uses keywords like "if", "then", "else", "try", "catch", etc. if you see code like if a==1 then print "equal" else print "unequal" end even a non-coder can figure this out.
Show this thread -
54/ Hoon does not use keywords. It uses an innovation - every thing that would be a keyword in a standard language is a "rune" (a two character sequence).
Show this thread -
55/ where standard languages would use GetType(0x12) Hoon uses !>(0x12) prounced "zaggar"...because there's a special pronunciation guide for runes.
Show this thread -
56/ so the "reserved keywords" of Hoon include things like =+ =< =/ =. =: ?: ?. ?+ ?& etc Reading code is just a vast pile of these runes.pic.twitter.com/pLPYFggJZI
Show this thread -
57/ Here's an example of some (pretty clean, very readable) Hoon https://github.com/urbit/urbit/blob/41ce22d6ae18678f9979f7ab5bef54f5c65fb6e7/pkg/arvo/sys/vane/gall.hoon …pic.twitter.com/V1zmeazjp1
Show this thread -
58/ Note how a lot of effort has gone into naming things so that all of the variable names h̵e̵l̵p̵ ̵c̵o̵n̵v̵e̵y̵ ̵t̵h̵e̵i̵r̵ ̵p̵u̵r̵p̵o̵s̵e̵s̵ are four letters long. call load scry take list skip move unit slog apps
Show this thread -
60/ Curtis is exceedingly smart, and is intellectually playful in both shape rotation and wordcelling. ...and that's awesome. ...but his ideas about "elegant" and "fun" and "better" have made Hoon 50x harder to learn than it needs to be.https://twitter.com/Fredosphere/status/1502328439289876486 …
Show this thread -
This Tweet is unavailable.Show this thread
-
62/ So, on the topic of "hate", Roissy said that the opposite of love is not hate, it's indifference. I am angry at Hoon, not bc it means nothing to me, but because I WANT to love it, and I feel spurned. I tried hard to master it, and ... was 50% defeated by the docs.
Show this thread -
63/ ...and once I realized JUST HOW SIMPLE IT IS, I got very very angry. I hadn't been banging my head on understanding some deep mystery of the universe which is intrinsically hard - I had been banging my head on malevolent documentation designed to keep people out.
Show this thread -
64/ I didn't say "it surprised me". I said "it made me angry".pic.twitter.com/JpQDJBgpX6
Show this thread -
65/ Yeah, I was actually making notes for a Ruby-like language that could run in a written-in-Hoon interpretter.https://twitter.com/EricRichards22/status/1502334066166800385 …
Show this thread -
66/ That's great to hear that it's enjoyable! I last banged my head on Hoon ~3 years ago and I'd love to hear that the documentation & pedagogy has improved.https://twitter.com/pharkarpas/status/1502331332722053126 …
Show this thread -
67/ Yeah, I was soooo demoralized when I was trying to learn Hoon and nothing clicked...but then I realized that I'd ask questions - reasonable questions - and the answers were circular Once I got it, and wrote it up in decent documentation, folks could learn key bits instantlypic.twitter.com/1HqYLsLa8L
Show this thread -
68/ Phillip, the fact that I have data of something like n=15, where I explained Hoon core concepts in simple English and people GOT IT, IMMEDIATELY whereas they had tried and failed using Curtis / Tlon docs, is evidence that I'm right. >>>https://twitter.com/pcmonk/status/1502347516724973570 …
Show this thread - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.