I like to think of programming languages as tools. It’s always best to use the right tool for the job… but sometimes there isn’t a choice.

Say you have 4 hammers in the toolbox, a JSP hammer, a php hammer, a Ruby hammer, and a Python hammer. The Ruby and Python hammers are nice looking and effective for people who know how to use them but you aren’t comfortable yet. The php hammer is your old trusty go-to hammer. And the JSP hammer gives you splinters every time you use it.

Then your boss says he needs you to hammer some drywall to the house framework, but you have to use the JSP hammer. That’s how I feel at work sometimes.