Who should decide which programming language should be used for a task?
Zed Shaw recently wrote a very good article summarizing the tasks that can be done well using Ruby, and some that one would be better off using a different language, at least at this point of time.
You would always hear all the pragmatic and smart developers say, choose the right language/platform based on your needs. It is a very logical statement that you would expect (mostly) all would agree to and follow it, but all of us in Software Development know, how tough it really is to convince all the 'stakeholders' (i hate that term!) to take a rational decision when it comes to selecting a language or a platform.
At one end, you would find an ultra geek sticking to his (no her, females are generally more sensible) favorite toy gun always, going to the extent of hacking out a new language feature/library on that night to prove that the gun can now fire with a voice back drop of a cannon shot.
At the other end, there is a bunch of programmers, happily living in their comfort zone, who can only be moved on to a new technology, if told, layoffs are imminent now.
Add to this mix, an architect who coded last when the highest tax slab in India was 90%, a couple of managers who live and die for some dates, and lo, stage is set for taking the most logical decision.
Taking smart and sensible decisions is a quality quite uncommon, but i would hedge my bets on a person with the following traits to take the most rational decision.
- A person who has exposure and understanding of a number of technologies/languages.
- A person who would be coding majorly on this new task.
- A person who understands what it takes to put a software in production and the maintenance pangs associated with it.
- A person who understands the customer and the market, and whether this decision would ultimately affect them in any way, in terms of cost, turn around time for fixes or new features.
So if you are in midst of such a decision making process, look for the above mentioned. It would be ideal (and extremely rare) to find one individual who has all the above, (chances are (s)he is a co-founder of a $tartup currently), but as a team you can contemplate together and take this decision looking in to the above factors.