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

The Coast of Maine: 19th century paintings

Paintings from 1845 by Thomas Cole, Frederic Edwin Church his pupil, Winslow Homer, and other American artists from the 18th century.

via The Eclectic Light Company

Themes from DjangoCon US 2024

via Simon Willison

Some Go web dev notes

I spent a lot of time in the past couple of weeks working on a website in Go that may or may not ever see the light of day, but I learned a couple of things along the way I wanted to write down. Here they are: go 1.22 now has better routing I’ve never felt motivated to learn any of the Go routing li...

via Julia Evans