Allan Odgaard took some flak when he announced his decision to require Leopard for TextMate 2.0. Explaining his decision, he wrote that
[There is] 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.
Obviously my own work on Tarski is a much smaller affair, but nonetheless fixing, improving and most onerous of all, supporting it does take up a significant amount of time. There are only so many hours in the day, and Tarski takes up enough of mine already. Because of this, the next version will require WordPress 2.1, and the next major update will likely require 2.2.
There are a few reasons for this, most of which follow those laid out in the above quote. To begin with, testing the theme in two different versions of WordPress is bad enough; three would be even worse, and with the new development cycle it looks like major versions are going to become more common, not less.
Then there’s feature change: if we implement something that requires 2.2 code, do we just leave it out for 2.1 users, or try to implement something similar (and probably quite complex to code)? The less our work is based on the API the more work we have to do when, for example, the database schema changes.
By only supporting the latest major version we can do two things: reduce our dependency on SQL queries and custom functions, and only write and update one version of features which require us to bypass the WordPress API (of which there are quite a lot in Tarski).
Less complexity means less to go wrong, which means fewer support requests per user. Already I spend most of my time working on Tarski not writing new code or even updating old code, but helping people on the Tarski support forum. If I can reduce the amount of time I spend there, and make the time I do have for writing code simpler and more enjoyable, so much the better.
Sounds good, as long as the older version of Tarski are still available for 2.0.x users.
~ Arun #