[Slightly-OT] Wasn't Google supposed to be "avid Python-Users" ?

brueckd at tbye.com brueckd at tbye.com
Thu Feb 7 10:01:28 EST 2002


On 7 Feb 2002, Paul Rubin wrote:

> As much as I like Python, I don't see it working so well in the kind
> of large, real-world projects that Java works pretty well in:

Why? You listed some cases where you don't think it would work well, but
didn't give any reasons why you think that. Give us some insight into your
line of thought. :-)

>   - big codebase (>200K LOC) being developed/maintained by lots (say
>     20 or more) of people
>
>   - Program stays around for years but developers come and go.
>     Average turnover is maybe 1 programmer per month.  So there
>     are always people hacking on the codebase who aren't that familiar
>     with it.
>
>   - The programmers are what you get through normal industry-style
>     recruiting processes, i.e. they are mostly pretty good, but not great.
>
> In this environment, C is an unholy nightmare, C++ is somewhat better,
> but Java seems to do a much better job than either of keeping
> complexity under control and avoiding crazy application bugs.

Agreed, but to me the above 3 are examples of when Python would shine:

- Big codebase - in cases where we've had C, C++, or Java code and
equivalent Python code, the Python version has tended to be anywhere from
2 to 10 times shorter. So a huge project can be a medium project just be
virtue of the language. It's also been my experience that the code
requires fewer developers, but I don't have a good feel for how many
fewer.

- Program stays but programmers go - the smaller codebase pays of hugely
here, as does the general cleanliness of Python code. In the large Java
projects I've worked on, the biggest struggle was coming up to speed on
the jazillions of different files in million different directories, each
with very verbose code. On the most recent Java project I was involved in,
I remember that even after being there for several months I was still
doing lots of "Browse for symbol" type lookups - all the code fluff in
Java made it very hard to keep in my head.

- Good but not necessarily great programmers - to me this has less to do
with language and more to do with hiring processes and development
processes. In the specific case of Java, there seem to be (well, in my
limited experience at least) lots of mediocre-to-poor Java programmers
(possibly because they became Java programmers due to the hype surrounding
it) and I've fared better by hiring experienced C/C++ programmers and
having them learn Java than by hiring programmers who are just good at
Java. That being said, Python is still benenficial for the above reasons -
few LOC, easier to get a handle on the code, clearer code - all things you
want if you have less than stellar developers. Being able to fire up an
interpreter to try stuff out also encourages them to do more incremental
testings. Python helps bad programmers be good, and good programmers be
better.

One last comment: I haven't found Java to work all that well in those
"large, real-world projects" you mentioned. Better than C and C++ in many
cases, but as the projects got bigger Java seemed to stop solving problems
we would have had in C++ and instead began replacing them with different
ones (the proliferation of files and directories was a big one).

 -Dave





More information about the Python-list mailing list