Classic Java logo

There's a lot of guff going on about Java right now, so I'm going to try my hand at clearing the air. Obviously my grammar has already taken a beating judging from the tersely efficient but horribly structured heading.

Java is dying

Dying in this case is a relative term, but despite the disappointing failure of the write once, run everywhere model that was supposed to solve OS dependencies on the desktop, Java is very much alive and well. Anyone who's been in any corporate, large enterprise environment knows that Java is thoroughly entrenched and isn't going anywhere any time soon. Like a boss. Google also uses it for tons of stuff, to afford myself the use of some sophisticated computer science terminology.

Oh yeah and Minecraft. Addictive games like that push my buttons and stroke my OCD tendencies WAY too easily, so I'm simply refraining from playing it. Call it an act of self preservation.

Apple killed JavaME on phones

There are two arguments about Apple killing Java. The older one is that Apple killed JavaME by not bundling it with the iPhone. I'd argue JavaME was functionally dead long before Apple came into the picture. I'd also say that to be fair, Android, webOS and Windows Mobile Phone Enterprise Corporate Home Premium Edition Service Pack 7 have done their bit to nip JavaME in the bud too. Granted Android [kinda] runs a Java VM in the form of Dalvik, but its legal standing is dubious at best, and it's unrelated to JavaME.

I remember writing a to-do list for my Motorola RAZR back in the day. It was easy enough to understand if a LittleCumbersomeAndVerbose, but it ran so horribly slowly and took so long to load I gave up on it.

To break up this post, here are the girls from some sort of scientific railgun show, with a phone, a laptop and a cup of coffee. Apt, right?

Apple killed Java on the desktop

The other argument is Apple killed Java on the desktop by removing it from Mac OS X. They didn't kill Java, they merely deprecated their internally developed version and passed responsibility back to Oracle and the open source community to provide it. They're in the process of doing so.

For those who don't remember, Apple developed a custom version of Java starting with Mac OS X 10.0 as a way to more thoroughly integrate Java apps into the OS and to afford more visual consistency. If you recall, for a long time Java apps didn't really look like their host OSs at all (and in certain circumstances they still don't, at least not very well). The first Java I ever wrote was on my iBook in 2001, go figure.

Depending on who you talk to, Apple engineers were also forced to craft their own Java implementation given Sun's lack of interest in the platform. If that sounds familiar, this is just the apathy that Macromedia and Adobe displayed for the Mac with their Flash plugin that was so slow, unreliable and insecure that Apple was forced to write a container around it for Safari. Shipping an older version didn't help either, but hey!

Apple were small fish before and had to accept whatever they could from the high and mighty, now they are in a position to dictate terms… and Steve Jobs certainly holds grudges! As Adobe is realising now that Flash is not included by default in the MacBook Air, if Oracle wants Java on the Mac, it's up to them now to prove to Apple customers that they need it. It also puts native applications at an advantage, which is a convenient fact for Apple ;).

You know what’d be cool?

I'd actually be really interested in seeing a cross platform Java app store to prove to us that write once, run everywhere is not only viable, but preferable to vendor lock-in. They could sell Minecraft, and auto-update software like NetBeans and Makagiga. Oh yeah that reminds me, Makagiga is pretty cool. But that's for another post.

As I started this post by saying, Java is thoroughly entrenched in the enterprise. Whether or not Oracle has any interest in recapturing the consumer space where Java needs the most help is the ultimate question.