Java and Python

Peter Hansen peter at engcorp.com
Wed Mar 20 00:08:49 EST 2002


Ahmed Moustafa wrote:
>
> Peter Hansen wrote:
> > Ahmed Moustafa wrote:
> >>1. Where can I find an unbiased comparison between Java and Python?
> >>2. Will Python dominate?
> >>3. Who does support Python?
[...]
> > I think if you told us what your purpose is in asking the questions,
> > the answers would be more useful and direct.  _Why_ do you want
> > to know?
> 
> I'm interested in knowing which skills will(are) being looked for.

Thanks for the clarification.  In that case, these would be my answers
to you:

2. Python will not dominate, any more than any other language will.
Python is certainly in a growth period, but it seems unlikely it
will attain the mass acceptance of Pascal, C, C++, and Java in their
day.  (Not to imply that Java's day has passed... that much is 
evident from the number of bookstore shelves devoted to it!)
But who cares?  If you go where the mass unwashed go, you'll get
the same sorts of mundane and rote jobs as the mass unwashed do.

1. As others have said, there is no such thing as an unbiased
comparison of almost anything, let alone programming languages,
let alone two with such, uh, "dedicated" users as Java and Python.
Nevertheless, even if we could find such a thing, the response
would really depend entirely on the application area.  Clearly
Java is better suited for some applications, and Python for
others.  Without defining the type of work you want to do,
any comparison is meaningless.  (E.g. "Python programs tend
to be much more readable" doesn't matter if your job involves
writing Java on a Java team doing EJB stuff, unless you 
can get the whole team to use Jython instead.)

3. The best support for either Java or Python is probably in 
their respective newsgroups.  Python's is widely known as being
one of the most polite and helpful.  The language has been
around a little longer as well, and as it's not largely a 
commercial venture this might suggest that the "support"
question is a bit of a red herring.  Do you regularly contact
the Microsoft for help with VB, or Sun for help with Java?
(Or did you mean who is "backing" the language, ensuring
its continued viability.  The answer to that is twofold:
look at the 11+ year age of Python as historical proof
it's not a flash in the pan, and note it's _open source_
so it cannot, by definition, lose viability while people
support and use it.  You can always get the source.)

Here's my best answer to you:  I happen to hire programmers
to work on my team in a wireless telecom company.  Although
we happen to have chosen to use Python in addition to C and
a few minor languages like Javascript and Assembly, where 
necessary, the language we use is hardly the most important
thing.  

Communication skills are, first and foremost, the thing I 
look for in hiring.  This includes the softer social skills
like how to work in a team and put aside one's programming
ego.  Next are adaptability, as in how easily someone can 
pick up new skills and apply them effectively.  Design 
skills are useful.  Debugging skills are very valuable, 
though rather unfortunately rare.  Probably some others 
that don't come to mind in today's economy (we're not
hiring now :-).

Way, way down the list of things I look for in a resume
is the programming languages a candidate has.  Not entirely
unimportant, but useful only taken as a whole.  I don't care 
whether somebody knows Python, and have found and hired
only one such programmer yet (and not because he knew Python).  
The others had a variety of backgrounds including Java, 
C++, Delphi, VB, C, BASIC, assembly of various kinds, 
and so forth.  Those with only a single language, or 
maybe two, probably didn't get hired.  Those with a dozen 
were more able to demonstrate their flexibility to me.

When they were hired, they went to work learning Python.
About a week later, most of them were already contributing
in a productive way.  A month later any of them could
code Python as well as they could code in any of their
previous languages.  For the most part, I would have 
expected the same of them even if we used Java (though
perhaps with a somewhat longer learning curve).

The point is, I would never hire you or anyone _because_
you knew Python, or Java.  I would hire you because
I thought you were capable of learning it and using it
effectively.  I actually tend to shy away from people 
with great lists of "certifications" in languages because
it suggests to me they have difficulty learning and 
think it's a very impressive thing that they managed
to learn enough to write an exam which tests knowledge
of syntax but little about programming skill.

My suggestion then is to "get over" the comparison thing,
and make sure you know both, and throw in others as you
come across them and have opportunity to learn. This will
make you a better programmer, because of the learning and
generalization your brain will do, not because of the 
specific skills you have.

Not all companies hire in this way, of course, but all
the best ones do. :-)

-Peter

P.S.: If you are considering Python as a massive growth
area where ex-Java programmers can go to get lucrative
jobs, you're bound to be disappointed.  As in programming,
there is no silver bullet.



More information about the Python-list mailing list