f1rmb:
That is how the dev world works, like it or not
That is not how the dev works works if you want to make a living out of it, I can assure you! There is nothing utopian about wanting a reasonable level of backwards compatibility, it's common sense.
As I said, I've been at this since the 70s, I know exactly how it works, and the dev world you describe isn't mine.
My point is and always has been that there is a balance and Linux on the desktop is often too chaotic due to too many well meaning changes without regard to the effect on end users.
If you don't care at all about backwards compatibility, as you've stated ("Backward compatibility is just utopia") then that's fine, but that isn't what real programmers, designers and architects do, all you're doing is tinkering.
In the end, it sounds like you are actually arguing my case and we are agreeing that Linux tends to deprecate things and renders documentation out of date more rapidly than paid-for solutions, something else I've been saying all along.
For me, it looks like you've never get involved in OSS dev at all.
Software (software, libraries) versioning is used, you cannot break API between minor versions.
If you introduce an API breakage, the major version should be increased.
About the documentation, dev find that boring, I know. In OSS projects, it's quite rare to get people dedicated to documentation, and devs prefer to focus on the code itself. But there are solutions, like doxygen (I use it intensively, since it extracts and build the documention from sources).
But you know, everything in this world evoles, and become backwards incompatible. Look, humans aren't backwards compatible themselves (can you imagine surviving in the prehistoric era ? Will you blame your ancestors for this ? I guess not).
As software point of view, it's the same problem; if you design a software that supports some kind of existing hardware devices, one day a new device will be created and it will turns out that you cannot add its support without introducing huge changes in your software. The dilemna is, should I just ignore this device, (and let some other dev create a similar software than yours, supporting the new device and the next ones), or should I made the needed changes, even if it breaks the backwards compatibilty ?
This is why I think backwards compatibility (at any price) is utopia. For sure, backwards compatibility breakage should be used ONLY when it's really necessary, but sometimes you have no other choice (and as a programmer point of view, it's always painful to change everything, rewriting working code, and so on). And for your information, I'm also living out the software I write.
So, the evolution leaves two choices: be part of it (with its side effects), or die. The perfection doesn't exists.
---
Daniel