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.

Recent posts from blogs that I like

Calculating the norm of a complex number

In this quick post I'll dispel a common confusion in the basic math of complex numbers. It's often useful to calculate the norm-square (also known as absolute square) of a complex number z. This norm-square is denoted |z|^2. One could naively expect that: \[|z|^2=zz\] However, that's false! The way ...

via Eli Bendersky

Video scraping: extracting JSON data from a 35 second screen capture for less than 1/10th of a cent

via Simon Willison

The Real Country: 9 Courses and crop rotation

Arable farmers learned to rotate crops, to prevent loss of soil fertility. At the same time, land was enclosed to remove it from use for communal grazing.

via The Eclectic Light Company