Sun, Apple, and J2ME, Oh My!
A month ago I posted a fateful blog entry, "Hey Apple, Got J2ME?", which continues to draw counter blogs, email, and online responses. There's enough interest in this that I thought a follow-up might be in order.
One thing is abundantly clear from the discussion: Java developers are very interested in seeing J2ME development tools supported by somebody on Mac OS X. Several readers posted links to the tool I mentioned in my blog, Michael Power's MIDP 1.0.3 RI port, while drmccuistion pointed everyone to his OS X port of the J2ME dev tools including the preverifier and responses to Chris Adamson's "Shoeing the Other Foot" mentioned NetBeans, Ecplise, etc. as possibilities. Whether they were aware of the available ports or not, most respondents lamented the fact that neither Sun nor Apple were actively supporting targeted J2ME tools on Mac OS X.
So far, we're all in agreement. That's the good news.
The bad: Whereas I think Apple should develop and support the tools, several readers think the responsibility should fall to Sun. Note the careful choice of the word "should", as opposed to "has to" or "must"...this distinction will be important later.
It should be Sun's responsibility, not Apple's, to port the Wireless Toolkit (WTK) to Mac OS X. In checking the J2ME web page I found that you (Sun) provide the WTK for Windows, Linux, and Solaris. Why don't you provide it for Mac OS X?
while cjgraham responded:
I totally agree that Sun needs to step up to the plate on this item. Has Bill contacted the team inside Sun to find out what the holdup is?
In fact, I have spoken with engineers and marketeers at both Sun and Apple about J2ME tool support. I've lobbied, actually, for the two companies to get together and work something out so that someway, somehow there are supported J2ME development tools for Mac OS X.
Having done this lobbying, however, makes me even more certain that Apple needs to step up on this, and here's why. Every vendor selling a system should (not must, but "should") support developers using their systems. It's in each vendor's best interest to provide the tools that developers need so that developers will use their systems. If a system vendor does this well, their developer ranks grows, they sell more systems, and both developers and the vendor are happy.
Sun sells Solaris and Linux systems. We do our best to support developers on Solaris and Linux. Given Microsoft's lack of interest in supporting J2ME or other Java development, we also choose to support J2ME/SE/EE dev on Windows, too. We choose to do this for one practical reason: Windows is the most widely used development OS and we believe that we need to support it to ensure that developers on Windows systems will be interested in using Java and J2ME.
Sun doesn't sell Mac OS X systems and doesn't stand to gain any system sales by supporting J2ME on Mac OS X. Apple does. And Apple has repeatedly demonstrated their strong commitment to ensuring Mac OS X is a premier Java development platform. It's in Apple's best interest to give developers access to the J2ME tools they want on Mac OS X, so that they'll use Macs for their development and for deploying the server portions of their mobile Java applications when the time comes. Just as Sun should support Solaris and Linux J2ME development if we are to sell our systems to wireless developers and service providers, I believe Apple should (not must, but "should") support J2ME developers on Mac OS X to sell more of their systems.
As codeslave said:
Apple of course is not obliged in porting J2ME into OS X but it would just be beneficial for Apple to do so. Jobs promised that OS X would be the best Java development platform. I hope he can walk the talk on this one.
Whichever side of the "he should, she should" you come down on, I'm hopeful we can all work together to figure out a way to get supported J2ME tools on OS X.
And who knows, maybe just maybe if we do this right we'll have Mobile Media API (MMA) enabled iPods in the not too distant future. I can't wait to program one of those mean little white machines using J2ME!