I really like managed languages: GC makes some things much easier, and they often have great debugging tooling.
Distributing compiled programs is delightful though. They're easy to package, easy to distribute, and start up is really fast. It's a huge upside.
miniblog.
Related Posts
I've been learning some Common Lisp by writing some simple JSON munging programs. I'm sure it's not best practice — I should probably deserialise to CLOS automatically — but it's a nice way to get comfortable with the basics.
It feels weird deliberately ignoring helpers though.
When writing long-lived programs (daemons etc) in Rust, I find myself asking *where* I should put data.
In a GC'd language it's just "I have a string" but Rust forces me to find somewhere to put it.
You do get a performance benefit for this work though.
I've just squeezed another 5% of performance out of difftastic by finding a few HashSet values that weren't FxHashSet.
I do wonder whether hash DoS resistance is a good default. Sure, Rust programs are often pretty fast anyway, but it feels like a different threat model to the rest of Rust.