Mohamed El-Beltagy is a Java EE Consultant at Saudi Business Machines (SBM) developing and designing different enterprise Java EE applications using several IBM products including IBM BPM, IBM WODM, IBM WAS, IBM MQ, IBM MQ Workflow, IBM RAD, IBM RTC and IBM DB2. Mohamed has posted 2 posts at DZone. You can read more from them at their website. View Full User Profile

Java is a platform, not a product.

  • submit to reddit

Today I was reading about JDK 7 and the new language changes and I stumbled upon this InfoQ post. But what really grapped my attention is in the first reply to the post, here: '

Funny thing about Java, it's "what you can ADD to it" culture.', Vic C said

Few minutes earlier I was reading Alex Miller - Java 7 page and was thinking to myself the same, but in the good way. Do not get me wrong, I cannot think of living without Java.

My point is:
We have been adding, looking to add, and already added lots and lots of features to the language itself and yet keeping the backward compatibility. That's a hell of a work, I must say. It's very difficult to maintain that, for sure. Sun has been doing lots of good job.

But what about the new java developers? What about the old java developers?

Old Java developers would be having to learn more and more about the language and how it works and how to use it and its features. I do not complain about learning new things, but, it's the amount of knowledge that we; old java developers; need to learn. It's so huge and getting bigger everyday. But the only thing that makes me able to continue is that I am building over what I already have learned. It's accumulative. That's what makes it, for me at least, a little bit easy. But I have seen some developers who does not read articles online daily and does not keep up with what's new. Believe me, they are facing a tough time trying to catch up now.

And what about new ones? Imagine the amount of knowledge they need to learn. Imagine how much info, starting from OO concepts, variables and what they mean, and ending with..... mmmm... is there really an end? I can't see it. I have been in the area for over than 6 years now, and since I started and there are always lots of things new to learn, and that's exactly what keeps it interesting.. ;)

It's very good that we have what we have now. But instead of the current roadmap we have for the Java SE which is simply add-more; we need to have the current roadmap: 1- Stop adding new features and adding new language changes for a while. 2- Remove all things that are just kept for backward compatibility. At least incrementaly on two versions. 3- Release more two versions of Java SE that would only be having bug fixes resulted from the previous step, step 2. Which I presume will be a lot. 4- With a much more cleaner, simpler, smaller version of Java resulted from the previous 3 steps, we can go on with adding more stuff to the language.

I know that JDK 7 is almost done. So, what I am saying should be after JDK 7.
  1. Java will be easier to learn.
  2. Java will be more robust.
  3. JDK will be smaller
  4. New developers will be learning easily
  5. Old developer will have a chance to grasp the current changes made to the language. We need a pause to grasp. (I am talking about language changes, not JDK features.. ;) )
  6. We will be having another chance for going to the 'add-more' stage after taking a deep breath.
  7. JDK community will have a chance to really think of the new "required" changes to be added after that.

 JDK is not just a product that needs a new release every year with new features and changes. It's a 'platform' that lots of products are built-on. It needs to move with major changes slower.

Published at DZone with permission of its author, Mohamed El-beltagy.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Philopmetor Ptolemy replied on Mon, 2009/06/01 - 11:04am

I agree that with the time it’s getting harder and harder to keep up with all the changes but freezing them is not a solution. If Java will cease (or pause) acquiring new features that make it competitive with other tools – it will die.

Btw, it’s hard to find places where relevant Java news are sufficiently condensed and distilled. Many people have very little time during the day to spend on updating their knowledge - that’s why it’s important to have such sites. Places like Dzone, TSS, InfoQ and JavaWorld are all good but dispersed and contain too much irrelevant information.

I would appreciate if someone could recommend such mainly Java news site.

Mohamed El-beltagy replied on Mon, 2009/06/01 - 4:34pm

You are totally right Philometor. If Java stoped competing with other languages, it would die.

But look to the Microsoft and what they have done to VB and C++. They have stoped for a while releasing a totally different development platform and that did not kill it. On the contrary, VB 6 was dieing already. But with the VB.Net, Microsoft has revolved it and gave it a new birth along with C# and other .NET platform languages.

Sometimes, pausing for looking for the right road, is much faster than picking the wrong road. IMHO, I think this pausing time has come.

Alex(JAlexoid) ... replied on Wed, 2009/06/03 - 4:10pm

No actually Java would not die or go away for quite a while. It's like saying that Intel or Miscrosoft would die if they had a feature freeze.(Guess what? They had those periods, and both are "alive" and well.)

 Java has enough leverage to stay afloat for at least 5 years. That is, 2.5 two year release cycles.
Yes, the "competition" is gaining. But how long will the "competition" get there where Java is today?

For me, the killer feature is the scalability possibilities. Python will not have the same cross platform single memory space sclalability, Guido Von Rossum is against it, Ruby may have it on par within 7 years, MAYBE. Mono or .NET? I don't think that MS and Novell have their targets on the same nieche as Java.They would love to have that nieche, but the nieche does not want them there.

And guess what? Meanwhile, Java VM can still improve without any major changes.

So, what I am saying, is that Java should stop and look back and around. Drop some backwards compatibility and after move faster into the future.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.