4 ms·
Rust is less seasoned. C# is fine on Windows, Linux support is second priority. C/C++ takes a bit more work and skill (IMO). Java is probably very widespread
by bsg75 10y ago
Rust is less seasoned.
C# is fine on Windows, Linux support is second priority.
C/C++ takes a bit more work and skill (IMO).
Java is probably very widespread, but less popular from a publicity standpoint.
Go is equally stable on Win and Linux, decent standard library, easy to pick up for Python, Ruby, Java, C or C++ devs, has a simple deployment model, had a good concurrency model, and provides fast builds. It has its detractors due to features not in other languages, but fits the need for a wide variety of others.
- tracker1 10y agoI think for infrastructure tooling, the single binary output is probably a really big thing over Java (and C#), which have a separate, huge runtime that switching versions on a system is problematic for.
- icedchai 10y agoFrom a practical perspective, building your java app into a single fat jar isn't much different. Yeah, you need java installed... big deal.
- tracker1 10y agoInstalling Java is a pretty big deal... multiple versions, bigger deal... Also, the runtime is relatively huge. I don't think you'd want to do CoreOS/etcd/Kubernetes tooling in Java.
- icedchai 10y agoI disagree, based on my own experience having worked with Java off and on since 1996. It was a big deal then. Today, not so much. Multiple versions? The JVM is generally backwards compatible. It's pretty rare where an "old version" it is actually required. Plus. Java 8 has been out for over 2.5 years, which is practically an eternity in development time. In the event you do actually need multiple versions, setting JAVA_HOME and maybe your PATH is hardly rocket science.
- tracker1 10y agoYou don't have to worry about Java_home or the clr being installed at all... also, you can build it and deploy it wherever... with Java/.Net built with newer tooling, then install it on a server that wasn't updated? That isn't a problem with go... There's a HUGE class of problems that you simply don't have by using go... Don't get me wrong... I really like C# (not a fan of Java), but I wouldn't consider using it for a lot of the places where Go or Rust are used very well. Frankly, I'd just assume use node for any higher level stuff, Go for anything node isn't a good enough fit for, and Rust for anything system (Ie os/hardware) related.
- akbar501 10y agoIn case anyone who is not a Java dev wonders, "what is a fat jar"? A fat jar is a single runnable binary. It makes deploying Java super simple and is roughly equivalent to Go's single binary.