Language Doesn't Matter

Programming is rife with opinions. Everyone has a favorite IDE, framework, paradigm, test framework, and programming language. Engineers are very vocal about their preferences and often leave no room for a difference in opinion or even the idea that a contender may serve as a reasonable replacement for their favored choice. Before someone begins programming they have a myriad of choices to make before starting. The biggest of those choices might be what language to learn.

Language makes an impact on how one thinks about problems and their solutions. Any language is capable of expressing the same idea in multiple distinct ways. Hand the same task to two developers who prefer different programming paradigms, say functional vs procedural, and they will end up with two completely different-looking programs even if they write those programs in the same language.

Some programming languages are better than others, especially when framed in the context of performing some specific task. Nobody is going to want to write a web application in assembly, but assembly is the perfect language to use when milking every ounce of performance from a machine. JavaScript is a great language for web applications, but many believe that it isn’t suited for desktop application development due to its heavy runtime and often poor performance.

The other side of the equation is what programming language you know best. C may be the best language for the task, but if you’re intimately familiar with Python then it makes sense to do a little more work getting your Python program than learning an entirely new language (especially if that language is infamous for how difficult it is to correctly write).

Beginners should learn any general-purpose language that they’re excited about unless they have a specific task they want to accomplish. That language might be C++, Java, Go, Python, or JavaScript. There may be better, newer languages out there, but that doesn’t really matter. Languages are easy to learn after your first (as long as the paradigms match).

Picking a programming language shouldn’t be a barrier to those entering the field. We as engineers should put aside our personal preferences and instead let new developers choose whatever language they’re excited about.