What Programming Language to Learn - the Verdict
Though I was trying to understand what language to pick next and my poll on twitter returned Java,
what exactly is the answer then? Let's have a look at the main languages and the pros and cons of each of them.
Rust: Rust is easily the best w.r.t. performance and security. No denial there. The fact that it's very hard to learn is also not a concern to me. But then, such a level of robustness is an overkill in 99% of the cases. So, the question is, except in its role as a curio, is it worth experimenting with Rust? The same low level access goes against C and C++ as well.
Golang: Golang actually wins hands down as the best programming language these days. Its easy to learn and very fast. But then, its a purely backend language. Front end solutions exist for web, mobile and desktop but they are not mature enough
C#: You want to develop a quick and advanced desktop front end? Blindly go for C#. And it has got very good interfacing for Web and Mobile. It is competitive in the market and can survive on its own. But then, when the internet is running on JavaScript, why exactly should go for C#?
Java: Java is cumbersome and an antiquated language which is desperately trying to hold fort. And it is successfully doing it to an extent that unless Golang comes up with proper frontend frameworks, Java will hold on its own. Its a beast in itself and have time tested solutions for everything.
So, what's the answer?
Option 1: Java as a backend for everything with Angular as front end for web, front end frameworks for desktop and mobile development
Option 2: If your primary focus is desktop development, focus on C# with WPF. Added bonus - Unity Game Engine
Option 3: If the focus is web or backend, go for Golang
Option 4: If you are looking at some serious perfomance tuning, look at C++ or Rust
Option 5: If you are looking at data sciences, go for R or Python
Synopsizing, unless you are not going for serious front end development, go for Java. Else, go for C#. Golang is good, but it can wait. Rust - not needed.