Python Popularity: Questions and Comments
brueckd at tbye.com
brueckd at tbye.com
Thu Dec 27 18:12:28 CET 2001
On Thu, 27 Dec 2001, A. Keyton Weissinger wrote:
> If it is as "X" as we all say/know/feel-in-our-hearts that it is, why is
> there so very little real commercial appeal? Why are there not industrial
> strength application servers being based on Python? Why are there not big
> public companies trying to sell products that improve upon Python in all its
> Python-ness? Why is company X not moving all their dreck VB/COBOL/PL/1/etc
> code onto Python instead of investing the huge amount of
> money/time/resources into moving it to Java?
To me, the fact that so many people are moving to Java at all means that a
lot of times those decisions have little to do with technology and lots to
do with hype (more favorably termed "momentum"). IMO Python *is* going the
direction you hope, and it is getting there at the right pace.
Python is gaining momentum: in the past year a ton of books have come out
(indicating more people willing to write about it and more publishers
believing that there are enough readers to make a book worthwhile) and
there are almost as many new ones on the way. There are bazillions of
SourceForge Python projects and many more that are just private projects.
Over and over we hear of stuff like "the new game X uses Python as its
scripting engine". I'm at my 3rd job where I "get" to use Python, and this
time not just one of our main products uses Python, but our *primary*
product is in Python. I can pick up any recent Dr. Dobbs' and Python is at
least mentioned, if not used, in every issue. Compare all this to a year
IMO c.l.py traffice *should* go down over time as the language matures.
Problems in the language get fixed, online and offline resources get
better, other groups form around specific aspects of Python (Zope, pygame,
various SIGs), and you're left with newbies who can't use Google, a block
of people who like to discuss new features, announcements of new stuff,
and porn spam.
As far as pace goes, I personally don't want an overnight Python
revolution. Apart from the fact that I like getting more done than my C++
and Java friends ;-), it would be harmful for everyone to jump on board
all at once. Java is a good example of this: industry heavyweights have
jumped on (helping momentum, to be sure) and have been able to pressure
the language into going really weird directions. Instead of more applets
we see Java venturing into the app server/middleware realm. What the
Worse, with too much hype you get people trying to use the language
inappropriately (using a screwdriver as a chisel) and they go away feeling
disappointed. For example, I'm overly biased against Java because I once
worked at a company that insisted on using it for their middleware. It was
a mess and I can't think about Java applications without getting queasy (I
was able to maintain some sanity thanks to Jython though). Python still
has some maturing to do, and with it will come the tools you want (compare
the number of IDEs available vs, say, 2 years ago. In 2 years they'll be
even better). That being true, however, the domain of problems for which
Python is well-suited right now is absolutely *huge*. In the realm of
possible applications, Python has a few niches where it pummels everything
else, an enormous block where it does very, very well, a smaller chunk
where it does just okay, and an even smaller chunk where it shouldn't be
used at all.
> Why should I have to settle on using Python only for prototypes? Or scripts?
> Or pseudo-code-to-be-converted-into-Java?
You don't, you choose to. Start with a small project, get it done, and
show your boss that it was quick to do, the code is clean and easy to
maintain, and isn't buggy. Repeat with a more important project. If you
can provide solid evidence that something is beneficial, management will
see the value in that. If they don't, and you honestly feel you've made a
good argument in favor of Python, choose to work somewhere else. I mean,
if Python is the right tool for the job and you've made a good case for
using it and they refuse with silly reasons, it makes you wonder how other
business decisions are made.
> Have you met the "average professional developer" lately? He/She is a
> Visual Basic "guru" of 3-5 (whopping) years experience. He calls open
> source "share ware" and states emphatically the following: "Why would
> I mess with THAT stuff? None of those open source cowboys code to
> 'Microsoft' standards."
Yay! Job security for us!
> Python will either grow into a real live alternative to industrial strength
> languages like Java or it will continue to be an esoteric language that I
> hesitate before putting on my resume.
I put Python first on my language list ahead of the "standard" languages
because it's a good way to get a feel for their development mentality,
it's an easy choice to defend, and it's usually what I would prefer to
use. Why would you ever work for a company where you had to be ashamed of
Python? A company might have very good reasons for not using Python, but
if they are incapable of at least seeing the value in it (and not
ridiculing you for listing it on your resume), then I suggest you look
elsewhere for a job.
When the roles are reversed, I'm skeptical of any developer's resume that
lists only the standard (C/C++/Java) languages. If they don't even mention
one or more of Python/Ruby/Eiffel/Dillan/etc (the "lesser knowns"), then I
grill them to find out why. Maybe it's just because they haven't used them
enough to feel comfortable listing them, which is okay. Or are they just
not curious? Do they feel that C++ is great? Are they just a sheep? Are
they unable to see the weaknesses in the tools they already use?
In either case, listing Python on there is a Good Thing.
More information about the Python-list