Hacker News new | ask | show | jobs
by tgv 1265 days ago
Why should a language be novel? If you have to hang something on the wall, are you going to discard screws and plugs because they've been around for quite some time?

Go is good enough. It has some short-comings. I'd like to see non-nullable types, even though I haven't had a memfault in ages. But it's easy to write it, runs fast, is memory efficient, and runs practically everywhere without a fuss. For normal software, that's such a big plus. I'd hate to have to go back to Java.

1 comments

Well, the screws and plugs are Java and the litany of older managed languages we have with almost the exact same guarantees.

Why should I throw it away and buy a new set which will give me the same thing?

Languages have advantages and disadvantages, aside from being novel. Java is a memory hog in comparison to Go; Go is probably a bit faster in execution. The "eco system" for Go is pretty good, tooling too; I'm sure Java has a larger set of libraries and frameworks to choose from, but less easy to integrate. Idk about the current state, but Eclipse and Netbeans were so unpleasant when I did Java.

The choice is yours, novelty or not.

“Hogging” memory correlates with better throughput in case of GCd languages, and Java really shines on this front, it is not an accident that it is the numero uno choice for big backend services. Performance is also not really in favor of Go besides basic examples where value types can help. Any bigger example, and heap allocation won’t be avoidable and Java’s GCs are the state of the art to a huge degree.

And the final point, why reinvent the wheel each time? Go recreates a bunch of tooling, ecosystem that already existed.

A lot of people are treating it as an opportunity to port ___ to Go and put it on their résumés, which would be less compelling if you could easily reuse the original ___. We went through the same thing with “pure Java,” but those rewrites were at least improving memory safety and (often) error handling over C and C++.