Rendered at 04:31:47 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
xeubie 12 hours ago [-]
Clojure's immutable HAMTs are still a superpower nearly 20 years later. They've been copied in pretty much every language as a library (I did so myself in Zig) but what really makes it work well in Clojure is the fact that they're built into the language, so the entire ecosystem is built around them. Libraries that were made independently usually fit together like a glove because they are all just maps/vectors in -> maps/vectors out.
packetlost 10 hours ago [-]
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.
ux266478 7 hours ago [-]
Type annotations mix poorly with s-expressions imo. Try an ML, which answers the same question of "How do we represent the lambda calculus as a programming language?"
packetlost 6 hours ago [-]
There's already type annotations in Clojure and they look fine (though are a bit noisy). There are type algorithms that don't need annotations to provide strong static guarantees anyways, which is the important part (though I'm not sure you can do that with nominal types?). I think TypeScript and Go's syntaxes are a bad fit for s-expr but the idea probably isn't.
dapperdrake 10 hours ago [-]
I thought it cheesy at the time. Then I tried clojure.
"The value of values". Indeed. Q.e.d. No notes.
nesarkvechnep 9 hours ago [-]
Lisp programmers know the value of everything and the cost of nothing.
andersmurphy 8 hours ago [-]
Apart from Andy Gavin [1]. He knows both the cost and the value of everything.
sbcl's optimizers knowing the cost of everything is the gamble, no?
kgwxd 48 minutes ago [-]
I think I know and love more about clojure than any language I actually use.
I rewatch hickey talks anytime Im a little stuck on a big problem/idea and there's almost always another "ah ha" moment for me.
If the places i work were already on the JVM, i would have switched a decade ago, but I've been in .net world my whole career.
iLemming 10 hours ago [-]
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.
slowmovintarget 8 hours ago [-]
HAMT -> Hashed Array Mapped Trie for those wondering.
"The value of values". Indeed. Q.e.d. No notes.
[1] https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
I rewatch hickey talks anytime Im a little stuck on a big problem/idea and there's almost always another "ah ha" moment for me.
If the places i work were already on the JVM, i would have switched a decade ago, but I've been in .net world my whole career.
https://en.wikipedia.org/wiki/Hash_array_mapped_trie
(The acronym is expanded in the article, but a ways down.)