Moving to Three Languages
Let me explain why I’ve moved to using only three coding languages.
You probably know that the traditional college track is to learn multiple languages — individuals with computer science degrees are usually trained in at least half a dozen languages by graduation. But is there any value in multilingual coding when you move out of the theoretical world of the classroom and into the real world and workplace?
Different coding languages are just different tools for different jobs — but they also shape how you think about programming. Learning similar languages may not progress your thinking much — that’s why I’ve gone for three very different coding languages with very different paradigms.
C# could be the greatest language ever invented because of the changes that Microsoft has introduced. I’d even go as far to say that it surpasses Java. For a long time I have loved C# and the .NET Framework but became disillusioned by the inaccessibility of the code. Microsoft effectively locked it in so it was near impossible to run across different platforms and use with next generation tool sets. This has all changed in recent times. .NET is now open source https://msdn.microsoft.com/en-us/library/dn771552.aspx and will be cross platform. It’s fast, functional, one of the best languages out there, and can work for the smallest or largest of projects.
Finally, there’s Google’s Go, which is a new compiled programming language designed for modern hardware architectures and concurrency. It’s an engineered language, which has been designed to natively take advantage of modern hardware architectures and solve problems with existing languages and tools.
The combination of these three languages gives me the fundamental tools to solve any technical issue and keep up to date with different concepts and trends in the coding arena. They balance the old with the new, the established with the cutting edge and the back with the front end.
Which languages should you learn?
Coding languages are just tools in my development belt to solve real-world problems. These three tools need to be able to swing between the two opposite ends of the coding scale and balance scripting/ease of use with a more server side language.
There is no single answer here. There is no superior coding language — it’s like comparing apples to oranges — you have to ‘go’ with what works for you (no pun intended).
In the end, just use a tool that gets the job done.