| Both has it's advantages and disadvantages depending on the use case. If you primarily develop user facing applications (web applications, line of business applications etc.) C# is a good choice. There are a lot of companies (including Microsoft) using it for these use cases, so there are good ready made solutions, tutorials, documentations for the common features that you'll require. If you primarily develop "system" level software (Docker, Hashicorp products etc), Go is a good choice for the same reasons. This is a bit of a generalization as both languages can be used for both use cases, and you need to take a lot of different things into account on deciding which one to focus your attention on (familiarity, job availability and many other things). As always, it's about the tradeoffs you are willing to make. Keeping that in mind, it would be a safe bet for me to say the a Docker alternative in the future won't be developed in C#, and the some big business application won't be developed in Go. Another thing I want to add: The decision to learn a language doesn't need to be an 'OR' decision. Learn both, and use the one that fits your requirements best. |