16 Nov 2011
If I could answer any question with just two words all the time, it will probably be “It depends”. If that were to be four words, it will be “Your Mileage May Vary”. Every now and then, I see questions on HN and on Stack Overflow that typically go something like:
What’s the best technology stack to build X?
I myself have asked such questions plenty of times. Although the intention behind such a question is good (to choose the best tool to execute an idea), one can never generalize any stack to be particularly good at any one thing so easily. Sure, they all have their pros and cons, but that does not necessarily mean that you can’t use them to build what you want. If that were to be true, everyone will be building distributed systems in Erlang.
Putting learning goals aside, if you just want to get the job done, the comfort level in a particular known tool is far more important than any perceived benefits offered by an unfamiliar tool. Even if that tool were to be far more efficient (in terms of performance) than what you already know, such differences can easily be offset by just throwing more hardware at it. Hardware is cheap these days.
As developers, it’s always good to know different tool chains. However, for most “web apps”, what you end up picking is mostly a question of personal preference. Web apps seldom live or die solely based on the choice of technology.