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

How to compress out interior padding in a std::pair and why you don’t want to

Context-sensitive layout means you get a different structure each time you use it. The post How to compress out interior padding in a std::pair and why you don’t want to appeared first on The Old New Thing.

via The Old New Thing

This game would be perfect if it wasn't gacha

TL;DR: Zenless Zone Zero is a fantastic game that's ruined by its gacha system. It's a shame that it's a gacha game, because it's so good otherwise. 8/10

via Xe Iaso

Swimming in July

Just the pure physical joy of thrashing your arms around in water. To fill the kid’s buckets and throw it at the sun—the way the water falls apart into drops, and then into mist, the way a rainbow appears for a second and is gone.

via Henrik Karlsson