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

Doing nothing at work

Many engineers should be doing less work. I don’t necessarily mean producing less code or fewer changes, but literally working fewer hours in the day. When they do work, they should be working at a slower pace. I like to aim to be running at 80% utilization by default: unless I have a high-pressure ...

via Sean Goedecke

Elihu Vedder’s symbolism and stories: 1885-1913

More myth and Symbolism, with the Pleiades, Fates, and Fortuna, followed by large murals and a mosaic in the Library of Congress.

via The Eclectic Light Company

Thoughts on starting new projects with LLM agents

A few months ago I wrote about using LLM agents to help restructuring one of my Python projects. It's worth beginning by saying that the rewrite has been successful by all reasonable measures; I've been able to continue maintaining that project since then without an issue. In this post, I want to di...

via Eli Bendersky