Re:“Sustainability with Rust” post misleading about Go
by sblom on Wednesday February 23, 2022 @02:14PM
(#30445022)
Go was definitely ahead of the curve on a few things.
I'd argue C# was there (or very very close). C# has had value types (and fine-grained memory layout) since the beginning, reified generics since .NET 2.0, and also (lesser-known fact) raw pointer support (inside `unsafe {}` blocks much like Rust's approach). This was all motivated by interoperability with native code (mostly Win32 or other C-like ABIs & COM).
In 2009, the concurrency paradigm in .NET was more like promises and not quite as slick as goroutines. async/await wasn't born until 2012.
It wasn't on your list, but I'll toss in another point that works in favor of your original claim. ;) The main C# project also wasn't TRULY multi-platform until 2014.
Re:“Sustainability with Rust” post misleading about Go
by invalidname on Wednesday February 23, 2022 @03:36PM
(#30446076)
To be fair Java has made some strides in memory usage. GraalVM reduces it a lot and with Valhalla (and to some degree Loom) it should be more competitive on that front (and others) with other languages.
Re:“Sustainability with Rust” post misleading about Go
by bberrry on Wednesday February 23, 2022 @04:33PM
(#30446785)
I'd like to add the recent addition of ZGC as a massive benefit the JVM. Pause times always measured in microseconds regardless of heap size. No other GC:ed language has that capability as far as I know.
* control over memory use and layout (in contrast java is a pig over memory usage)
* some kind of easy way to use multicore (goroutines with channels or something else)
* speed, good cpu utilization
* garbage collected for ease of use
How many mainstream languages actually fit these criteria when Go came out? None? And how many fit these criteria now?