This was another one of those blog posts that started with <insert inflammatory title about X being bad/dangerous/perilous>, followed by <poorly constructed straw man about X being done wrong in a way that rarely happens> followed by <largely obvious but still unsupported conclusion that X is actually really good but only when done right>.
The empty argument sandwich.
Polyglot programming is not about using 10 languages in every (or any) software project. It isn't even necessarily using 3. The one statement made that was true was this:
> 2. Knowing multiple programming paradigm expands your mind and makes you better at programming in every language.
Which he then argued against with
> Well, maybe the second I'll argue with a little: I think you can get most of the benefits by using different paradigms within the same multi-paradigm language
Ironically, "#2" actually supports the counter-argument. Learning multiple languages would be extremely useful when then applying those paradigms within a multi-paradigm language (as an example playing with Erlang and F# has made me better with languages that support first-class functions like C#, Ruby and Javascript).
In the end, the article seems to disagree with it's own title. There is no peril to being a polyglot programmer. There is perhaps a peril in overuse and over mixing of tools, which we should all know and has nothing to do with being a polyglot programmer. Perhaps a better title would have been the perils of indecisiveness, or having a lack of focus, or doing too much at once. I dunno.
> I think sometimes using the less optimal tool for the job carries overall benefits.
In that case, it's the best tool for the job!
Balance between the theoretical and practical uses of technology is the crux of the issue.
My day job is an unashamed Python shop, so even though other languages might be "better" for a task we're almost certainly going to use Python wherever we can simply because it makes our entire service offering more maintainable.
That said, knowledge of alternate languages/technologies does allow you to vary the status quo where the benefits outweigh the costs. The real benefit of being a polyglot programmer (or neophile technologist) is that you have the perspective to see where exciting new things might be employed successfully in more routine environments.
I don't know about others, but I find it hard to jump from one syntax to another.
The other day I started doing some Java after months in Perl, and all my variable names were starting with "$", and I had "my " before declarations. I know an IDE can prevent this, but it took me some time to get my bearings.
Having said that: exposure to a spectrum of languages makes one think differently, and, IMHO, makes one a better problem-solver. Just observe how you think of a problem when trying it in, say, LISP -vs- Prolog; or FP -vs- Java.
Sure. Wild switching of languages is infuriating to your partners.
Car analogy: it's like insisting you need to park all 7 of your vehicles — car, van, truck, harley, two bikes and a wheelchair — in the prime spots in front of the office. You'd be out of a job in an hour.
And knowing all the languages helps you. (If only to successfully talk your partner out of wildly slinging languages around.)
Ok, better example: to write a web app, you need a server-side language. Plus javascript. Plus CSS. Plus multiple browser interfaces and their toolsets.
I think the article totally misses the point: polyglot programming is a fact of life. Adapt or perish. We could debate the relative merits of _fully_ _equivalent_ languages, but I think it's linkbait to demonize "polyglot programming."
The empty argument sandwich.
Polyglot programming is not about using 10 languages in every (or any) software project. It isn't even necessarily using 3. The one statement made that was true was this:
> 2. Knowing multiple programming paradigm expands your mind and makes you better at programming in every language.
Which he then argued against with
> Well, maybe the second I'll argue with a little: I think you can get most of the benefits by using different paradigms within the same multi-paradigm language
Ironically, "#2" actually supports the counter-argument. Learning multiple languages would be extremely useful when then applying those paradigms within a multi-paradigm language (as an example playing with Erlang and F# has made me better with languages that support first-class functions like C#, Ruby and Javascript).
In the end, the article seems to disagree with it's own title. There is no peril to being a polyglot programmer. There is perhaps a peril in overuse and over mixing of tools, which we should all know and has nothing to do with being a polyglot programmer. Perhaps a better title would have been the perils of indecisiveness, or having a lack of focus, or doing too much at once. I dunno.