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.

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

Could people have come to Python via Django, like some came to Ruby via Rails?
–
Andrew GrimmApr 17 '11 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).
–
scriptocalypseApr 17 '11 at 16:30

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.

If you don't trust TIOBE, you can try indeed.com. They show a steady growth in job postings for Python since 2005
–
Robert HarveyDec 17 '10 at 6:46

3

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 WilsonDec 17 '10 at 13:47

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.

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.

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.
–
dbkkDec 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)
–
cabbeyDec 17 '10 at 21:07

3

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.
–
maaartinusApr 17 '11 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.
–
Mason WheelerAug 7 '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.
–
maaartinusAug 8 '11 at 3:43