I've started reading this 1996 book on GC algorithms.
A lot of the first chapter is just defending the value of GC! It's much less controversial today.
I wonder whether the 90s rise of OO languages can be partly attributed to the increased productivity of automatic memory mgmt.
Related Posts
It's interesting to see the "why not Rust?" discussions around the TypeScript news that they're using Go. It shows that Rust has reached a level of maturity that it's a default for some users.
Go does seem to be in a sweet spot for AOT languages with GC 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.