Dan Hamilton's shared items

Thursday, November 1, 2007

The Java Controversy - Much Ado About Nothing

It seems like every day there's a new controversy on the Mac web. Today its Java (well, to be fair this controversy has been brewing for some time as we shall see). Specifically, Apple's support (or lack there of) for Java 6. 

Now, in order to understand this controversy, you have to know a little bit about Java.

Java 6 is Sun's (the creators of Java) most recent release of the Java platform (and Java is alot more than just a programming language. A fact that adds to the confusion. A couple of years ago Sun, in an effort to capitalize on all the good buzz the Java programming language was getting, decided it would be good marketing to name just about anything Java or base just about anything released by Sun on Java. And don't even get me started on Javascript).  

Java 6 was proceeded by Java 5, which makes sense but, Java 5 was proceeded by...Java 1.4. Oh, yes - Java 5 is alternatively known as Java 1.5 (and among the Java community you will sometimes hear Java 6 called Java 1.6, but I digress).

The Java on OS X Timeline spells out the details but, essentially, when Mac OS X added Java 1.4 support, Java developers sat up and took notice. By the time support for Java 1.5 came about, many Java developers were downright in love with Macs. Its not hard to see why, they could have their Java development environment with Unix tools and still be a good corporate citizen with Microsoft Office on the Mac. Plus, it was a Mac so things tended to just work (at the same time Java on Windows had issues). 

But, then things started to go wrong. I'll let the Java developers speak for themselves first:


Gosling Dumps OS X

Time for Java developers to Leave OS X


To summarize the controversy, Apple is very far behind porting Java 6 to Mac OS X. The Java Developers also have some gripes with some of the more advanced features of Java 5 on the Mac - specifically anything that has to to with Graphical User Interfaces (GUI's). 

Of course, there are two sides to this story- first, Porting Java on OS X is hard and, Java 5 on OS X is Pretty Good.

So that's the issue and there is an all out revolt from all those Java developers who traded in their Windows boxes a few years ago for Macs. 


My day job deals with Java so I might be considered to have a horse in this race - I'd love to see Apple support J2ME which is Java for smart phones and other small devices. But I don't think its ever going to happen as I'll explain below. 

All of this "controversy" is much ado about nothing.

First, I think that this controversy over Java 6 is bogus since most companies don't run Java 6. In the corporate world folks tend to lag about one version behind. Consequently, nearly all of the (money making) Java programing being done is on Java 5 (nee, 1.5). Related to this is the fact that nearly all of this Java work is server side Java and so all the Java GUI madness does not apply. 


But more importantly, I think Apple could care less. Java support by Apple is just not a priority anymore.

I think Apple will be happy to say goodbye to all these complaining Java developers. Why? I think they have (maybe rightly) assumed that Java is a technology that has reached middle age and grown about as much as its going to grow. As a result, just doesn't make sense to support Java with all of Apple's weight anymore. A few years ago it looked like Java would become an important technology on the desktop. It has not. It is important on servers, but how many desktop applications are written in Java? I can think of maybe two that are worth anything (that comment will generate a ton of hate mail I'm sure). 


More over, the imporant technology for Apple is Objective-C with Cocoa on the desktop (and soon to be on the iPhone & iPod) and a WebKit, JavaScript, Ajax and Quicktime H.264 on the internet. Consequently, Java (and Adobe's Flash) is a direct threat to Apple.

I think Apple is more than happy to support open standards (e.g. Ruby, Python) that compliment its technology stack. But I think that Apple has made the decision not to support its competitors or technology it does not see as complementary to Apple technology. Java is both a threat (J2ME) and is not complimentary (J2SE - i.e. desktop java). 

Will I be surprised if Apple finally releases support for Java 6? No. But I just don't think Apple is going to go out of its way to support Java nor have Java support drive its timelines or strategy. Apple has clearly decided that it can loose several thousand Java developers when it is picking up several thousand consumers every day.

0 comments: