views:

623

answers:

3

What is the biggest software development team that uses Python? I am wondering how well the dynamic type system scales to large development teams.

It's pretty clear that at Google they have C++ and Java codebases with thousands of developers; their use of Python is much smaller.

Are there some huge companies that develop primarily in Python?

+17  A: 

Youtube is probably the biggest user after Google (and subsequently bought by them).

Reddit, a digg-like website, is written in Python.

Eve, an MMO with a good chunk written in Python is pretty impressive as well.

http://en.wikipedia.org/wiki/Python_(programming_language)#Usage

http://en.wikipedia.org/wiki/List_of_applications_written_in_Python

Unknown
+7  A: 

Among many other Python-centered companies, beyond the ones already mentioned by Unknown, I'd mention big pharma firms such as Astra-Zeneca, film studios such as Lucasfilm, and research places such as NASA, Caltech, Lawrence Livermore NRL.

Among the sponsors of Pycon Italia Tre (next week in Firenze, IT -- see www.pycon.it) are Qt/Trolltech (a wholly owned subsidiary of Nokia), Google of course, Statpro, ActiveState, Wingware -- besides, of course, several Italian companies.

Among the sponsors of Pycon US in Chicago in March were (of course) Google, as well as Sun Microsystems, Microsoft, Slide.com, Walt Disney Animation Studios, Oracle, Canonical, VMWare -- these are all companies who thought it worthwhile to spend money in order to have visibility to experienced Pythonistas, so presumably ones making significant large-scale use of Python (and in most cases trying to hire experienced Python developers in particular).

Alex Martelli
+4  A: 

Our project is over 30,000 lines of Python. That's probably small by some standards. But it's plenty big enough to fill my little brain. The application is mentioned in our annual report, so it's "strategic" in that sense. We're not a "huge" company, so we don't really qualify.

A "huge company" (Fortune 1000?) doesn't develop primarily in any single language. Large companies will have lots of development teams, each using a different technology, depending on -- well -- on nothing in particular.

When you get to "epic companies" (Fortune 10) you're looking at an organization that's very much like a conglomerate of several huge companies rolled together. Each huge company within an epic company is still a huge company with multiple uncoordinated IT shops doing unrelated things -- there's no "develop primarily in" any particular language or toolset.

Even for "large companies" and "small companies" (like ours) you still have fragmentation. Our in-house IT is mostly Microsoft. Our other product development is mostly Java. My team, however, doesn't have much useful specification, so we use Python. We use python because of the duck typing and dynamic programming features.

(I don't know what a dynamic type system is -- Python types are static -- when you create an object, its type can never change.)

Since no huge company develops primarily in any particular language or toolset, the trivial answer to your question is "No" for any language or tool. And No for Python in particular.

S.Lott
You actually can change the type of an instance by assigning a new class to its __class__ attribute; see http://code.activestate.com/recipes/68429/ for an example where you might do this.
Kiv
That example shows the State design pattern implemented -- IMO -- badly. The state is conflated with the buffer itself; State should be a separate class hierarchy and an instance of State assigned to the buffer. Thanks for the link -- it's a good example of What Not To Do (tm).
S.Lott
And you can also change the inheritance (of non-native objects) through a similar attribute, I think it was __bases__.
Unknown