Think arguments between religious zealots are intense? You’ve obviously never witnessed two developers – usually new developers – debate the following question: What is the best programming language?
There is a good reason why a programming debate resembles a dogmatic religious debate: both sides have invested heavily in something that achieves essentially the same goals but cannot point to a specific reason why their choice is “better”.
Of course veteran programmers find these debates tedious because they have seen so much come in and out of fashion. Their usual – and correct – answer is “it depends”.
This ambiguity presents entrepreneurs with a dilemma since ultimately a start-up has to make a decision to bet on a particular technology stack. Just today I saw the following tweet from @RemyMiralles:
Someone on aardvark is asking me “Why is Python so much better than PHP?” There are just different!! it depends on what you need!
But Remy’s answer highlights the dilemma of the entrepreneur committed to pursuing a lean start-up path: By definition you are trying to solve something where both the problem and the solution unknown so you don’t know what you need.
6 months ago I would have attempted to answer this question with some rambling diatribe about scalability, developer cost, frameworks, etc. I now think I have a simpler answer:
The best lean start-up language allows you to iterate your ideas the fastest with the market.
Or, as Eric Ries likes to call it, minimizing total time through the start-up feedback loop:
My assertion raises the obvious follow-on question: What programming language allows me to iterate the fastest?
Well, if you are truly following a lean approach you probably realize that the choice of dev environment isn’t your top concern. It probably isn’t even in the top 10 for most web-based start-ups these days. You can learn a lot about your customers’ needs with mockups, phone calls, and sketches before you write a line of code.
When you finally are ready to start building the product, the decision might be obvious:
1. If you are a programmer, just pick what you know the best. This isn’t the time to learn Python if you’re already a PHP stud. Get coding, start failing, start learning.
2. If your employees or partners are programmers, just ask them what they can use to iterate the fastest. 99% of the time it is whatever they already know. This isn’t the time to “build it in Erlang for future scalability”. You should be so lucky to have scaling problems some day.
If you’re a “business guy” who plans on completely outsourcing the “programming” to contractors … well … good luck to you. Hopefully you have some idea for how you’re going to pivot. My advice is to find a technical co-founder. You can even use the technology stack choice as a recruiting tool. I’d pick Python to just to get Chris Hagner on the team or Erlang to get Rusty Klophaus even though I’ve never written a line of code in either.
Great developers – not programming languages – build great products.
Finally, if you still don’t know what language to pick, choose Ruby on Rails because it is the best. If you don’t agree, get ready for a public stoning.