The Perils of Polyglot Programming
alexgaynor.net
alexgaynor.net
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.
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.
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.
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."