Over the years I have worked in languages ranging from assembly, purely functional, object oriented, actually object oriented, strictly typed, dynamically typed, to everything in between. Some of them I learned because I had to, but most I learned out of my own interest. And I’d argue each experience has made me a better developer.
Even the languages I didn’t particularly enjoy working with still had a significant impact, giving me the contrast to better understand competing patterns. Variety has increased my competency in ways that I don’t believe specializing in one stack ever could have.
I’d also like to highlight the enjoyment this route has offered me as well. I thoroughly enjoy learning, and I genuinely believe that in an environment that encourages this, many others also derive joy from learning.
Despite the fact that learning multiple languages/paradigms is old advice (I mean it’s even recommended in Pragmatic Programmer), I still regularly see companies that are reluctant to adopt a more friendly attitude to diversifying their stack. I understand the fear, that developers will require significant on-boarding time to swap stacks, during which they won’t be as productive.
Here’s the thing. If a company embraces learning, and shapes their culture around that, I believe they would end up with a small army of polyglots. Developers that love learning, learn quickly and spend a large percentage of their career getting better. Short term you might see productivity drop, but long term you’re going to end up with talent that can tackle every problem and knows the best tool for that problem. Plus those developers are going to love working for you, retention is important too!
I really hope that over time we see more companies getting on board with this mindset.