Johan Vos started to work with Java in 1995. He worked on the Java Linux port with the Blackdown team. He has been doing Java consulting and development for a number of customers in completely different areas. Over the years, he has been active in a number of Java-based community projects, e.g. OSGi, the Glassfish project and Johan is a DZone MVB and is not an employee of DZone and has posted 22 posts at DZone. You can read more from them at their website. View Full User Profile

Why Java? Because It's Everywhere

  • submit to reddit
As a Java developer, this discussion sounds familiar to you. Every now and then, you have to answer this question from customers, your marketing people, fellow developers,... . My personal answer on this question is shifting a bit from the "Enterprise advantages" to the "Mobile opportunities". I see the same shift in other pieces of software, including GlassFish v3.

One of the most important advantages that Java has over e.g. scripting languages is the built-in infrastructure allowing for transactions, clustering, scaling. These are mainly the benefits of the Java EE platform, and they can not be underestimated.
One of the characteristics that I tend to value more and more, is the transaction management. I can hardly imagine not to have a rollback of a complete method. If you call a method on a session bean, and something goes wrong at the very end of the method, you often want the system to be in the state it was in before the start of the operation. Easily solved with transactions in JavaEE, but I wonder how people solve this in other languages?

The value of this enterprise capabilities is still very high, and in my opinion, it is one of the most important differentiators of Java. Once you know how to deal with it, it saves you lots of time in development and production.

In the near and mid-term future, I expect that the "write once, run anywhere" principle becomes more important. For a long time, I considered the fact that Java runs on over 2 billion devices mainly a marketing trick. However, if you think about it, this is one of the major advantages of Java.
I was recently in a discussion about which mobile device or PDA would make it. Will mobile phones evolve in the direction of PDA's, or is it the other way round? Very difficult to predict (at least for me). The thing is, I don't have to worry. They both run Java. The same language I use for enterprise software development is used on mobile devices. Of course, the external API's that are used are not always the same. But the Java syntax, mainly the java.lang package and the way of programming are the same. As Java developers, we don't have to worry about the outcome of the battles between the mobile phone companies.

Using the same programming language on high-end backend servers and resource constrained mobile devices is not trivial. Being first class in both domains, is far from trivial. But the Java language is doing a great job in both areas.
One of the major characteristics of the current GlassFish v3 software is that it starts up quickly. After less than a second on a laptop, you don't have all the functionality that you typically expect from enterprise servers. But in many cases, you don't need all this functionality. You just want the same principles to apply whether you are working on an enterprise project or on a mobile project. And that is where GlassFish v3 is heading to. The core is the same for mobile and enterprise, the programming methodology is the same. GlassFish is moving from the Enterprise to mobile (without ignoring the enterprise). OSGi , on the other hand, has been moving from mobile to the Enterprise. It is not a coincidence that GlassFish and OSGi have met each other.

Published at DZone with permission of Johan Vos, author and DZone MVB. (source)

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


James Sugrue replied on Wed, 2008/06/04 - 9:00am

I agree Johan. We're looking at a very interesting trend in Java where what we write really will be everywhere. It's good that we're getting there at last. I think the fact that people have finally taken notice of OSGi has really helped us here.


Mike P(Okidoky) replied on Wed, 2008/06/04 - 4:35pm

With mobiles becoming pocket desktops, and the same J2SE being able to run on those, Java truly is the grand master overlord of portability.  WORA was already a reality pretty much since day one, and these days we can do it at an uncompromised speed competing with any alternative technology or language.

The EeePC for instance offers us a (not that fast mind you) very portable fully functional laptop almost small enough to fit in your sports-jacket's pocket.  Scale it down a bit more, come up with some sort of fold out keyboard, and you have a pocket desktop, with Java of course.  None of that silly J2ME or some other half crippled Java flavor, no, full blown with Java2D and 1.6, 1.7, with *all* the classes and utilities.  Personally, I wouldn't invest any effort in any of those less-than-full-Java platforms anymore.

Comment viewing options

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