
Best Programming Language for Startups - marcofloriano
http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/
======
swombat
I wasn't so sure, until I reached the end:

 _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._

Clearly, some very sound thinking! I like this guy already!

More seriously, the article is spot on. I have one caveat though: don't settle
for what you know if you really want to know something else.

For example, if you've been doing PHP programming for years, and know it
really well, but are really keen to learn Python and Django, give it a try! My
advice would be to try the new language/framework for 2 weeks. It sounds long,
but actually 2 weeks is almost nothing.

After those two weeks you might go back to your previous language, satisfied
that you _know_ it's the right choice since you've tried the grass on the
other side and it didn't taste any better. Or perhaps you'll switch to the new
language, safe in the knowledge that yes, it is a lot better and you can
probably do a better job in this new language.

~~~
jamesbritt
"Clearly, some very sound thinking! I like this guy already!"

Because Rails is a programming language?

~~~
compay
Because of sarcasm.

~~~
jamesbritt
It is impossible to determine if any favorable comment about Rails is sarcasm.

------
hyperbovine
You're a startup. You have neither the time nor money to do it all yourself,
and if you're not first to market it's curtains. The best language for your
startup is the one that has the most people kicking out free, modular code
that you can pull off the shelf and use. This would seem to be Ruby for the
time being, but the main point is you need to pick up the fad du jour and run
with it.

------
natmaster
Although if you're looking to get something done, learning a new language
isn't going to help in the short term, there is such thing as a better
language. PHP sucks. As a language, it's hackish, and not really designed at
all. So unless you need to integrate with existing tools, it would probably be
best to stay away from a language that will attract meto developers.

For more evidence:
[http://www.google.com/search?q=php+sucks&ie=utf-8&oe...](http://www.google.com/search?q=php+sucks&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-
US:official&client=firefox-a)

~~~
idlewords
The reason there are a ton of "php sucks" posts is that tons of people use
PHP. The reason tons of people use PHP is that sometimes it's the best tool
for the job. Engaging in 'language X sucks' debate is a waste of time better
spent designing an innovative product.

~~~
aaronblohowiak
As Bjarne has said: "There are two types of languages, those people complain
about, and those that nobody uses."

~~~
Daishiman
Yeah, because VB6 is so much better than Python or C#. Strangely I have yet to
see many complaints about C# or Java in relation to C++ or VB6, yet I'm sure
as many if not more poeple have used VB6 and C++.

Some languages allow you to shoot yourself in the foot more easily. Some have
just better conventions and toolsets. VB6's object model just plain sucks in
comparison to C#. C++ bugs are much harder to catch than Java's, and Java
gives you a better toolset to find them (not that I'm a Java fan, I acutally
dislike the language quite a bit).

Bjarne's phrase is pretty cute. But let's be honest, technical merit has never
been in a factor in a large majority of business decisions. If that were so
people would drop the horrible abortion that's ABAP or COBOL for SAP
applications, Sun would drop Telnet as a default dameon and use a better shell
than sh as a default. But hey, it's the most popular commercial Unix, right?

------
clutchski
"Finally, if you still don’t know what language to pick, choose Ruby on Rails
because it is the best"

um. ruby on rails != language.

~~~
megaduck
I'd argue that Rails' use of DSLs and metaprogramming makes it materially
different from straight ruby. It gets even more confusing with lisp where your
libraries are, by definition, language extensions. Often with completely
custom syntax.

It's kind of an irrelevant distinction anyways. People don't really pick
"languages", per se. They usually pick "language + libraries", and the line
between third-party libraries and standard libraries is getting increasingly
blurred.

~~~
aaronblohowiak
They do pick the initial "technology stack", a term which concisely
encapsulates both the distinction and interconnection of the parts.

------
jksmith
Of course he forgot to mention what is currently the trendiest language to
use, which is the one I'm writing. I haven't had this much fun with a computer
since dos days.

------
edw519
_By definition you are trying to solve something where both the problem and
the solution unknown so you don’t know what you need._

And what definition would that be? Could someone please enlighten me because I
have no idea where this comes from.

If the problem is unknown, then what are you working on?

If the solution is unknown, then figure it out (at least conceptually) before
you start coding.

Am I missing something? This makes no sense to me.

~~~
gwern
Then that's your problem, if you can't understand it. A man is unhappy: he
knows not why he is unhappy, what problem he has, nor how to solve it. Is it
nonsense to say he is unhappy? A species is wandering around configuration-
space; it knows not what the current fitness function is, nor what mutations
would solve it best. Is it nonsense to say that the species will do better or
worse?

------
natmaster
In the end, a programming language is a tool to get things done. And while
many tools are designed to solve different problems. Some tools
<http://www.flickr.com/photos/kjmeow/3078861757/> ARE just better than others
<http://www.flickr.com/photos/salyangoz/3466877208/> for getting the job done.

~~~
toddmck
I'm thoroughly amused that the first tool link is a picture of someone using a
hammer to pound on a screw. The photographer even says in the flickr comments
that he's thinking about titling the picture "What happen when you use a wrong
tool...".

This in no way diminishes your point, which I think is quite valid. I just
found myself laughing out loud so it seemed worth sharing.

------
fjabre
I'm not big on Rails.. but this list is somewhat impressive:

<http://rails100.pbworks.com/Alexa+Rankings>

------
bradfordw
I like Ruby and Rails for that matter, or rather where Rails 3 is headed. But
this has flame bait written all over it. It's a matter of choosing the right
tool for the job, plain and simple.

~~~
raganwald
_It's a matter of choosing choosing the right tool for the job, plain and
simple_

I have a lot of trouble with this statement. It is a tautology, it is
_necessarily_ true. Now that we both agree, what is the best tool for the job
and how do we choose it? The OP gives the author's perspective. If you don't
agree, perhaps you could share yours.

~~~
sofal
There seem to be a lot of people who think that arguments about what language
to use are 100% fluff and that they can all be neatly settled by the cute
"right tool for the job" platitude. The truth is that sometimes we're just not
sure what the right tool for the job is and we might do ourselves a favor by
being open to different arguments for different tools.

~~~
fpgeek
If you're truly committed to "the right tool for the job" be prepared to
become a polyglot programmer.

We use 5 (or 6, depending on how you count) different programming languages
regularly at my startup and for strong business and technical reasons _each_
of them is "the right tool for the job". We also have some other languages
squirreled away in odd corners. In those cases, the languages tend to be "good
enough" tools for their jobs (so there's no sensible reason to change
something that is already working).

