Marking down your territoryMarking down your territory

Databinder dispatch swallowed up BlueCloth, RubyPants, and Maruku today. He’s voracious, and as easy as it is to assimilate Ruby libraries I wouldn’t expect the frenzy to stop anytime soon.

I’ve never used Markdown for anything, being quite content with Textile. But now I’m tempted to waste a bunch of time rewriting databinder.net in Markdown just to see if I like it better. Anyway, lots of people use it and like it and [Steve Jobs voice] it’s available… today, in Databinder dispatch (1.1 snapshot).

Excuse mongering, with spite on top

Speaking of Markdown, wouldn’t it be great if its creator John Gruber could temper his Apple fanboyism with just a little respect for other technologies? It’s not like he’s Steve freaking Jobs, who everyone expects to say things like

Java’s not worth building in [to the phone]. Nobody uses Java anymore. It’s this big heavyweight ball and chain.

I keep hoping that Gruber will be a voice of reason. After all, he shows plenty of reason in his (usually long-form) proofs against this or that anti-Macintosh claim. And he does have a few pet criticisms of Apple, but when it comes to any sort of controversy, he slides into the Cupertino trenches without a moment’s hesitation. On Java in the iPhone:

Jobs may well be spinning with his statements regarding third-party iPhone apps in general (and I hope he is), but his disdain for Java is completely straightforward. Java is no more relevant to iPhone app development than it is to Mac app development.

Relevant?

iPhone apps are written in Cocoa and are designed specifically for the iPhone user interface.

Or not. In March of 2008 it’s all about “Cocoa Touch”, though technologically it certainly didn’t have to be all Cocoa at all levels. Apple is working to replace the idea of programming a device, where language and APIs are just a means to a machine-code end, with an illusion that their APIs are the machine code.

This is a very un-gruberian slipup. We’ve got plenty of reasons to think the iPhone also runs Dashboard widgets, and those are just HTML, stylesheets, and Javascript supplemented by the Canvas API. They’re no more Cocoa than this Web page.

Cross-platform crippity-crap Java apps would stick out just as sorely on the iPhone as they do on the Mac.

Somebody’s Mail.app crashed on him this morning. Yes, we know that nobody is turning cartwheels over Java GUIs on Mac, Windows, GNOME, or cell phones. But we are glad to simply have certain programs available. I say that as a user, not a mostly Java programmer. For example, the Cocoa interface in Acquisition is loads nicer than the Swing Java interface in Limewire. But guess what: Acquisition depends on Java too.

A lot of good things, like peer-to-peer implementations, are written in Java so that they can be used on more than one platform. That is the incredibly revolutionary point of Java. Ugly interfaces that make Gruber grumpy are not the point of Java. They’re just the detritus that users associate with Java. Want another Mac example? The Java-dependent OpenOffice variant NeoOffice is the only one that works worth a damn on a Mac. It’s no princess, but if you need to open an Excel spreadsheet right now, it’s your date for the night.

Having no JVM whatsoever on the first iPhone is a weakness, plain and simple. Insulting Java interfaces across the board is not an adult response to the problem. On the other hand, plenty of Java programmers are asking for it, the way they’re throwing tantrums and continuing to establish that they just don’t understand Apple’s advantages. Like in this huge JavaLobby thread, where plenty of guys attribute the iPod’s success to it being “cool” and “picked up by celebs.”

This is the pinnacle of not getting it. It shows that, for one thing, you were the last person to even be aware of the iPod, because it established itself on its merits ages before it turned up in its first rap video (P.I.M.P.). “Celebs” do not discover new technologies and make them popular. We the nerds do. The day I give some Lohan-type credit for a technological success is the last day I work in technology, you idiots.

Obviously I don’t react well to that ignorance myself; I even laid my own Java-interface-diss in that thread (and this weblog, talking about resource based interfaces). The point is, folks, we’re all wrong. You can’t guarantee the iPhone’s success by comparing it to the iPod (whose launch was a publicity Antartica to the iPhone’s North Pole, for one thing). Nor can you understand why the iPhone might be successful if you do not understand the iPod’s success. The fact is, user interfaces do matter and they are not everything.

Evasive maneuvers

If your Java-head is spinning with resentment from the iPhone rebuff, here’s what you can do: make Java on phones something to covet. Make killer apps and games. Make them smooth. Improve J2ME. Do what you can, and if you aren’t in a position to do anything, then get over it. Armchair predictions that the iPhone will “fade into obscurity” because it doesn’t have Java are embarrassingly tone deaf.

As for Mac-friendly J2ME coders who are dying to write for the iPhone, stop what you are doing and download Dashcode. Get used to the idea of writing in Javascript for the Canvas API, because that is what your life will be. Nothing is official yet, but I’m pretty comfortable predicting that Dashboard widgets are the one and only application category that independent developers will be able to put on the first iPhone.

After all, widgets are just tarted-up Web pages with irregular borders. Cingular doesn’t have to worry about you writing Skype in one, and Apple doesn’t have to worry about you crashing the phone any more than with Safari. It’s a no-brainer really. If Canvas is as decent as people seem to think it is, you should be able to write some pretty sweet games in it. Worst case scenario, Apple’s newly Nazi-inspired leadership doesn’t let users install your widget but they can at least use it through the browser.

Personally, I’m disgusted enough with the myriad restrictions on the iControlEverythingPhone that I don’t care if it has Java, or can make calls or comes to market at all. Let’s just hope this all isn’t a sign that Apple plans to abandon their Mac JVM; that would be quite a bitch slap to the Java intelligentia who are now toting MacBook Pros. Come to think of it, what’s going on with their Java SE 6.0 release? Hello, Apple? Remember us Java programmers? WebObjects? You said you loved us and—[click!]

Hate to say it guys, but I told you so.

Add a comment