I'm a non-technical founder who is going to be using contractors on ODesk to build the MVP. How do I decide on which technologies to pick?
- PHP andMySQL
- Rails and PostGres
How you would decide on one and the factors that would make you choose one over the other?
I would advise on PHP + MySQL (aka LAMP stack) for the following reasons:
1. It's a very common and popular stack with many established and growing companies use it. Good for MVPs, growth and scaling later.
2. It would be easier to find GOOD engineers for.
3. Technology and issues of every kind are well understood and documented by the community, which will come in handy when you need to scale.
Rails is popular and would be Ok for MVP and pivots, but the first rockstar engineer you will hire will likely tell you to scrap the code and port it to another stack, unless your first developer is a rockstar (unlikely to be found on oDesk). I will just leave it at that to avoid enraging Ruby fans.
Node.js is awesome for certain type of applications, but not a fit for everything. There aren't as many experienced Node.js developers out there compare to say LAMP and they are worth a premium some companies in media space are willing to pay, but a lot of engineers want to work with the technology. You need a strong, experienced engineer to design and build you a site/app in Node.js, experimenting with it when on a deadline to launch can become a disaster project quickly.
EDIT: PHP also has many established and well-documented frameworks to choose from, for every project type. See a comparison chart for PHP frameworks. Although not listed as an option in the question, I would suggest to consider Python as well (still a LAMP stack) which has good frameworks as well.
I would recommend either Rails or PHP.
While PHP has more contractors available and easy to start, a big downside is that a hefty chunk of those contractors are bad programmers. Rails has fewer contractors but it's less likely for engineers to write bad speghetti code due to the way the MVC framework is built.