python simply not scaleable enough for google?

Vincent Manis vmanis at telus.net
Sat Nov 14 01:38:01 EST 2009


On 2009-11-13, at 19:53, Paul Rubin wrote:

> "Robert P. J. Day" <rpjday at crashcourse.ca> writes:
>> http://groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e?pli=1
>>  thoughts?
> 
> I'd bet it's not just about multicore scaling and general efficiency,
> but also the suitability of the language itself for large, complex
> projects.  It's just not possible to be everything for everybody.
> Python is beginner-friendly, has a very fast learning curve for
> experienced programmers in other languages, and is highly productive
> for throwing small and medium sized scripts together, that are
> debugged through iterated testing.  One might say it's optimized for
> those purposes.  I use it all the time because a lot of my programming
> fits the pattern.  The car analogy is the no-frills electric commuter
> car, just hop in and aim it where you want to go; if you crash it,
> brush yourself off and restart.  But there are times (large production
> applications) when you really want the Airbus A380 with the 100's of
> automatic monitoring systems and checkout procedures to follow before
> you take off, even if the skill level needed to use it is much higher
> than the commuter car.

OK. The quoted link deals with Unladen Swallow, which is an attempt to deal with the 
very real performance limitations of current Python systems. The remarks above deal with
productivity scalability, which is a totally different matter. So...

People can and do write large programs in Python, not just `throwing...medium sized 
scripts together'. Unlike, say, Javascript, it has the necessary machinery to build very
large programs that are highly maintainable. One can reasonably compare it with Java, C#, 
and Smalltalk; the facilities are comparable, and all of those (as well as Python) are 
used for building enterprise systems. 

I believe that the A380's control software is largely written in Ada, which is a 
perfectly fine programming language that I would prefer not to write code in. For 
approximately 10 years, US DOD pretty much required the use of Ada in military (and 
aerospace) software (though a a couple of years ago I discovered that there is still 
one remaining source of Jovial compilers that still sells to DOD). According to a 
presentation by Lt. Colonel J. A. Hamilton, `Programming Language Policy in the DOD:
After The Ada Mandate', given in 1999, `We are unlikely to see a return of a programming
language mandate' (www.drew-hamilton.com/stc99/stcAda_99.pdf). As I understand it, 
the removal of the Ada mandate came from the realization (20 years after many computer
scientists *told* DOD this) that software engineering processes contribute more to 
reliability than do programming language structures (c.f. Fred Brooks, `No Silver 
Bullet').

So: to sum up, there are lots of large systems where Python might be totally appropriate, 
especially if complemented with processes that feature careful specification and strong 
automated testing. There are some large systems where Python would definitely NOT be 
the language of choice, or even usable at all, because different engineering processes 
were in place. 

From a productivity viewpoint, there is no data to say that Python is more, less, or equally
scalable than <Language X> in that it produces correctly-tested, highly-maintainable programs
at a lower, higher, or equal cost. I would appreciate it if people who wanted to comment on
Python's scalability or lack thereof would give another programming language that they would 
compare it with. 

-- v






More information about the Python-list mailing list