Win a copy of Transfer Learning for Natural Language Processing (MEAP) this week in the Artificial Intelligence and Machine Learning forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Paul Clapham
  • Devaka Cooray
  • Bear Bibeault
Sheriffs:
  • Junilu Lacar
  • Knute Snortum
  • Liutauras Vilda
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Piet Souris
Bartenders:
  • salvin francis
  • Carey Brown
  • Frits Walraven

Will Python Overtake Java as the Most Used Programming Language

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am thinking this one, What is your take on it:

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.
 
Rancher
Posts: 886
22
Netbeans IDE Oracle MySQL Database Tomcat Server C++ Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'll just comment on #2:

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.
 
Saloon Keeper
Posts: 6377
158
Android Mac OS X Firefox Browser VI Editor Tomcat Server Safari
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes and no.
 
Saloon Keeper
Posts: 21961
149
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.

Python got a lot of its initial impetus as a glue. It's easier to work with than shell scripts, but, as you pointed out, doesn't require a lot of overhead. One of the things that certainly helped it a lot was that Red Hat wrote its Anaconda auto-configuration system in Python and thereby included it as an essential component of every system boot. That's one of the biggest reasons why it's nearly universal on Linux and Unix systems these days. More recently, Python has been popular as a web language, although I'd argue that JavaScript and PHP are more popular.

But Python has its liabilities. It is not inherently object-oriented. Like PHP and JavaScript, it has achieved object orientation, but the mechanisms are not nearly as tidy as they are in a true OOP system like Java. OOP is very important when designing industrial-grade systems, since it makes very large systems more maintainable. Also, Python is at heart an interpreted language. Yes, like a number of other interpreted languages, it can be compiled-and-cached, but the compilation is done at runtime. You can literally sneeze at the keyboard, save the results as a ".py" file and only discover the problem months, even years later when that particular file is invoked and it all blows up. Java apps have to be compiled in advance, and are strongly type-checked at that time, so a lot of problems are caught and resolved before you embarrass yourself in production.

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.
 
Sheriff
Posts: 7051
184
Eclipse IDE Postgres Database VI Editor Chrome Java Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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?
 
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
To the OP - Do you have a CS degree or CS education ?
 
Sasparilla and fresh horses for all my men! You will see to it, won't you tiny ad?
Two software engineers solve most of the world's problems in one K&R sized book
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
    Bookmark Topic Watch Topic
  • New Topic