Neue Software und alte Betriebssysteme

Kürzlich hatten wir ja hier eine kleine Diskussion, warum Entwickler ihre Software nur für aktuelle Systeme bauen und ob es denn nicht möglich sei, die auch für ältere Systeme zu bauen. Jetzt hat mal ein Entwickler seine entsprechende Entscheidung ausführlich begründet. Es geht um TextMate, dessen neue Version 2.0 wohl nur unter dem kommenden Mac OS X 10.5 (Leopard) laufen wird.

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:

  1. Time spent debugging (and sometimes making workarounds for) issues only present on the older OS version.
  2. Time spent implementing stuff that Apple offers for free on the new version of the OS.
  3. 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.
  4. Code complexity, because it needs to do different things on different versions of the OS.