Monday, March 19, 2007

Future Mac apps may become Leopard Only quickly

I've always enjoyed tracking unreleased Apple Operating Systems. I am certainly looking forward to Apple's forthcoming OS X 10.5 Leopard release. One surprise that I have come across is that many Apple Developers are considering making their next release "Leopard" only. I was fortunate enough to take advantage of MacHeist bundle which included the very interesting Delicious Library and Textmate. Both very popular applications in the MacWorld. Both developers have decided to make the impending 2.0 versions of their applications Leopard only.

Wil Shipley of Delicious Monster says this in their blog:

Delicious Library 2 is indeed being written. This should not cause you concern if you are thinking of buying Delicious Library 1. First off, because there will be an upgrade price available (sorry, but it won't be free -- we've already provided five or six free upgrades to Delicious Library 1 with major, major functionality, which is why we're at version 1.63 now). Secondly, we're still quite a ways out on actually shipping Delicious Library 2 -- it's going to ship on Mac OS X 10.5 "Leopard" only, and we honestly don't know when Leopard is even going to ship. And, meanwhile, we're trying to write our software for an unfinished OS, which is like trying to perform an appendectomy on a patient who is awake and actively slapping your hands away.

They don't exactly go into the reasons why they are supporting Leopard only but I think Allan Odgaard the developer of Textmate makes it quite clear on his blog:

First of all, 2.0 is a free upgrade, so I won’t miss out on any upgrade fees from people that want to stay on Panther or Tiger.

Secondly, roughly 90% of my users are early adopters and have in all likelihood upgraded to Leopard within a few months of its release, so by keeping compatibility with older operating systems I am catering to less than 10% of my users.

Thirdly, it has a significant cost to stay backwards compatible, this price is paid in the form of:

Time spent debugging (and sometimes making workarounds for) issues only present on the older OS version.
Time spent implementing stuff that Apple offers for free on the new version of the OS.
Not being able to make use of features only present on latest version of the OS when it’s too impractical to conditionally make use of them.
Code complexity, because it needs to do different things on different versions of the OS.
Is eliminating those costs worth a 10% drop in sales? You bet they are! The reason why I have kept Panther compatibility for this long has nothing to do with additional sales and all to do with me just not liking to cut people off.

But by requiring Leopard I get all the Tiger stuff I have reluctantly ignored, all the new Leopard APIs which I look forward to use. I can render text with the faster CoreText which hopefully is free of the various ATSUI rendering bugs (like ignoring your drawn bold/italic font variant unless you flush your font cache regularly, or not doing proper anti-alias on bright text with a dark background), etc.

There is also Objective-C 2.0 with garbage collection, I don’t think anyone realizes how much work it is to manually unbind stuff from nibs when disposing them to avoid retain cycles (and thus memory leaks). There is a new Interface Builder with some much desired improvements — both of these things will require my stuff to run on Leopard, should I embrace them.

I happen to agree very much with his ideology and have highlighted what I believe to be his most salient parts. As a Mac user my computer is more than "just" a tool. I love the ethos of Macintosh users and developers. There is an art to this platform that attracts millions of people and I find that many users will indeed upgrade their OS once they feel "safe" that things will work. With each new version of OS X Apple adds more improvements that simply cannot be back ported to prior versions. As Mac users and application lovers should we settle for backwards compatibility and the limitations that it imposes on current software design or do we pledge ourselves to remaining as current as feasible and improving our computing lifestyle with each new OS X version? I frankly hope that more developers decide to move to Leopard only applications and embrace the new API that Apple has created. I will certainly be moving to Leopard as soon as possible for reasons I'll highlight in other post.



No comments: