16

I was reading Paul Graham's essay - Beating The Averages (2003) and here's what he had to say:

The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening-- that's starting to sound like a company where the technical side, at least, is run by real hackers

Now, this is a dated essay. However, I fail to see how using a non-commonplace language (C/C++/Java, C#) would be 'less dangerous'. If the programmers of an organization are very fluent with the development language they should be equally adept at cranking out code at a decent pace. In fact if you do use a non-commonplace language won't maintenance/enhancement problems hit you in the face since not too many programmers would be available, in the long run?

For making quick-n-dirty systems I agree, that some languages allow you to take off relatively sooner than others. But does Paul Graham's essay/comment make sense in 2012 and beyond? If a startup were to use typical IT languages for development, why should it's competition be less worried?

I fail to see how the language itself makes a difference. IMHO it's the developers experience with the language that matters and the availability of frameworks so that you DRY (do not repeat yourself) not just coding in a particular language.

What is it that I'm missing? Does it imply that startups better choose non IT-flavored languages (even if the developers may be extremely adept at them)? What are the (programming) economic/market-forces behind this claim?

PS: 'lingua obscura' is not meant to hurt anyone's feelings :)

Robert Harvey
  • 200,592
PhD
  • 2,541

10 Answers10

25

The choice of an obscure language would indicate uncommon technical self-confidence in a startup. A company willing to abandon common wisdom might know something about software development that most companies do not. Then again, they might just be wankers.

samwise
  • 351
16

The toolchain is a symptom.

When a company picks Oracle, this is an indication of:

  • Lots of money to throw around
  • Large corporation
  • Deeply nested organisational structure with many layers of management
  • Company is run by 'suits': either executive types, or marketing and sales
  • Makes large monolithic software products with gigantic codebases
  • Formal processes for everything

When a company picks Python, this is a sign of:

  • Small young company
  • No money to spare
  • Flat hierarchy
  • Company is run by programmers
  • Makes small single-purpose products with small codebases
  • Mostly informal processes

When these two meet, the large corporation's strategy is to avoid risks, use their momentum and out-marketeer the competitor. The small competition's strategy is to first beat the competition to the market, and then keep being the superior product. If the small company picks the right battles, they can easily out-perform the large company simply by being faster and more reactive, and taking advantage of the large company's tendency to avoid risks.

tdammers
  • 52,936
13

I view PG's comments more about attitude than specifics of the language. People with an internal IT mindset play it safe. They use low risk technologies,have processes to minimize risk and take the low risk strategy. They are too busy worrying about their own lunch to eat yours.

People on the bleeding edge (python 2003) are ones to be worried about. They are hungry. They take risks. They are intellectually curious. The same type of person staying up late learning an exciting new language is the type who might upend your industry before you do.

MathAttack
  • 2,786
13

Graham means less dangerous to him as a competitor, not merely less dangerous. His point is not that Java (or C++ in 2003, or COBOL in 1980) is less dangerous, but rather that it is normal, and that there is a good probability that companies searching for such skills are merely-average competitors. But companies that are looking for strong talent in obscure (or, more correctly, higher-powered-and-less-well-known) languages are companies to watch.

And yes, it makes perfect sense today. It made perfect sense long before Graham wrote it, we just didn't talk about Java in those days.

8

Let's see what languages were first used by successful startups. An unscientific list, off the top of my head. Proper randomized research would be better, if anyone had the energy.

  • Facebook: PHP
  • Stackexchange: C#
  • Google: Java and Python
  • Twitter: Ruby on Rails

So, presumably, we conclude that Facebook and Stackexchange posed no threat to their competitors. Not very convincing.


Let's see whether Paul Graham believes it nowadays. He cofounded YCominator which funds startups. The homepage lists some of their succesful startups. I've gone through them in order, very quickly trying to research the languages they used in the early days.

Well, there are some signs of a preference for relatively obscure and arguably powerful languages. But Flash, PHP and classic ASP are listed too.


It's an essay. It's a hyperbolic boost for a relatively obscure language that he loves, with underlying advice that startups should love their technology and move as fast as they can. Fair enough.

MarkJ
  • 2,857
6

An average developer uses average tools, because he doesn’t see the value of more powerful ones:

“As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.”—Paul Graham, Beating the Averages.

(Emphasis mine.)

The more powerful the language, the fewer developers are going to use it, and the less common it will be. Popularity is thus a good metric of how far the power of a language is from the average. The more obscure the language, the better the chance that the developer using it knows what he’s doing, and has chosen it for a good reason over its run-of-the-mill peers—and a savvy competitor is a dangerous one.

Jon Purdy
  • 20,597
5

The choice of language is hard for a startup. Plenty of very good startups choose "common" languages for speed of getting to market, familiarity of the founder and ease of future hiring.

Choosing the a lesser used language does sent out good signs. It says you are prepared to take development seriously and try hard to hire specialized programmers. Those are just signals though, a startup is more than just it's choose in language.

Bottom line is your choice in language should be evaluated properly in your context. Facebook for example did ok using php which is not generally considered a very scalable language

Tom Squires
  • 17,835
5

Go ask the best and worst programmers you know, by whatever criteria you like, what other languages they know. Now write a job ad to attract the former, and you have your answer. Even if your app is in C++, you're going to get a better class of programmers if you hire ones who know languages that aren't taught in school.

Karl Bielefeldt
  • 148,830
4

There are two different things that you should be worried about if a competitor is using an unusual language:

  • Productivity advantage - There are pros and cons of unusual languages, but assuming the competition has chosen well for their given problem domain then they might well have a genuine productivity advantage. Meta-programming capabilities in Lisps, for example, will probably give you a real and substantial advantage anywhere that you need to do significant amount of automatic code generation on-the-fly.
  • Cultural advantage - if a company uses an unusual language of interest to great hackers, then they are probably in a position to attract and retain great hackers. Companies live and die by the quality of their people, so if this translates into a long term talent advantage then it can be really significaant.

Both of these advantages may not apply in any given situation. For example, a startup could easily adopt a language "because it is cool" without really thinking through whether it is the right choice. They can easily make hiring mistakes. They can easily shoot themselves in the foot by abusing a "powerful" language.

But if a competitor picks an unusual language and uses it well then yes, you may well have a significant threat on your hands.

I think this principle is fairly timeless and is as true now as it was in 2003 - specific languages and paradigms may come and go but the idea of choosing a powerful, expressive language that suits your problem domain over a generic, safe, general purpose language will probably always merit some serious consideration.

mikera
  • 20,777
0

If your customers are not locked in, then yes. You should be worried about competitors using powerful languages.

Java, C#, C++, are comparatively verbose, and have relatively slow edit/test cycles. This limits the speed that even the fastest developers can deliver features. More expressive languages, with powerful meta-programming built-in, and zero compile time, allow expert developers to build features as fast as possible. If you are in a race for market share, with a huge reward to the winner, it makes sense to hire the very best developers you can find, and use whatever language will let them go fastest. You can worry about scalability later.

kevin cline
  • 33,798