

The Perils of Polyglot Programming - okal
http://alexgaynor.net/2011/dec/23/perils-polyglot-programming/

======
lucisferre
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.

------
arctangent
> 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.

------
ajays
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.

~~~
sounds
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."

