December 22, 2012

Programming Language for a Startup w/ statistics

Yes, it is the programmer more than the language that makes the difference, but there are a few basics:
1) Choose a popular language so you can easily find programmers.
2) Object oriented is best.
3) Structured is best.
4) Probably the simplest way to identify good code (and a good language) is to read some. The more straight forward it seems, the better it is. (Easy to understand = hard to hide bugs)
5) Evolve instead of Develop your code. (Build simple apps for fast feedback, change/add code to improve it.)
6) Whatever you have written will be wrong. Plan for change. Expect to undo.
7) Write the code in two orders
.
a) Code the observable (probably GUI) first for feedback
b) Code the confusing/problematic parts first for feed-forward

Jack Mullaney







Use the language that gets you out the gate the fastest & allows you/your team to easily iterate.
That usually means, whatever you know now. Spending a few weeks to figure out a new language is a few weeks you could have verified your business viability.

When you have your MVP & some market feedback/traction, re-eval. (e.g. say, 1 month from now)

Generally, at that point you'ld have a much better idea what you need, your application space constraints, available tools, etc

Realistically, unless you're doing a language specific startup like say, phpfog, or say a tech heavy compute intensive big-data play, almost any language should get you to a series A. You're testing product-market fit, and that usually  does not imply any particular programming language.

One note, startups typically misjudge how hard it is to get good development talent. So once you're sitting pretty on your MVP & some funds in the pipeline, you can either do 1 of 3 things.

a. the latest & greatest, which attracts the leading edge folks (who are also commensurately tougher & more expensive to hire). read: you may not get your Rails superstar.

b. the most common available (to your location/your friends or if you outsource, your outsourced location, think pivotal )

c. go for what you know (if you're a tech guy), figuring you can train folks down the line.


YMMV. Your specific situation will have different trade-offs.
George Cabrera III, I have a lifelong love of learning.

An accurate answer really depends on what you are doing with your "web startup." If you're making a complex site like Quora or Facebook, you will need a whole different set of tools than if you're making something simple.

If your website is just as simple thing that represents your business, then you can do something as easy as use Wordpress or Ruby on Rails and be done with it.

If the website is your product, then you're probably in the "complex site" category and don't want to mess around with systems or languages that aren't heavily supported, aren't widely used, or haven't faced rigorous trials by fire. In this case, Python is almost certainly your best bet for addressing 1, 2, and 3.

Some reasons in favor of Python:

Some reasons against other options:
  • PHP: It has a lot of inconsistencies as a language that result in subtle and difficult bugs in mature code bases.
  • PHP: It's really difficult to keep a mature codebase fast. It's fast IFF you're very careful with it or use something like HipHop for PHP (https://developers.facebook.com/...).
  • Rails does too much work for you. This may seem odd, but once you get past the initial stages of a website, you can be held back by Rails easily.
  • Javascript is necessary in the browser and interesting on the server, but it's not easy language to grasp for a lot of programmers.

EDIT: I agree with Janssen Choong's answer as well. I was only addressing some of the technical aspects of this choice and not the very important business aspects.
  
Suggest Edits
 

No comments:

Post a Comment