Java — ball and chain?
Posted in technology on January 17th, 2007It isn’t that long ago that I sneered at C programmers as I leapt tall buildings and turned water to wine with Java, but consensus is turning rapidly. The legion of slashdot — who always proclaim the death of a technology with every new birth — doesn’t concern me, but it does rattle my cage a little when Apple CEO Steve Jobs says, “Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain.”
It isn’t that long ago that Apple touted its strong support for Java so this represents a whiplash of sorts, but I respectfully disagree with Jobs. In case I appear entrenched, consider my article on a successful transition from Java to Ruby on Rails. When new technology permits new or better ways of doing things I’m on board.
The heavy weight of Java is more appropriately its breadth of APIs to enable a programmer to integrate software with obscure hardware devices and algorithms. The production of algorithms used to be the bread and butter of software development but for years Java programmers have had a cornucopia of third party APIs, many of them free, to select. When you program in Java you stand on the shoulders of giants, so to speak.
As much as I like ruby and other innovative languages, I’m averse to them fundamentally as a staffing issue. Code has a much longer life than the typical staff appointment for its development.
But the subtext of Jobs’ statement says more about Apple wishes to position the iPhone as a product more than what he thinks of programming languages. Apple has been a bit dodgy about third party application development for its newest gadget. It is based on Mac OS X and could conceivably support Java as well as a host of other application tools but Apple seems intent to dictate the iPhone’s function. As much as I disagree with this choice as well, the pot shot against Java is becoming more common even though it is unfounded.
Update (8 March 2007): See some notes from an Apple engineer who defected from the Java camp. He makes a lot of good points and offers the delicious line that, “[T]he [Java] APIs are too clumsy to code to, and compared to any decent Mac app, the results look like a Soviet tractor built on a Monday.”
Update (1 May 2007): Michael Kay offers up a gem of wisdom (xml-dev mailing list, Sunday, 1 Mar 2007 23:44:48) on the matter of standing on shoulders and algorithms:
[W]hen you write in Java there are teams of people everywhere helping you. That’s why you get faster development, and that’s why you can spend your time thinking about better algorithms rather than debugging the plumbing. That’s what object-oriented software was designed to achieve, and it works.