Recently, there have been some flamewars on Slashdot.org, TheServerSide.com, and elsewhere about the possibility of LAMP development eating into Java's marketshare. These inevitably include a dozen or so people saying something about choosing "the right tool for the job."

I find this very disingenuous.

True, there are a few cases where something is clearly a terrible fit. A language that is much too low-level (or high-level) for the job should be pretty obvious to nearly anyone familiar with the basics of computer languages. But that's hardly ever what we're talking about.

Usually, "the right tool" argument is followed by a preposterous example of a project where something other than the current speaker's favorite language might be appropriate. (Amusingly, Perl people often cite banks as a place where one might use Java, yet banks use a lot of Perl.)

In reality, people don't have the luxury of switching to an entirely different development environment for each project. If some project comes along where it looks like two-phase commit might be useful, do you expect an expert PHP programmer to drop what he's doing and switch to J2EE? No way. And if a small web project comes along, do you expect a seasoned J2EE programmer to toss out Eclipse and fire up Mason? (Yes, I know, EPIC, but that's entirely beside the point.)

Becoming productive in a new language and toolset takes time, and the cost of switching is high. You can't really do it well on a deadline. More than that, the only people who really have the luxury of choosing without the result being practically a foregone conclusion are people who don't know much about any development environment, like CTOs or Vice Presidents who have some drinks with the IBM sales guys and send you off to WebSphere school a week later.

I don't really have a point here after all this. This is purely for entertainment purposes. But I do suggest that the next time you see a language flamewar you consider playing the Right Tool Drinking Game -- you have to drink (Brooklyn Lager, a fruity Sancerre, a Scotch that only David Adler knows about, espresso, herbal tea... the right drink for the job) whenever you see the phrase show up in the thread. Better keep that cup full.


In reply to "The right tool for the job." by perrin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.