The Industry choice

Paul Rubin http
Fri Dec 31 03:32:07 EST 2004


"Sridhar  R" <sridharinfinity at gmail.com> writes:
> What makes such companies to choose Java over dynamic, productive
> languages like Python?  Are there any viable, technical reasons for that?

I think you have to be more careful when you program in Python.  Java
is statically typed and can do all kinds of compile time checks that
catch errors which can crash your Python program after it's running.
The cure in Python involves very thorough testing, and it often means
more test-debug-edit cycles than you'd need with static typing.  It's
also possible to miss stuff--not just type errors, but uncaught
exceptions, errors due to misspelled variable names (Python lacks
declarations), and so forth.  Some Pythonistas respond with a blurb
about test-driven development, but really, the idea of programming in
HLL's instead of assembler is that the language is supposed to take
care of stuff so that you don't have to.  Java code is larger and
takes longer to write, but has a higher chance of working properly
once it compiles and passes basic tests.  (Of course you still have to
test it thoroughly, but you'll tend to hit fewer errors once you've
passed the initial and somewhat high hurdle of getting the code to
work at all).

Basically, highly-skilled programmers can be very productive with
Python, maybe more productive than they can be with Java.
Medium-skilled programmers, which is what the industry is full of, can
mess up very badly with a language like Python.  With Java, it's
harder to mess up too badly.

I'm involved in a development project for something that's security
critical and has to be reliable.  The implementation language hasn't
been chosen yet.  Python and Java are both possibilities.  I'm fine
with the idea of using Python for demos and prototypes.  For the
production system I think we may be better off using Java.
Reliability of the final product is more important than rapid
implementation.



More information about the Python-list mailing list