As others have said, Cobol and Fortran are still alive in some senses.
I believe, this is personal opinion, and I could be wrong, that Java has seen its peak of popularity.
In practice, hardly anyone writes Java anymore. What they write are programs in Java that use a huge ecosystem of libraries. Learning the library APIs is far more difficult than learning Java itself. Java can be completely described in a very thin book. There are many shelf feet (meters, etc.) of books on using Swing, AWT, Enterprise Beans, Hibernate, etc.
Java is showing its age. The way they graphed on generics is ugly, the concept of generics is wonderful, but the syntax is ugly and confusing. A newer language can include them from the start and be a lot nice.
A more fundamental problem is that Java's support for multi-processor multi-threading is primative. Sure, it works, and Henry wrote a wonderful book on it. But doing proper threading in Java puts the work on the developer. Its tedious and error prone.
There are quad core processors selling for under $100 retail. In the near future, serious machines will have 32 or 64 processors. Using them effectively means using all of the processors, which means making threading dirt simple for average programmers.
Jeanne Boyarsky wrote:How is using libraries worse than writing them yourself because what you need isn't available?
That is not what I said, or what I meant.
What people do today is write a little bit of Java code to glue together big libraries, frameworks, etc.
The Java part of it is really not all that important. You could replace the Java with some other language and not see much if any difference.
I have not seen any library or framework that can address the hard task of making a program scalable in a multi-processor world.
sriram sankar
Ranch Hand
Joined: Feb 26, 2008
Posts: 43
posted
0
In our company there are couple of projects we use ruby, looking at the simplicity of the language makes those ruby developers look more efficient .
Of course this is good for small projects, i haven't seen a big robust application using ruby.
Java can be completely described in a very thin book
I really doubt it can be described in a small book. However I would agree that in relative comparison to books on java frameworks, the java book would look thin, if that is what you meant.
I have not seen any library or framework that can address the hard task of making a program scalable in a multi-processor world.
A library / framework within java itself or outside of it ?
Deepak Bala wrote:I really doubt it can be described in a small book. However I would agree that in relative comparison to books on java frameworks, the java book would look thin, if that is what you meant.
Get a copy of the original O"Reilly Java in a nutshell, its tiny.
There were not a lot of libraries back then. The language itself has not changed much (other than generics) but the libraries have expanded to be too big to document.
Deepak Bala wrote:A library / framework within java itself or outside of it ?
The problem is that no library can make algorithms be parallel. So to get real scaling for multiple core machines, you need a new approach, which is something that Scala does.
As long as you are writing "for (x : y) ..." then it is inherently sequential, and you waste all the multiple cores.
java.lang.IllegalArgumentException in CrystalBall.class at line 225: not in your lifetime, don't worry
Caused by: java.future.NotKnownException
at com.ankit.CrystalBall.findAnswer (Unknown Value)
at uncertain.unpredictable.Life (BigBang Source)
at live.life.to.Fullest (True)
at earn.money.buy.Hummer (Goal)
at tv.show.Friends (Rock!!)
The program exited abruptly...
I agree that in very near future, it will come to an era of many cores processors, all of the languages that cannot utilize many cores easily will be less popular.
Or will there be NewJava language that correct all wrongs and makes multi-core programming easier?
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Ankit Garg wrote:java ankit.CrystalBall "when will java die"
java.lang.IllegalArgumentException in CrystalBall.class at line 225: not in your lifetime, don't worry
Caused by: java.future.NotKnownException
at com.ankit.CrystalBall.findAnswer (Unknown Value)
at uncertain.unpredictable.Life (BigBang Source)
at live.life.to.Fullest (True)
at earn.money.buy.Hummer (Goal)
at tv.show.Friends (Rock!!)
The program exited abruptly...
Hope, you are scared by seeing new technologies like Ruby, Rails, .... But as per my expectation, JAVA having good and stable future. The tools/frameworks like hibernate, iBatis, Spring ... soon are designed and developed on JAVA only. But you need to keep on learning the new tools and frameworks, if you are working with JAVA. Even, SUN is implementing new technologies day-by-day.
You can understand, If you observe the blue prints of Sun.
VAMSI MOHAN.V
(SCJP5.0, IBM Rational Solution Designer, IBM Rational Architect, IBM RUP Designer)
Kengkaj Sathianpantarit wrote:Or will there be NewJava language that correct all wrongs and makes multi-core programming easier?
A wise man once said that its hard to make predictions, especially about the future.
There will be a NewJava, one could claim that Java is NewSmalltalk. Or perhaps new C++.
But one of the problems of Java is that when it was written, they had to compete for mindshare with C, so rather than making everything an object, as Smalltalk did, they kludged in int/byte/float. Which was a winning strategy in the late 1990s.
So if NewJava has to keep too much of old Java for compatibility and ease of retraining engineers, then it may not be able to make the jump.
For decades, I've been using OO languages and RDBMS packages. Its a bad fit, and we should have given up on it long ago. But everyone still uses SQL, and puts up with assorted kludges. The OO dbms packages have never gotten any traction.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.