Hacker News new | ask | show | jobs
by darthrupert 1760 days ago
Why?
1 comments

Personally I think rust has some big ideas, particularly it uses borrowing instead of garbage collection. Go, on the other hand, could be seen as Java—-.
I also get the new Java vibe. Everything about the culture surrounding the code makes me _feel_ that way. I can't point to any single particular thing. Not necessarily saying it's a bad thing, especially when it comes to longevity.
Go seen as Java ? Really...? What makes you say that ?
Mainly garbage collection. If you've got garbage collection performance is not going to be better than Java.

Goroutines, channels and all of that are cute but I see go as Java--. Opinionated approaches to concurrency go so far and then they run out of steam.

We are living in the deep multi-core age and it is quite mainstream to have 8 or more cores, Java gives you primitives that are sufficient to keep those cores almost fully utilized doing real work. To do so you have to understand what those primitives are and what their characteristics are: attempts to solve parallelism and concurrency that don't do that (like the work-stealing mechanism behind JDK 8 parallel streams) might keep 3 cores on an 8 core machine busy with real work if you're lucky. Tune up an appropriate Executor with the right thread count and and you can get 7.8 cores worth of real work barely trying...

But you have to understand what an Executor does and what your toolbox of concurrency primitive does. There is this promise that "channels solve everything" and it's just not true... I mean with channels you might always get forward progress but you won't unleash the multicore beast inside your phone, never mind desktop or server.