I come from a polyglot family. My mum is insane when it comes to languages and speaks Norwegian, Hungarian, Romanian, English, French, Spanish and more, I speak four fluently and two so and so. For my family, languages was there so we could communicate, and to create a bridge between cultures. We also enjoyed the challenge, the hunt for new words and possibilities, and the pure coolness of being able to switch over to another language when the situation required us to do so.
So when I started programming I never quite got why one would limit him or herself to just one language or platform. But most developers I met would religiously preach one language or platform, completely trashing any other possible option – without an appreciation, knowledge or understanding for the alternatives.
And I just recently read a blog post that states that “ployglotism is the worst idea I have ever heard”, beginning with the phrase:
Let me first start off being a little facetious with a little tongue in cheek…I’m an American. I have no need to speak another language because well, I speak English. 99% of the civilized world speaks English so WTF should I ever learn another language?- devloper and blogger
He then lists some problems, which I do think make sense (to some degree) such as maintenance, refactoring, installation and support. These arguments are in regards to polyglot software.
But I still do not agree, the benefits of learning different languages, and the evidence supporting the benefits, is for me too big to ignore, and therefore I have come to the conclusion that it must be beneficial to me as a programmer as well. And while I’m not sure how I feel about hardcore polyglot software, I fully embrace the idea of learning several programming languages fluently. But what do I know, I’m just 551 days in.
For me a polyglot programmer is a programmer that is fluent in several languages, also understanding where and how they are best used (set in context).
For me I can only see the following reasons for not wanting to learn a new language:
1. Afraid to step out of the comfort zone – reduce sense of risk ( and to some degree dissonance reduction)
2. Social inertia- (social pressure convincing you there is only one ‘right thing’ )
3. Some sort of Dunning Kruger effect in RE to the language and the person– not knowing what you don’t know leads to you thinking you know it all
4. Honestly not seeing the benefit or the need / disagreeing with the claimed benefits
5. Thinking that your mind is limited in its capacity (actually- learning new things increases our ability to learn and remember) or similar
6. Time constraint – or believing/feeling there is a time constraint
7. Scared they will like it more than the current language/framework they work with (dissonance reduction again)
I am very curious what your opinion is
1. How do you define a polyglot programmer
2. Is there a benefit of being one, what are they?
3. Why do some many shy away from learning a new language / preach only one language?
4. What are some of the real concerns about polyglotism, in regards to software and the developer?