"Sridhar R" <[EMAIL PROTECTED]> 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. -- http://mail.python.org/mailman/listinfo/python-list
