89

Python first appeared in 1991, but it was somewhat unknown until 2004, if the TIOBE rankings quantify anything meaningful.

What happened? What caused the interest in this 13 year old language to go through the roof? Is there a reason that Python wasn't considered a real competitor to Perl in its first decade of existence? Is there a reason that Python didn't continue in relative obscurity for another ten years?

I personally think that Python is a very nice language, and I'm glad that I'm not the only one. But it doesn't have corporate backing or a killer feature that would explain a sudden rise to relevance.

Does anyone know the story?

7
  • 6
    Historically, that's a pretty quick rise!
    – Macneil
    Dec 17, 2010 at 4:10
  • 4
    This question was quite interesting. +1
    – Tim Post
    Dec 17, 2010 at 7:55
  • 1
    The essay The Python Paradox is from 2004.
    – stesch
    Apr 17, 2011 at 8:38
  • 2
    Could people have come to Python via Django, like some came to Ruby via Rails? Apr 17, 2011 at 8:56
  • 1
    Django. That's the first context in which I heard people talking about actually using it seriously for development. Before that, most of the talk I'd seen about it was "why doesn't anyone want to use this language?" Or... "Rails is why Ruby took off and why Python is going nowhere." (Note that last one was in pre-Django days). Apr 17, 2011 at 16:30

6 Answers 6

77

Google

Google started using Python heavily and reinvesting in development of the language.

But it doesn't have corporate backing or a killer feature that would explain a sudden rise to relevance.

Google is the corporate backing. As for features Python is an OOP interpreted cross platform fast1 language. What's not to like? It's another excellent tool in the toolbox.


1. Fast to develop, not fast to execute. Writing a general purpose script in Python is much faster then say Java or C, disregarding the fact that those language would execute faster.

13
  • 26
    Guido van Rossum, creator of Python was hired by Google around 2005, the same time when they started using python heavily. This also provided a boost.
    – nayan
    Dec 17, 2010 at 4:10
  • 6
    What do you mean by fast language?
    – Peaker
    Apr 17, 2011 at 12:35
  • I remember people saying that, as an interpreted language, it was too slow compared to Perl, but now computers are a lot faster.
    – user2442
    Apr 17, 2011 at 12:54
  • 5
    The jump in usage in 2004 was because Google started using it heavily in 2005? Oct 25, 2011 at 15:02
  • 1
    I read in the book 'Googleplex' by Steven Levy that Google's first web crawler was implemented (badly) in Python by Page and Brin around 1996. It was re-written in C by one of their first employees, who had more experience in web development. So Python's association with Google goes back to their beginnings. Apr 15, 2012 at 12:52
25

I started using Python around 2001, and more seriously in 04/05, and more seriously a little later on. I can remember a few things happening that shifted the attitude towards Python and made it more viable as a web development language.

  • FCGI happen, and then WSGI. Prior to that you had to run Python scripts as ordinary CGI, which was not fast enough. mod_python was nowhere near as good as mod_php, the .NET CLR or the Java platform JIT VM.

  • Prominent Universities began teaching algorithm and other classes using Python, and book like 'Learn to think like a Computer Scientist' were published and became popular.

  • It became a top-tier implementation language at Google earlier in the decade, and this had an impact in how seriously it was taken.

  • Visible developers and standards developers, such as Joe Gregorio and Mark Pilgrim were both using Python to implement the prototypes of the Atom protocol. Pilgrim then wrote DiveIntoPython which helped a lot of people learn and pick up the language.

  • The 2.x branch became stable and implemented features such as Unicode support, good XML parsing, a new Garbage Collector, generators and functional methods, etc.

  • The biggest tipping point was Django - which became very famous along with RubyOnRails around 2005. The Django philosophy differed to that of Rails, and a lot of developers found it more suitable for projects.

For a language that was not backed by a large corporation (like C# and Java) the adoption and development curve are pretty typical and close to other open source languages such as Ruby.

Django didn't have as much impact on Python as Rails did on Ruby, as it was already being used a lot by scientists, mathematicians, quants, academia etc.

10

The reshuffle in TIOBE index in 2004 is down to Google changing their search. There really isn't much you can learn from TIOBE - it's utter nonsense. I don't believe there has been any sudden jump in Python popularity. Certainly not because one company happens to use it internally for some of their stuff.

4
  • 5
    If you don't trust TIOBE, you can try indeed.com. They show a steady growth in job postings for Python since 2005 Dec 17, 2010 at 6:46
  • 4
    Nonsense or not, there are a lot of programmers that had never heard of Python in 2003, and had by the end of 2005. Which is unusual for a language in its second decade. Dec 17, 2010 at 13:47
  • @RobertHarvey: seems that the trend in indeed is generic for web dev languages. Eg. indeed.com/jobtrends?q=python%2C+php%2C+ruby .
    – vartec
    Jun 27, 2012 at 15:47
  • @vartec Indeed it looks like steady growth (presumably at the expense of Perl growth) instead of any sudden jump. / Interesting to see how relatively poorly Obejctive-C - presumably Apple have hundreds of thousands of programmers working below minimum wage. Jun 27, 2012 at 16:25
8

Google was the reason. Only a handful of languages are mandated at Google: C++, Java, Python, Javascript, PHP?

Corporate backing is very important to a language's success. Examples:

  • C++: AT&T Bell Labs
  • Java: Sun
  • C#: Microsoft
  • Python: Google
5
  • 2
    You really shouldn't post an answer so similar to an existing one. Edit in anything you feel is missing.
    – Josh K
    Dec 17, 2010 at 4:06
  • 1
    @Josh, I voted you up, but felt it didn't say all I wanted to say, however I wasn't sure if people would like if I modified their answers.
    – grokus
    Dec 17, 2010 at 4:08
  • 6
    If it improves the quality of the answer, I guess should be fine. The feature's there for a reason.
    – nayan
    Dec 17, 2010 at 4:27
  • 2
    That's the idea of the site. ;)
    – Josh K
    Dec 17, 2010 at 5:15
  • I wish Perl to get corporate backup. Feb 23, 2015 at 11:19
1

The community around it reached critical mass. It's very hard to overcome the barrier of popularity, and it's not really unexpected that it happens very suddenly.

-1

There are some aspects of python that made it look, frankly, archaic. Things that made you feel like you were coding on punched cards on a mainframe. Like having indent spacing matter to code blocks. Little stuff like that caused a lot of folks to dismiss the language after a very brief look. I suspect that hurt it pretty bad in the early days. Especially in the crowd that had lived in those types of environments for years and wanted nothing but to get away from the mainframe and out to the web.

7
  • 4
    Indent scoping is a religious debate. Some people love it, others detest it, but it's impossible to give conclusive set of arguments for or against.
    – dbkk
    Dec 17, 2010 at 17:34
  • 1
    exactly my point. Those who detest it walked away from the language as soon as they realized it, and many bad mouthed the language to their peers. I think that hurt adoption for a long time. (TBH: it's one of the reasons I still to this date dread having to work on *.py)
    – cabbey
    Dec 17, 2010 at 21:07
  • 4
    In any modern language, you indent in order to make the structure clear, anyway. So dropping the braces is an obvious step forward. It has nothing to do with punched cards and I don't think the number of programmers having an experience with them is significant or was 13 years ago. Moreover, I hope most of them didn't get such a far-fetched association as you did.
    – maaartinus
    Apr 17, 2011 at 9:51
  • @maaartinus: It's an obvious step forward, right up until you run into an expression too long to fit on one line without horizontal scrolling. Then things get awkward fast. Aug 7, 2011 at 17:50
  • 1
    @Mason Wheeler: A better line-wrapping approach in your editor also helps: stackoverflow.com/questions/759577/…
    – retracile
    Oct 25, 2011 at 15:22

Not the answer you're looking for? Browse other questions tagged or ask your own question.