But I’m only arguing that the Go GC design is suboptimal. I’m not trying to argue that it doesn’t work at all. My problem is that people don’t realize that it’s suboptimal. We’re forgetting all the lessons we learned in the ‘90s, which is tragic.
-
-
Replying to @pcwalton @KirinDave
There are a lot of good ideas in CS that turn out not to have a whole lot of practical benefit for huge ranges of real-world problems. Look at the instruction set we all code to now! TRAGIC.
2 replies 0 retweets 1 like -
Replying to @tqbf @KirinDave
Are you trying to argue that generational GC does not have a practical benefit for most programs? Because that would be very hard to successfully argue!
1 reply 0 retweets 0 likes -
Replying to @pcwalton @KirinDave
Yes, I am arguing that there are huge numbers of important commercial programming problems that don’t care whether their GC is generational or — scarier still! — care much more about latency than throughput.
3 replies 0 retweets 1 like -
(I am _not_ arguing that there aren’t Java apps that need to be Java apps because the Java GC suits their workloads).
1 reply 0 retweets 0 likes -
You also know you’re oversimplifying the memory lifecycle story in Golang by fixating on the GC collector design. You should acknowledge that directly.
1 reply 0 retweets 0 likes -
Replying to @tqbf @KirinDave
Are you referring to the escape analysis and embedding structs within other structs? Because I think Go developers make those out to be way more consequential than they are.
1 reply 0 retweets 0 likes -
-
Replying to @tqbf @KirinDave
Escape analysis (a) is something other languages do and (b) only matters so much in Go because the GC is not generational, making allocation really slow (10x-100x), therefore making it more important to rely on escape analysis.
1 reply 0 retweets 1 like -
Replying to @pcwalton @KirinDave
The argument is NOT that Go is better than other languages because it “does escape analysis”; it’s that stack-allocated objects consume a big chunk of the short-lifetime allocations.
2 replies 0 retweets 0 likes
Which is also true in .NET/C#, for which the generational hypothesis certainly holds and therefore .NET uses a concurrent generational garbage collector.
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.