posted: September 4, 2021
tl;dr: For a more fun and rewarding career in software, I recommend being a polyglot...
I’ve moved from language to language throughout my career. I’ve had to, as have most software developers who have built a career in this industry. Of the languages in the preceding paragraph, the only one that existed when I graduated from college was SQL, and it wasn’t terribly widespread in that timeframe. Yes, there are probably a few contemporaries of mine who learned COBOL in college, spent their entire careers programming in COBOL, and today may still be in demand for programming legacy COBOL applications on mainframes that have not yet been decommissioned in favor of newer technologies. But how much fun have they had in comparison to me?
Here’s an almost certainly incomplete list of the languages I’ve programmed in, in rough chronological order:
Learning other languages sharpens your mind as a programmer. You get to see how different languages solve common problems, such as scoping, native types, user-defined classes and types, iteration, functions, modules - the list goes on and on. You see similarities and differences between languages, and can start to identify the better solutions and the tradeoffs between various approaches. You’ll also start to think in more abstract ways, such as “a closure would be an elegant solution here - now what is the syntax for that in the language that I’m using?” Being a polyglot helps you become a better programmer in whatever language you’re using at the time.
It’s also more fun to be a polyglot. You get to work on a wider variety of tasks, and don’t get pigeonholed into doing the same thing day after day, year after year. You also get to have some fun by writing multiple solutions to the same problem in different languages, and in translating from one language to another. It can be a bit like wordplay. Programming should be fun, after all, and polyglots have more fun.