1. Python requires no "set up." A full python environment is already on every Linux machine, and on Macs. Whereas Java requires a substantial amount of setup. So if you want to get started with python programming, just type python at the prompt. Now. That's it. To start with Java, call someone who knows it.
2. The systems written in Java that we have purchased all suffer from the need to have particular versions of Java installed, and thick clients of these systems also have that requirement. Support of Java appears to be expensive. We do not yet have a similar number of python systems, but no one is expecting configuration management to be an issue with them.
3. Python has its own idiosyncrasies. In Java, every object must be a representation of some class, but in python the "variables" are of a unique flavor. Variables do not represent objects [cf. object: something in memory that has an address] nor are they pointers, nor are they references. It is best to think of them as temporary "names" for an underlying reality, much like any fiction or cartoon character.
4. Python is not so popular because it is a little bit difficult to understand but it is more dynamic than java,which is the upmost demand in any of the software.
I've been writing in Java since 1999 and most of the things I've written still run in Java 8, I've not moved on to the new versions as Oracle tries to make Java be C#. It all depends on what the developers do with the features of the language. Use features from the latest and greatest, and you have to have the latest and greatest or if features get deprecated and eventually removed, you have to use a legacy jvm.
Out on HF and heard nobody, but didn't call CQ? Nobody heard you either. 73 de N7GH
There's something fundamentally wrong is all the systems you have purchased "need" to have a different version of Java installed. Granted, Oracle did remain hung up on Java 1.4 for an inordinate length of time, but Java is very specifically designed for backwards compatibility and for almost all even halfway competently-designed products, running a product designed for Java 5 under Java 11 should not be an issue.
Python is, I like to say the "Visual Basic" of Linux. Consider the reputation of Visual Basic, if you will. It was designed as a simple language that beginners could easily learn and use. It was not designed for robust applications, although it often ended up in systems where robustness was needed. It was an interpreted language with all the liabilities that you get from such environments.
Again, Python does not scale as well as Java, to the point that some major players in the Python field have had to design their own toolsets to make Python more maintainable at scale.
I've saved the worst for last, however. Python underwent a radical transformation when it moved from Python 2 to Python 3. The linguistic changes are so great that Python 3 took over 10 years to become the "official" Python, with Python 2 finally becoming officially deprecated only this past January. I recently converted an old script from Python 2 to Python 3, in fact and the tast was pretty labor-intensive in both major and minor ways. And that's despite the parallel support that the last decade has had to offer. It's roughly on par with the VB-to-VB.Net debacle.
Python has its utility. But it also has some serious liabilities. So does Java. In the case of Java, as you said, the setup costs, both for Java and for Java projects, are not trivial. I would not recommend using Java for one-shot quick-and-dirty applications. In fact, I usually use Python unless I need lots of regexes, in which case I use Perl. But Java provides security, performance, standardization and flexibility that Python does not. Start-ups will often proof their concepts in Python, but when you have an established business like a bank, the only serious contender to Java for truly robust and future-proof code is COBOL. And we've all seen how popular COBOL has become.
Bjoke: A "Bully Joke". A Statement or action made with malicious intent - unless challenged. At which point it magically transforms into "I was just funnin'" or "What's the matter, can't take a joke?"
Vijay Singh Khatri wrote:1. Python requires no "set up." A full python environment is already on every Linux machine, and on Macs. Whereas Java requires a substantial amount of setup. So if you want to get started with python programming, just type python at the prompt. Now. That's it.
The same can be said of Perl or awk, but who programs full systems in them?
All things are lawful, but not all things are profitable.