God dammit, I didn’t want to blog again. I have so much stuff to do. Blogging takes time and energy and creativity that I could be putting…
Backwards compatibility keeps systems alive and relevant for decades. ❧
Annotated on August 15, 2020 at 10:50AM
In the Emacs world (and in many other domains, some of which we’ll explore below), when they make an API obsolete, they are basically saying: “You really shouldn’t use this approach, because even though it works, it suffers from various deficiencies which we enumerate here. But in the end it’s your call.” ❧
Annotated on August 15, 2020 at 10:57AM
Successful long-lived open systems owe their success to building decades-long micro-communities around extensions/plugins, also known as a marketplace. ❧
This could be said of most early web standards like HTML as well…
Annotated on August 15, 2020 at 10:58AM
It’s a sure sign, when there are four or five different coexisting subsystems for doing literally the same thing, that underlying it all is a commitment to backwards compatibility. Which in the Platforms world, is synonymous with commitment to your customers, and to your marketplace. ❧
This same sort of thing applies to WordPress for its backwards compatibility. Sometimes it’s annoying, but their adherence to backwards compatibility has kept them strong. They also have multiple ways of doing things, which is nice.
I wonder if there were some larger breaking changes in Drupal 7 and 8 that removed their backwards compatibility and thereby lost them some older websites?
Annotated on August 15, 2020 at 11:03AM
So let’s say Apple pulls a Guido and breaks compatibility. What do you think will happen? Well, maybe 80–90% of the developers will rewrite their software, if they’re lucky. Which is the same thing as saying, they’re going to lose 10–20% of their user base to some competing language, e.g. Flutter.Do that a few times, and you’ve lost half your user base. And like in sports, momentum in the programming world is everything. Anyone who shows up on the charts as “lost half their users in the past 5 years” is being flagged as a Big Fat Loser. You don’t want to be trending down in the Platforms world. But that’s exactly where deprecation — the “removing APIs” kind, not the “warning but permitting” kind — will get you, over time: Trending down. Because every time you shake loose some of your developers, you’ve (a) lost them for good, because they are angry at you for breaking your contract, and (b) given them to your competitors. ❧
Twitter is a good example of this, and they’ve just created a shiny new API in an apparent attempt to bring developers back…
Wonder if it’s going to be backwards compatible? (Probably not…)
Annotated on August 15, 2020 at 11:10AM
I’ve alluded to the deeply philosophical nature of this problem; in a sense, it’s politicized within the software communities. Some folks believe that platform developers should shoulder the costs of compatibility, and others believe that platform users (developers themselves) should bear the costs. It’s really that simple. And isn’t politics always about who has to shoulder costs for shared problems?So it’s political. And there will be angry responses to this rant. ❧
This idea/philosophy cuts across so many different disciplines. Is there a way to fix it? Mitigate it? An equation for maximizing it?
Annotated on August 15, 2020 at 11:14AM