Sunday, March 16, 2008

I want my...I want my J..V..M...

That ain't workin...

I love the iPhone, and what an amazing platform for development! As soon as the SDK became available I downloaded it and started to peruse the online documentation. As usual the apple quality of documentation is superb, and the tool support is equally fabulous (if you use a mac :), the lack of interface builder support in the beta SDK notwithstanding. I even like the use of Objective-C, a language that Apple (and NeXT before it) has steadfastly remained loyal to for eons. In fact, as a former C programmer it was like slipping off my Java-esque plate mail and slipping on a favorite jacket, worn in places, but extremely comfortable to wear. But then, you discover why you stopped wearing it in the first place... its got a hole in both pockets, so all your loose change clatters to the floor or something equally heinous.

No, this isn't about to degenerate into an anti-C rant - I'm too much of a loyalist for that - but what did surprise me was that they didn't include garbage collection for their iPhone runtime environment. It's a feature they've recently begun to support in their Cocoa development for OS X, from 10.5 (Leopard) onwards, and gets rid of the need for the somewhat complex reference counting scheme that they've used to keep track of heap usage in previous versions. In an environment where they really do need to make efficient use of memory, you'd think that garbage collection would be a trade-off worth making - especially as many newer developers who haven't had to manage their own heap space will be flocking to this platform because it's damn cool! Yes, the tooling apple provide to detect memory leaks is excellent but thats not the point - why not eliminate the problem at source and institute a lightweight garbage collection scheme? It has certainly made me re-evaluate my initial "gotta build something for this device" rush of excitement, maybe I'm getting old but I just don't wanna bother hunting down memory leaks any more - I'd rather focus on solving real issues like the problems that surround the thing I'm going to build!

That's The Way You Do it...

Well, it seems that Sun has decided to build a JVM for the iPhone, using the various Java Micro Edition JSR's. That's good stuff as far as I'm concerned. While that Java platemail may be a little uncomfortable at times its nice to be wearing it when fate comes at you with an axe :) From a legal perspective I'm not sure HOW a JVM is gonna get past the fairly explicit wording of the Apple SDK licensing, but IANAL, I have high hopes. Clearly this will meet my curmudgeonly garbage collection needs, but they'll need to be clever to massage those vendor-independent API's in JME to support some of the as-yet unique features of the iPhone. What I don't want is basically another little box for writing bland-looking Swing apps on, IMHO it must follow the style, look and feel of the existing iPhone interface, anything else would be sacrilege!

Money For Nothin' and Yuh Chicks For Free

Whatever your choice of developmental poison, the iPhone is clearly big and getting bigger by the day. The fact that Apple are using iTunes as an exclusive distribution channel is *great* news for independents - your software will be on millions of desktops with little effort. The fact that you pay them a third of your profits (I believe) is well worth it! I just hope that something can be worked out so those cool iPhone based jars that i and others want to write will get the same status as native apps. I guess time will tell.

(with apologies to Dire Straits)

Saturday, March 15, 2008

The Invincible Machine...Mark II

So, its been a while! LibraryScan was my first product and it taught me a lot of what to do and a whole lot of what NOT to do. The product itself wasn't a bad one actually, but it just suffered from undernourishment. Undernourishment in a support and update sense, but most importantly a distinct lack of marketing - simply "spreading it around" every shareware site in existence was not enough. I'll learn from that in future. In my personal life the whole life/work balance wasn't right to really strike out on my own in an entrepreneurial sense - but kids are older, I have a job back in academia that I really enjoy and it gives me freedom to do this - so the "I've got to get out of this horrible situation at work" pressure is well and truly off!

So Mark II! What am I working on? Well a couple of different projects at the moment. My attention span is such that working on multiple things at once will get the best out of me in a work sense. If the current project gets old, well I'll move to the next one. I just hope that the number of projects is a) manageably finite and b) I go back to them and get one or more completed! We'll see - but anyways it'll be fun.

Here's whats in the oven at the moment:

1) A framework for building strategic wargames (yes the old hex map and counter stuff! I love it!). This will be the basis for an number of historical wargame titles I have wanted to write for 20 years.

2) A web application for writing, reviewing, sharing, collaborating and publishing works of fiction.

...I'm sure I'll add to this as I go along.