Software development: backward-compatible or just backward?
Pointing finger at the present-day tendencies and going “Ha-Ha”
Software development: backward-compatible or just backward?
Pointing finger at the present-day tendencies and going “Ha-Ha”
Fact: 5 years ago, more software was compatible with 5-year-old software
As I’m working on fixing a backward-compatibility issue with RubyGems,***** I’m getting another backward-compatibility issue with RubyGems… And I have to express myself on the subject before I work around it…
**yes, THE Ruby-Gems project, which now includes the Bundler gem too, because “—Mono!? —Repo!!” — another fingerpointing-worth tendency with the same background — going around compatibility issues the wrong way*
At first, it seems SaaS* and AppStore** models are to blame; indeed, who needs old junk — or compatibility with it — when you can “almost instantly” get the new shiny stuff (definitely not junk) the new shiny software engineers has worked hard on? In fact, let CD (Continuous Delivery) be truly that, c o n t i n u o u s, let’s leave the auto-update on, and always be on the best stuff, because everything just improves, today’s new is always and forever better than… yesterday’s new, right? And these new shiny software engineers, they have those fabulous short attention spans, they’re laser-focused on vibing with here and now, they never make mistakes, definitely not strategic, long-term ones, so this checks out.
As you dig deeper for root causes, higher-speed higher-bandwidth internet and better package managers availability and the potential for cash-flow improvements are just impossible to resist — always do the 20–80, never arrive at that dreaded 80–20, leave the users hanging, it’s good for business. Any business, even open-source business…
…But I think I’ve now touched the core reason, the fundamental shift in the software development grand goals…
*software as a service — dependencies not just “in space,” but also, in time **always-on latest-and-greatest-only subscription-based software supply
Remember the times when IT — Information Technology — benefitted the smartest, the most intelligent intellectuals first, and those used to be independent individuals, traditionally?
Now, while hardware is still dragging some improvements that somewhat benefit foundational research and development, high-level software is firmly in the entertainment, and in the infotainment, and in the edutainment, and in the governtainment, and in the labourtainment… in anytainment — things intellectuals tend to care less about — in IT, however, this purpose domain slowly, but surely has polluted lower-level software — and lifecycles thereof — upstream. The benefits of using new lower-level software — against the burden of compatibility updates — have been diminishing, and wherever possible, the smartest (leading) engineers tend to stick to what’s been working well already (e.g. HTTP/1, bash, etc), but it’s possible in fewer and fewer cases — whereas even the lowest-level, principal software is riding that yearly-commercial-season-release train — and follows the smaller cycles induced by it.
Also, now, everything is incorporated; popular things attract ever more supporters becoming de-facto monopolies in their respective fields, diversity is reserved for freaks, and we have some, to be sure, maybe, even no less than before, in absolute numbers, but their percentage — and their influence — within the industry is down, and so, they look ever more freakish. To note, while initially, those popular things were becoming popular because they were getting better, and they were getting better because of the competition they had to overcome, now, people — not the smartest people in the industry, but its vast majority — who invest their precious intellectual capacity in learning to use those things — are naturally reluctant to support competition (—More learning?? No, thanks!!).
The politically incorrect part: close your eyes, close your browser, close your notebook, close your doors, get your close ones, emigrate now!
There are two cultures in this world (well, two that matter on the scale of humanity): the culture of individual independence and the culture of collective compliance. They are just different, like, there’s two sides to human nature, they can’t exist without each other, in fact, they are defined as each other’s opposites, but one of them is dominant at a time. Whichever is dominant most of the time in most people, defines the people’s culture.
Curiously enough, the culture of individual independence cares more about the past and the future, and the culture of collective compliance cares more about the now and the ever. And that’s why the former yields better, longer-lasting material stuff (even if materia is ones and zeros), and the latter prefers shiny new material stuff (since, all the same, it won’t last for ever anyway; in the face of eternity, one day or one century is the same).
p.s. #OSS my ass https://github.com/ruby/rubygems/pull/9049#issuecomment-3511824230 #sadd
메타데이터
- post_id
- ec1df9767c8f
- slug
- software-development-backward-compatible-or-just-backward-ec1df9767c8f
- url
- https://medium.com/@costa/software-development-backward-compatible-or-just-backward-ec1df9767c8f
- canonical_url
- https://medium.com/@costa/software-development-backward-compatible-or-just-backward-ec1df9767c8f
- author_url
- https://medium.com/@costa
- status
- ok
- fetched_at
- 2026-07-16 18:29:20