[Update:] I may be wrong on this one: the WWDC Keynote slide I’m talking about mentions ‘Automatic Reference Counting’, which technically is not the same as Garbage Collection, but nevertheless takes away the burden and responsibility of manual memory management from the developer. So the hooray is still valid, even if the technical implementation may not be Garbage Collection. For more details make sure you read the comments to this post[/Update]
Apple’s Keynote on the WWDC yesterday was again a huge media event, and they showed a lot of interesting new stuff that’s neither rocket science nor revolutionary on its own, but the level of integration into their product portfolio and their perspective on things that should simply work is great.
My personal highlight of the keynote was a very little but probably very influential tiny detail: iOS5 will have Garbage Collection.
Up to now, if you programmed in Objective-C for the Mac, and used Garbage Collection, you couldn’t use the same body of code for the iPhone or the iPad, because iOS required you to manage your memory by hand. Not that it was too hard, but it was a difference. So you either had to maintain two versions of your code, or you had to ignore Garbage Collection for your Mac version.
Now the only major difference between a Mac and an iPad application is the GUI framework (there are, of course, still others as well). This is easy to overcome, because you simply redraw your app in the IB for the other platform, and still maintain a single body of backend code.
And I guess even this difference will go away pretty soon, now that Mac OS X Lion adapts many principles from iOS.
It seems we’re on our path to the unified operating system and development environment for all platforms, from Desktop to Tablet PC and SmartPhone or Car Entertainment units. The gap between a MacBook Air and an iPad isn’t very broad anymore. Imagine a Netbook with a MultiTouch Screen and you have the unit for all purposes. Add to that the fact that there’s no real difference in APIs between platforms, we can imagine a lot of cool scenarios for our software.
So this is probably the answer to the question I posted a few weeks ago.