How your company think about python?

Terry Hancock hancock at anansispaceworks.com
Mon Aug 19 03:44:34 EDT 2002


Hi,
I can answer this for two organizations, my own tiny company
(which is just my wife and I right now), and my "day job"
which is for a NASA-contracted private research institute,
with about 50 science staff and 150+ engineering and support
staff.

From: d2002xx <d2002xx at myrealbox.com>
> I've posted a similiar message in comp.lang.java.advocacy, just for
> curious, but it seems that most people don't know about python...

Python is mostly "known of" but not yet "known" among the
science staff. The engineering staff know Perl and Java
much better.  I came to know Python originally through a
game project which I was doing for fun, but I quickly came
to love it.

Other institutions (with whom we collaborate / interchange
information) have taken the lead with Python already, so
we're playing catch-up so far.  It is a project requirement
for some staff, and is growing in popularity with a few
early adopters.  Jython is also popular because of the large
amount of existing Java code. (Most project work here is in
Java).

> Would you tell me how your company (or your boss, colleagues) think
> about python? A possible next-generation mainstream? Or just another
> script? Or they even never heard it?

I'm personally making an effort to promote Python as a
replacement for proprietary data-processing languages
like IDL (the licensing fees cost upwards of $50,000/year,
IIRC). I've programmed in IDL and quite liked it, but I
consider Python to be much better designed. I like the
object-oriented design and the advanced data structures.

Python itself is weak on serious number-crunching tasks,
but popular extensions such as Numeric, SciPy, and PyRAF
seem to rectify this deficiency (IDL is still faster on
some tasks, though). I have yet to run any serious tests,
though.  I have this on my to-do list for the next few
months, though.

In our own company, the ease and rapidity of development that
I have found has made me decide to go more or less end-to-end
with Python (understanding that C or Java underpinnings may
be needed in different places).  In this context, I am the
decision-maker, so I'm free to go on instinct, basically.

We're also heavily relying on Zope, but it gives me the
creeps, so I don't know whether to trust it completely.
It certainly hasn't been as positive an experience as
Python itself has.

The thing is, I have to do a lot more than just program,
so I don't want to have a huge toolbox of different
languages to remember -- I'd rather have as much as
possible in one language so I don't have to spend a lot
of time re-learning languages (it's quite common for me
to have to stop programming altogether and work on something
else, like marketing or hardware for months -- during which
time, I'll forget working knowledge of programming, which
has to be refreshed when I get back to it).

> Also, If your company wants to create a new software, will you
> recommand them to use python even if your boss/colleagues don't know
> about it? How you tell them the benefits from python? Why or why not?

For my institute employer, the advantages of Python
are:

1) No license fees
2) Completely free software development
3) Worldwide standard platform
4) Efficient object design and rapid development
5) Short learning curve
6) Good scientific and image-processing libraries and modules

The first three are as opposed to IDL and Java, which
have various licensed components and thus incomplete
adoption.  They are shared with Perl, which is a somewhat
solid competitor here. Perl and IDL have short learning
curves too, at least for simple things -- but it gets
sticky after that. (IDL is a baroque mess of procedures,
with poor object integration, BTW -- it's basically a
case of just shoveling tons of procedures into a collective
bucket -- it's quite easy to get lost).  Perl may do
slightly better on scientific libraries (I haven't
really checked, but it's been in use longer, so it
seems likely). Scientific programming is IDL's raison-d'etre,
so it's going to be a bit of a hard sell.  On the other
hand, it's not that easy to maintain IDL code.

As far as selling it to the management, it's kind of
my job to evaluate this stuff. Also, the people I report
to are scientists who use programming in their work --
so I can explain the advantages as I would to you. My
immediate employer isn't really a programmer, but she'll
probably take my intro to Python class when I do it. She's
used IDL and was considering Perl, but is figuring on
skipping it if I can make a strong enough case for
Python.

Mind you, Perl, Java, and C/C++ aren't going away -- we'll
continue to support a lot of platforms. Even IDL will
probably continue to be used for sometime -- but we
may be able to reduce the number of seats we pay for.

For my own company, Python's main advantages are similar,
but I'd put more weight on ease of use and free software
maintenance. I find Python really, really *easy*, 
compared to any other language I've tried.  And the
ease of use doesn't fall off rapidly with project size
as it does with "script languages" (I can't really think
of Python as a scripting language, myself, though it
can be made to do that job).

Python provides nice library modules for doing all
the common sorts of network connectivity and database
interfacing that I want to do and provides a good basis
for scientific computing. Since I'm in the (perhaps odd?)
position of integrating science and engineering apps
into web and e-commerce applications, Python seems
extremely appropriate.  The short learning curve means
being able to take advantage of volunteer interest and
students to work on real projects. If our core software
is also in Python, it's easy to interface and requested
features can be added relatively easily.

Or so I hope. I'm betting the farm on it, anyway. ;-D
We still have a long way to go, though.

Cheers,
Terry

-- 
------------------------------------------------------
Terry Hancock
hancock at anansispaceworks.com       
Anansi Spaceworks                 
http://www.anansispaceworks.com 
P.O. Box 60583                     
Pasadena, CA 91116-6583
------------------------------------------------------




More information about the Python-list mailing list