Text 17 Oct The Best Programming Language for a Lean Startup

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?

EVERYTHING IS BETTER IN SMALLTALK!

EVERYTHING IS BETTER IN SMALLTALK!

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!

Indeed.

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:

What Eric Ries calls the core feedback loop for start-ups

Eric’s core feedback loop for start-ups

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.

Share/Save/Bookmark

—> Follow Kevin on Twitter

Kevin has a great point about using what you know already. The main thing is being able to go through multiple iterations fast in order to get your product from where you think it should be to where your customers think it should be.

You may think you have it all figured out and are ready to build and deploy the perfect solution to the problem at hand but you probably don’t. Go ahead and build your product but don’t get attached to it in its original form. It is going to morph into something else, embrace the process of getting it to that something else.

Posted via web from Matthew’s posterous | Comment »


Design crafted by Prashanth Kamalakanthan. Powered by Tumblr.