I thought it cheesy at the time. Then I tried clojure.
"The value of values". Indeed. Q.e.d. No notes.
Yeah. I do wish there was something that was like Clojure with a TypeScript or Go-like nominal typing, but I do feel myself missing types a lot less with Clojure compared to other languages.
Yeah, they are so underappreciated - the practical differences in designing, delivering and maintaining software are real. Initially you see small differences "What's the point? I can write that in Python too... maybe it's not as delightful, but who cares?...", etc. Yet over time small annoyances accumulate and become an endless stream of headaches. I see it over and over again - I work on a team where we have codebases in different languages, and some services written in Clojure. Immutability by default is a game of a different league.
HAMT -> Hashed Array Mapped Trie for those wondering.
https://en.wikipedia.org/wiki/Hash_array_mapped_trie
(The acronym is expanded in the article, but a ways down.)