Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

In pursuit of perfection

Can Java become the perfect technology platform?

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 6

I'm interested in analyzing Java as a platform, however; and in that context, the Java language actually plays a smaller role than the overall platform itself.

Having set the scope of the analysis, I now move on to define the most important features of any platform.

Perfect technology platform feature analysis

This list can either be very long and detailed or short and sweet. I'm going the short and sweet route. Interested readers can note that the very long and detailed list has a lot of words that end with "ility," also known as the ility matrix.

In my opinion, any potential candidate for the perfect technology platform must:

  • Be easy to develop against, yet provide multiple access levels (see below for more details)
  • Be stable
  • Be easy to deploy, in particular to client platforms; and when deployed operate in native mode
  • Have adequate performance and scalability as required
  • Have industry buy-in and be open standards based at least if not in name, then in spirit


How Java measures up

Now that I've defined a set number of characteristics, let's see how Java shapes up when compared to this list.

To be brutally honest, Java is not particularly easy to develop for. Simple projects are fine, but as projects grow in complexity, infrastructural issues cause more and more problems. A good example is working with Java 2 Platform, Enterprise Edition (J2EE) application servers. Proportionally, I spend more time tracking down issues such as classloading problems than debugging actual business logic coded in Java. In addition, the disquiet felt by programmers around Enterprise JavaBeans (EJB) in general (see my past article, "To EJB, Or Not To EJB?") is a clear warning sign that EJB may be simply too complex and has not taken root as the de facto persistence or business logic solution for J2EE applications. This point also speaks to tool support for the Java platform, as opposed to any weakness in Java technology itself. Bluntly speaking, Microsoft leads the way with Visual Studio, and Java needs to catch up.

My earlier reference to multiple access levels means allowing developers/users to work with Java technology as befits their level of technical expertise. Hard-core developers can use emacs/vi plus a command-line debugger to develop and deploy Java-based systems, while business analysts or even end users should be able to access and modify systems within reason using WYSIWYG tools.

Java is not particularly easy to deploy either. Sure, applet and Java Web Start technology help to some degree, but both approaches have their drawbacks—not least of which is requiring an up-to-date Java Runtime Environment (JRE) to be already deployed on the target client machine.

The Java platform is quite stable. I can't remember the last time a JVM crashed on me because of a JVM or core library bug. I'd rather build a business-critical application on the J2EE platform than on .Net.

Java's performance and scalability on the server side is more than adequate when applications are designed correctly. Swing performance on the client is just about adequate but still falls short of native speed. For resource-constrained devices such as smart phones, building applications in Java rather than using a native toolkit directly is a luxury rather than a pragmatic development decision. The extra layer imposed by the Mobile Information Device Profile (MIDP) on resource-constrained devices creates a notable performance lag over native applications, particularly at application launch time.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources