4 ms·
I mean, what does go actually bring to the table? That's a modern language only in release date, it is absolutely not worthy of being next to rust in terms of n
by kaba0 2y ago
I mean, what does go actually bring to the table? That's a modern language only in release date, it is absolutely not worthy of being next to rust in terms of novelty.
Also, old languages can be improved still. Java has some gotchas that will probably forever be fossilized into the language, but it still managed to get algebraic data types, proper pattern matching, virtual threads, etc.
Also, add to it Brook's famous paper and we can see that "new, modern" language will fail to account for even single digit productivity improvements, let alone order of magnitude differences. Me adding an already working, battle-tested dependency is the only real productivity booster.
(Nonetheless, I'm absolutely not against change, and I absolutely love language design as a topic. I just think that any language that wants to live in its own hermetic world has to give a really good reason for that choice)
- Animats 2y ago> I mean, what does go actually bring to the table? Good libraries for everything commonly done server side in web dev. Google people write the libraries, and they're used within Google, so even the obscure cases are executed frequently. If your problem is a variation on a common theme, not only can Go probably do it, common LLMs will know how to make Go do it. Go gives up a little performance in exchange for simplifying some problems that give many programmers trouble. It's garbage collected, which simplifies ownership, and its goroutines can safely block, so you don't have the async/sync distinction. Since LLMs don't really understand either of those issues, this makes LLM-driven coding work better. Remember, LLM based coding is about as good as copy-pasting from Stack Overflow. It only works well in areas where there's something it can copy and mod. Usually, if you search for names in LLM-generated code, you can find where it located a prototype to copy from.
- kaba0 2y agoJava is more widely used even within Google itself, and every single positive mentioned applies multiple-folds to it. Java has significantly more, battle-hardened libraries, and in the territory of web backends it is definitely by far the biggest player. Any service worth its weight will have a Java connection library made first, and that will often be of the highest quality. Many libraries are depended on by multiple software giants, not just Google. Java is also GCd with significantly better implementationS, they have far better throughput, and they also have a low-latency one where pause time is actually decoupled from heap size, unlike what Go does with simply blocking threads under load. Also, Java has virtual threads which are the same as go routines, so not even that is a relevant difference. And due to it being a bigger language, more of it will be found in LLM data sets, ergo LLMs will more useful in case of Java.