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?

gnat
  • 21,442
  • 29
  • 112
  • 288
Eric Wilson
  • 12,071
  • 9
  • 50
  • 77
  • 6
    Historically, that's a pretty quick rise! – Macneil Dec 17 '10 at 04:10
  • 4
    This question was quite interesting. +1 – Tim Post Dec 17 '10 at 07:55
  • 2
    Could people have come to Python via Django, like some came to Ruby via Rails? – Andrew Grimm Apr 17 '11 at 08: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). – scriptocalypse Apr 17 '11 at 16:30
  • 1
    The essay [The Python Paradox](http://www.paulgraham.com/pypar.html) is from 2004. – stesch Apr 17 '11 at 08:38
  • Three robust reason of python popularity i.readablity ii.library iii.data science support https://researchandprogram.blogspot.com/2017/12/why-did-python-become-so-popular.html – Muhammad Faizan Khan May 31 '19 at 06:45
  • @MuhammadFaizanKhan These things are true, and account for the gradual increase of python usage over time. They certainly weren't all true in 2004/2005, far before data science was a buzzword and before NumPy/SciPy were standards. My question wasn't about the growth of python in the last ten years, but about the sudden rise in the decade before that. – Eric Wilson May 31 '19 at 14:38

6 Answers6

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.

Josh K
  • 23,019
  • 10
  • 65
  • 100
  • 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 '10 at 04:10
  • 6
    What do you mean by *fast* language? – Peaker Apr 17 '11 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 '11 at 12:54
  • So.. the next language to become popular is google go? – Nils May 07 '11 at 10:28
  • @Nils: Depends on how well Google backs Go. Is there a Go compatible GAE instance? – Josh K May 07 '11 at 17:34
  • Some interesting features appeared between 2.0 and 2.4. For example, generator expressions were added in 2.4 - following on from list comprehensions, iterators and generators, etc. The sudden change was, no doubt, due to Google - but I think Google adopted Python for a reason. –  Jun 19 '11 at 05:50
  • 5
    The jump in usage in 2004 was because Google started using it heavily in 2005? – Tom Hawtin - tackline Oct 25 '11 at 15:02
  • Python is not known to be particularly fast 'to execute' and it's a well known weakness, see http://programmers.stackexchange.com/questions/15468/what-are-the-drawbacks-of-python Java is considered more efficient in performance by last Google research. Cross-platform fast languages are most likely to be C and C++ in alsmot all tested contexts, but Python is fast to learn, setup/install, and write. The "fast" in the answer is misleading, you might want to make it more explicit. Also,as a sidenote, Python is still incredibly powerful even with this weakness. – Klaim Oct 25 '11 at 15:54
  • @TomHawtin-tackline do you have a link that shows exactly when Google started really using Python? – Tyler Oct 25 '11 at 18:33
  • I updated the question to clarify what I meant by “fast”. – Josh K Oct 25 '11 at 19:19
  • I don't see how it's faster to develop than in Java with Eclipse. It takes one click to create a new project and one click to export it plus you get code completion and type checking. In my view, the reason people use Python is because they don't know Java or are afraid of it. – siamii Dec 29 '11 at 01:15
  • 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. – dodgy_coder Apr 15 '12 at 12:52
  • CPython, the standard implementation of Python, does not execute as fast as PyPy, Cython, Stackless Python, or Shedskin-compiled Python, but as calling binaries from Python is easy, CPython doesn't need much more optimization, keeping its internals flexible. – Cees Timmerman Jul 26 '17 at 12:23
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.

nikcub
  • 497
  • 4
  • 5
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.

  • 5
    If you don't trust TIOBE, you can try [indeed.com.](http://www.indeed.com/jobtrends?q=python&l=) They show a steady growth in job postings for Python since 2005 – Robert Harvey Dec 17 '10 at 06: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. – Eric Wilson Dec 17 '10 at 13:47
  • @RobertHarvey: seems that the trend in indeed is generic for web dev languages. Eg. http://www.indeed.com/jobtrends?q=python%2C+php%2C+ruby . – vartec Jun 27 '12 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. – Tom Hawtin - tackline Jun 27 '12 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
Josh K
  • 23,019
  • 10
  • 65
  • 100
grokus
  • 7,536
  • 4
  • 31
  • 46
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.

cabbey
  • 208
  • 1
  • 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 '10 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 '10 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 '11 at 09: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. – Mason Wheeler Aug 07 '11 at 17:50
  • @Mason Wheeler Agreed, but what's the line length limit before you need to scroll? For me it's surely more than 80 chars and in the few cases the line gets longer it's mostly easy to refactor it in two shorter lines. When you stick to the recommended 80 chars per line, you have some problems. But 80 chars is what reminds me of punched cards. – maaartinus Aug 08 '11 at 03:43
  • 1
    @Mason Wheeler: A better line-wrapping approach in your editor also helps: http://stackoverflow.com/questions/759577/how-do-i-make-text-wrapping-match-current-indentation-level-in-vim – retracile Oct 25 '11 at 15:22
  • It's good that indentation is a requirement. It makes code much easier to read. – IssamLaradji Nov 17 '17 at 03:08