Python and Java Compared?

Bob Kline bkline at rksystems.com
Mon Apr 2 12:09:25 EDT 2001


"Dry Ice" writes:

> First, I'd most like to hear from those who have some balanced
> experience at BOTH, as opposed to 'fans' of one or the other who
> have only dabbled in a secondary effort.
> 
> I would like to select one development environment to manage
> everything in a cluster-server project, from accounting-database to
> server CGI to distributed computing jobs.
> 
> Platform: Linux, and a few Windows machines- at least at the
> beginning.
> 
> If you had to choose...

I've used and like both languages.  Both have a fairly clean design,
with a wide variety of library support for important areas such as
networking.

Java has somewhat better support for DBMS work, with lots of JDBC
drivers available.  For example, Oracle makes a native driver which does
not require the SQL*Net package freely available.  There's also a fairly
good open-source TDS driver available for connecting to Sybase and MS
SQL Server databases.  Python isn't too far behind in this area, though.

For straight CGI I find Python easier to get things up and running
quickly.  Both have solutions (see Zope and JSP) which don't require
launching a new process for each request if you need this for
performance.

Both languages have good support for the emerging XML recommendations.
Java is the leader here, with Python close on its heels.

I don't have enough experience with GUI programming under Python to
assess it.  Java's GUI classes are powerful but very resource-hungry,
and it has taken Sun a long time to shake out some of the bugs.  On
balance it has been my experience that the Python development team has
been more responsive than Sun in addressing bug reports.

The fact that Unicode support was built into Java from the start is an
advantage for some applications (the language's character type is 16
bits wide).  Python also has excellent support for Unicode, though not
quite as tightly integrated.

Python has better support for regular expression handling.

At present, it's easier to find Java programmers than Python programmers
to maintain your code (though a good programmer should have no
difficulty learning either language).

Both have facilities for extensions (in both directions).

In theory, Java should have an availability advantage for client-side
programs, since there's a JRE installed on most machines out there now.  
In practice, this advantage is pretty thin, because for one thing the
variety in versions, quality, and conformance would end up severly
restricting the portions of the language and libraries you could use,
and for another thing if you had to rely on the runtime engine being
present on every potential client machine you'd probably end up
installing it anyway.

I wouldn't rule out using more than one language.  The idea that there
is one perfect tool for every job always turns out to be an illusion.  
If you were to find, for example, that on balance Java will meet most of
your needs better than Python (because, let's say, for the kinds of
tasks you're doing Java provides better performance), you would still
want to use Python for scripting jobs.

Also, you might want to take a look at J[P]ython, which integrates
Python with the Java platform (though I haven't used it).

Finally, Python has a newsgroup/mailing list with a very healthy sense
of humor.  Don't underestimate this factor in your deliberations.  :->}

Hope this helps.

-- 
Bob Kline
mailto:bkline at rksystems.com
http://www.rksystems.com





More information about the Python-list mailing list