Theres an instinct programmers feel often, when a big coding project has become a massive, tangled mess of workarounds, Band-Aids, and cruft. At some point, when its time for, say, version 3.0, you feel this strong urge to throw away everything and start from scratch. Toss out the legacy code, start fresh, leveraging all the experience you gained from the mistakes you made along the way, ideally ending up a with a seamless, cruft-free new take on your old codebase.
As it turns out, this is generally a terrible idea, because you throw away all the old, road-tested, necessary special cases and long-forgotten underlying requirements. It feels so appealing to throw out the old, convoluted code, but it comes with serious, often unanticipated pain.
But sometimes, throwing everything out and starting over is the only option.
When Twitter on Thursday set forth its new, much stricter rules regarding how third-party developers can make and maintain Twitter apps, the company made clear that its priorities and its perspective on its core user base have changed significantly from years back. And that may leave an opening for upstarts like App.net to start from scratch by necessitynot just in terms of fresh new codebases, but fresh new perspectives on how new social networks should operate.
The aforelinked story explains Twitters new rules in detail that we neednt retread here. But the implications of those new rules are worth considering. Though the company hasnt said so explicitly, its new policies do make it seem likely that Twitter clients with many users (Tweetbot, Twitterrific, Echofon, UberSocial, and others like them) will be required to inject Twitter-provided ads. Apps may be required to strip or revamp features like inline tweet translations, saving to Instapaper, or viewing tweets in third-party services like Favstar. And third-party apps will all be subject to caps, enforced by Twitter, on how many users those apps can support. The changes also seem to imply that apps that display tweets in clever ways, like Flipboard, may no longer be permitted to do so.