My view is that Java was a product of its time. Absolutely fabulous for the 90's and 00's, no question whatsoever about that. But today you would be nuts to use Java instead of Go (or Rust if you need the low-level).

Go has a solid stdlib. Go can cross-compile and provide single-binary distribution.

Go doesn't have and client-side JVM dependency nonsense. Literally just ship the compiled Go binary for your app, everything is "batteries included" for the user. Doesn't matter if you're writing a simple CLI tool or a server.

I even don't write shell scripts any more, I write in Go and ship the binaries. It's cleaner and more robust to code and it's easier to deploy because of zero dependencies.

> Literally just ship the compiled Go binary for your app, everything is "batteries included" for the user. Doesn't matter if you're writing a simple CLI tool or a server.

> It's cleaner and more robust to code and it's easier to deploy because of zero dependencies.

If you want clean and simple then C# does all this and is clean and simpler.

The biggest thing about C# (and it's .NET peers) that turns me off is the link to Windows and Microsoft.

I don't like using Windows or Visual Studio for development.

You can use Linux or Mac to develop C#/.NET apps with VSCode, JetBrains Rider, or even vim: https://github.com/OmniSharp/omnisharp-vim