2.0 Will Require Leopard
In my last entry I mentioned that I am 90% decided on making TextMate 2.0 Leopard only.
R Lafourcade was quick to post a comment trying to talk me out of it, so let me elaborate a bit.
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.
So to boil it down: things will be much easier for me and users should benefit from new features and me having more time to work on what‘s unique to TextMate.
Who are the losers in this? That would be people who leave comments like the below on my blog:
I like my Mac but I don’t give a damn about Apple and their stupid codenames and incremental upgrades. I won’t switch from Panther to Leopard just for the sake of giving you another 39 €.
But this is a chance for all of you to voice your opinion, leave your thoughts in the comments, but the more I think about what ditching compatibility means, the more I look forward to it :)
I should also add that I am taking 10 weeks of vacation starting the 29th of November (going hiking in New Zealand), so even if I didn’t drop backwards compatibility, I wouldn’t have a 2.0 release before Leopard.