5 ms·
> Go is a better Java / C#, while Rust is not. Mm, not really. Go is a less sophisticated Java / C#, in the same way that a bicycle is a less sophisticated mot
by darklion 7y ago
> Go is a better Java / C#, while Rust is not.
Mm, not really. Go is a less sophisticated Java / C#, in the same way that a bicycle is a less sophisticated motorcycle. There's situations to use both, and there's nothing with either, but sometimes you want or need to travel hundreds of kilometers in a day and a bicycle isn't going to cut that for most people.
- mirceal 7y agobut but... anybody can ride a bike and you don’t need to pay for gas. and it’s better for the environment. think about the new people joining the team.
- DocSavage 7y agoI hate bad analogies that have us arguing more about how well the analogy fits than simply debating the underlying question. When we talk about concurrency or the ability to make simple yet high-performing server apps, it's ridiculous to say Go is a bicycle compared to the motorcycle that is Java / C#. User-space network driver? The benchmarks group Go closer to Rust with Java / C# way behind: https://github.com/ixy-languages/ixy-languages https://github.com/ixy-languages/ixy-languages This would be a very complex comparison and simple analogies do us a disservice. I think the author's blanket statement that Go is faster than Java / C# also seems too broad.
- loonyphoenix 7y agoHow do you get that C# is way behind Go on this one? If anything, those benchmarks show these groups of languages performing at roughly the same level: 1. C/Rust 2. Go/C# 3. Java/OCaml/Haskell 4. JavaScript/Swift 5. Python
- DocSavage 7y agoI agree that my wording is too strong due to my memory of the latency results. As you increase the load, Go is closer to Rust/C than C# (see last benchmarks) and at a given load, C# isn’t in picture. It’s fair to say that Go/C# is similar while Java is far behind depending on the benchmarks that are important to you.
- joelfolksy 7y ago> and at a given load, C# isn’t in picture And depending on how you draw the picture, Go might not even be in the bandwidth picture.
- saghm 7y ago> User-space network driver? The benchmarks group Go closer to Rust with Java / C# way behind That's a very generous reading of those benchmarks. What you said is true in the latency benchmarks, but in the throughput benchmarks, C# _beats_ Go at high packet rates and is much closer to Go than Go is to Rust at low to medium packet rates.
- wffurr 7y agoThe analogy is better than you intended. It's a lot easier to kill or injure yourself with a motorcycle than a bicycle, too. The Java/C# vs Go equivalent being causing your project to run overbudget and a be a trainwreck of bugs due to overengineering and runaway complexity.
- apta 7y agogolang has nothing to offer compared to Java's introspection capability, performance, tooling, tunability, and even concurrency (see java.util.concurrent). Not to mention maturity and widespread adoption. It's just an overhyped, subpar language.
- hactually 7y agoConcise, clean, effective and without cruft. That's the main reason for Golangs unstoppable growth. Java is a language and computing platform from the 90s and it shows. It really needs to just stop and the mess around licensing only serves to help kill it. I also wouldn't tout the concurrency of Java over Golang - having the concurrency model baked into the language and runtime means a clear advantage for Go and one which simplifies the communication among different agents. Please learn some basics.
- apta 7y agoI have used both in production, and Java/JVM is far superior. Concise is not a word I'd use to describe golang. I can't count how many times I've come across code that would be 1 or 2 lines in Java compared to 15 lines or more in golang. It's quite ironic given the unsubstantiated claims around golang. Lots cruft with "if err != nil" littered everywhere is barely scratching the surface. Java is getting a green thread implementation by means of project Loom. However, the JVM already handles very high concurrency systems in production by using libraries like Akka, Vertx, and Reactor. It is already used by major corporations to handle extremely high load systems. It's already proven itself over decades. I don't know what you mean by Java being a computing platform from the 90s. If anything, golang is at a similar level as Java when it was first released (no generics), except worse (error prone error handling, poor design of interfaces, and many bad and unsubstantiated design decisions). Not to mention the JVM having state of the art GC, as well as performing optimizations way beyond what golang is capable of. OpenJDK is fully open source, no licensing there. Not only that, but Oracle has open sourced previously closed source projects pertaining to the JVM and tooling around it. The main reason for golang is the hype behind it. Proof is that some of the same authors worked on its predecessor a long time ago, and nothing ever came out of it because they didn't have the Google brand behind them. People today follow hype without substantiation.