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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |