Dr. Drang, in 2011:
There’s a tendency to think that a program or library that hasn’t been updated in a long time is worthless and has been abandoned. Often, though, it’s because the code is done.
Drang is referring mostly to command line utilities, but software like Things can express this as well. Perhaps — aside from a few interface changes — it is done. Perhaps the developers think they’ve produced a great piece of software that needs no additional features.1 There are two types of response, then:
- those who will now abandon the software looking for something more feature rich, and
- those who will stick with it because it does everything they need.
Neither of these positions is incorrect, per se, but I don’t think there’s any shame in a software developer stating that the current version of something is complete and that they will only be fixing bugs in future releases. This is especially true for command line programs, but even GUI apps can fall into this category. I occasionally use a couple of small utilities for which the only updates in the past ten years are bug fixes, and to create an Intel binary. They’re fairly ugly apps, but they’re bulletproof.
Consider the inverse effect, though: some software developers feel the pressure to add features to an app which already has most of the features it needs, so it starts gaining features which have no business being in the app. Photoshop has mediocre 3D tools and a janky video editor built in. I see this as evidence of bloat, not progress. I’d be happier if the engineering effort to build 3D tools had gone into fixing some of the egregious, long-standing bugs in Photoshop (rotating a 1 px line 90° should not modify its size, for instance).
Perhaps there’s some nobility in sticking to features which belong in the app, and when that list is all checked off, the software is more-or-less finished.