OK. After nearly two hours of fiddling with Virtual PC, I have made astoundingly little progress in my quest to port a Series 40 midlet to the T610, and have found enough problems to put most people off this.
Interestingly enough, most of them are just plain stupid and easy to fix if you’re Sun, SonyEricsson or Nokia.
But let’s not digress. After my first successful compile of the Nokia code (which entailed installing the Nokia for Linux on Mac OS X, stripping out the Linux binaries and adding the relevant JARs and ZIPs to my CLASSPATH, and turned out to be quite easy), I naturally assumed that, in order to re-compile it for the T610, I would have to get a SonyEricsson.
As such, I duly proceeded to find (quite easily) a SonyEricsson Java Docs & Tools page. As added bonus, besides the relevant SDKs, I also found a “Special Interest Paper discussing how to adapt your Java MIDlets, with special focus on Nokia Series 40, to Sony Ericsson’s phones”. Neat.
Sadly, their SDK is packaged as a Windows executable, which, in my book, counts as an Extremely Dumb Move. Firing up Virtual PC and attempting to install it gave an error message stating that I had to have the JDK installed first.
This is my first gripe. Is it that fscking hard to provide alternative packaging (even if only with libraries and documentation) for non-Windows platforms? Sure, I can run Windows. But even if I ran Windows as my platform of choice at home, would I want to install a ton of garbage just to look at the documentation and libraries? Why won’t it install without the JDK?
So I went over to Sun and duly downloaded the Java 2 SDK, which is only available in a bundled install with the NetBeans IDE. As much as I tried, I could not find a post-1.1.1 JDK that gave me a “barebones” SDK without the IDE.
This is my second gripe. Irrespectively of the “added value” that the NetBeans IDE might provide, why doesn’t Sun provide a plain (preferably zipped) install of the JDK for all platforms with command-line binaries? The first thing I do after installing it on Linux is remove all traces of NetBeans, since I never use the IDE (which, incidentally, is slow as molasses). Again, what if I have an IDE that I am perfectly comfortable with – why do I have to download and install all the junk?
So I left Virtual PC trying to install it and spent a couple of hours with the progress bar stuck at 8% – after it installed the IDE I don’t need. It turns out that the installer itself needs oodles of RAM to do its stuff, and I can only provide Virtual PC with 128 if I want to keep using my Mac (gosh, I really need to get more RAM).
I eventually gave up – I intend to fire up my 640MB RAM Windows laptop, install the Sun and SonyEricsson crud on that, and take a look – later.
In the meantime, I have been reading through the “Special Interest Paper” and figured out that I should not need a special SDK to develop MIDP for the T610 – the document goes to some length in explaining some of the proprietary MIDP extensions Nokia added to the Series 40, and how to emulate some of them with standard MIDP calls (it glosses over some of the most difficult ones, but considering they went to the trouble of figuring out Nokia‘s stuff and letting developers know, I’m warming up to SonyEricsson already).
But we haven’t covered my main gripe yet. At this point, Nokia‘s proprietary extensions are comparably acceptable, and I’m willing to consider MIDP as a standard with a large grain of salt. No, my main gripe follows.
The concept that you can use Java on any operating system to develop for MIDP painlessly is a fallacy. Yes, you can do it in Mac OS X with relative ease (largely thanks to Michael), but the vendors (including Sun) seem to have gone out of their way to prevent their SDKs from being portable. I have no problem with targeting Windows as the developer platform of choice and providing better tools – but there is no excuse for not having a trivial ZIP file available for other platforms.
No, not even time or effort – which is what we have to provide in order to get things working the way they ought to.
Nevertheless, I’m glad I’m doing this in Mac OS X. I wonder what I’d have to go through with another OS…