Considering getting into Python... Any Pros-Cons?

Bill Tate tatebll at aol.com
Mon Nov 5 09:30:47 EST 2001


Cliff Pruitt <mail at cliffpruitt.com> wrote in message news:<B80A5A66.125F%mail at cliffpruitt.com>...
> Hello, I've just started looking into Python and am considering delving into
> it a bit.  My main reason is that it seems to be pretty portable across
> platforms.  I work on a Mac for the most part but I do work on windows
> machines durring the day and it would be fun (I think) to develop for both.
> So far I've downloaded the Python files and flipped through a little bit of
> the documentation but haven't gone into much detail with it.  I'm wondering
> if anyone could sort of give me a good idea of what Python is really capable
> of and maybe more importantly what it's NOT capable of.  The extent of my
> programming experience involves VBScript for the web.  If i had, say, a
> microsoft access Database, is python capable of displaying records and doing
> searches on that database?  Maybe more importantly is it capable of adding
> records?  Out of curiousity, what are the nicest or most complex
> applications you've seen done in Python?  A lot of what I've read referrs to
> Python as being useful as "glue" to hol dother languages like C++ and others
> together.  I dont know any of those so I'm wondering if Puthon will really
> be somethign useful to learn or not.
> 
> Your insight is greatly appreciated.
> Thanks.

Cliff,
Its been my experience using Python - internet, intranet, GIS, DB
programming, gluing up, etc.,etc., that I have a hell of lot fewer
grey hairs if I tried to do them using Python.  The best I can tell
you is the app's I've worked on were not toys, required real computing
power and needed to be maintained for the long haul - the latter is
NOT a trivial issue.  When I use Python, I know I have an insurance
policy that goes along with it - its called C & C++.  I've done
everything I've ever needed to do (most often with a DB backend)either
using Python alone (frequently the case), using freely-available
python extensions or building my own python extensions.  Sam Rushing's
windll and calldll are great examples of the kinds of tools freely
available to python developers for extending python.  SWIG is another.

While I routinely use Java, the fact is Java does not give me the same
sense of security as I have with Python.  I need to know Java because
its widely in use, but I sure as hell don't stake a claim that I can
do everything using Java.  Java hides a lot of details from the
developer which can easily give someone a false sense of security that
an application will ultimately perform as expected.  And the
cross-platform issue with Java is not something I would take on blind
faith.  The fact is java on the client sucks, no matter how you try to
spin it.  Yet I have no such constraints using Python or say a cross
platform framework like wxWindows (C++) and wxPython (wxWindows for
Python).  This is an excellent framework for cross platform
development and you don't have the associated cost - check out what
Kylix is going to cost you.

Like most folks, you frequently have to deal with applications where
you are forced to deal with multiple-language codebases.  Some
critical and core piece of functionality is implemented say in C or
C++ (for whatever reason)and your new application requires access to
this functionality.  Java's JNI is not a guaranteed solution either. 
Its my experience that the java "guys" turn to the python guy to get
it done.  Bottom line, my comfort level is substantially higher that I
can solve the problem in whole or part using Python or using python
extensions.  I don't want to even think about what happens if I need
to access a commercial COM library using Java.  Its a snap using Mark
Hammond's PythonCOM module if the COM component implements IDispatch
(which is often the case).  The alternative of simply re-implementing
in J2EE is often not an option and idiotic from a business standpoint.

Bioinformatics, cheminformatics, gaming, artificial intelligence all
are dominated by industrial strength C and C++ libraries.  I think you
will find that the pulling the pieces together using Python stands
out.  Bear in mind that Python also has an excellent numerics module
as well.

Python isn't you only solution, but given my choices, its definitely
part of the mix.



More information about the Python-list mailing list