Linked by Thom Holwerda on Mon 15th Jan 2007 11:25 UTC
Linux Ian Murdock blogs about the importance of backward compatibility. "Yes, it's hard, particularly in the Linux world, because there are thousands of developers building the components that make up the platform, and it just takes one to break compatibility and make our lives difficult. Even worse, the idea of keeping extraneous stuff around for the long term 'just' for the sake of compatibility is anathema to most engineers. Elegance of design is a much higher calling than the pedestrian task of making sure things don't break. Why is backward compatibility important?"
Thread beginning with comment 201980
To view parent comment, click here.
To read all comments associated with this story, please click here.
Cloudy
Member since:
2006-02-15

Binary compatibility is only an issue for closed source software, which is not something free software community should sacrifice a lot for or go to great lengths for.

This is not true. Binary compatibility is an issue for any site that runs multiple releases of the same distro. Running multiple releases of the same distro is not uncommon in commercial sites, as production systems tend to be spread over one or more distros and tend to be several distros behind.

Right now, the lack of binary compatibility across releases of Fedora Core is costing me time and effort, because I have to build a large application for FC6, FC5, FC4, and FC2 regularly and each one requires its own build, so I can't build once and install the binaries everywhere.

The major reason why backward compatibility is important is that users often aren't in a position to upgrade all of their systems at once, or on a single system, all of the pieces at once.

Reply Parent Bookmark Score: 4

archiesteel Member since:
2005-07-02

Right now, the lack of binary compatibility across releases of Fedora Core is costing me time and effort, because I have to build a large application for FC6, FC5, FC4, and FC2 regularly and each one requires its own build, so I can't build once and install the binaries everywhere.

Is it really binary compatibility, though, or rather library compatibility? I know in the end it's still a PITA, but it's not exactly the same thing (in other words, could you solve this with statically-linked libraries?)

Reply Parent Bookmark Score: 2

Cloudy Member since:
2006-02-15

In this instance it's both, although often it's just libraries. Still, statically linking against libc (one culprit in this case) introduces problem as well as solves them.

Reply Parent Bookmark Score: 2

Ookaze Member since:
2005-11-14

This is not true. Binary compatibility is an issue for any site that runs multiple releases of the same distro. Running multiple releases of the same distro is not uncommon in commercial sites, as production systems tend to be spread over one or more distros and tend to be several distros behind

That's wrong. The problem you have is package management, not binary compatibility.

Right now, the lack of binary compatibility across releases of Fedora Core is costing me time and effort, because I have to build a large application for FC6, FC5, FC4, and FC2 regularly and each one requires its own build, so I can't build once and install the binaries everywhere

That's complete BS. Again, binary compatibility is not what's holding you back, that's package management. More specifically, you have dependancies management problem.
You could perfectly well compile the dependancies that differs, and install them on every one of these distros.
Then, one build of your large application would work across all of these distros without problem.
That's the basic process that comes to mind for these kind of situations.

The major reason why backward compatibility is important is that users often aren't in a position to upgrade all of their systems at once, or on a single system, all of the pieces at once

And that's mainly a closed-source app problem. On free Linux distros, that's more of a support problem, and the amount you want to pay for this support. Supporting even free distros have a cost you know. That's why you won't see many people support an old FC2 for free. But every new FOSS app can run on an old FC2 without problem.
As for the backwards compatibility, every FOSS app that was on FC2 runs on FC6, either updated, or they replaced it by a better app. That's only to minimise cost. Like I said, I have old apps that run just fine on my bleeding edge Linux OS, even closed source ones. But this mainly means "static compile", and we don't like that on Linux.

Reply Parent Bookmark Score: 1

Cloudy Member since:
2006-02-15

binary compatibility is not what's holding you back, that's package management. More specifically, you have dependancies management problem.
You could perfectly well compile the dependancies that differs, and install them on every one of these distros.


This, of course, assumes that the dependencies can be backported to the earlier distros, which is often more work than recompiling our application would be.


The major reason why backward compatibility is important is that users often aren't in a position to upgrade all of their systems at once, or on a single system, all of the pieces at once

And that's mainly a closed-source app problem. On free Linux distros, that's more of a support problem, and the amount you want to pay for this support.


The "support problem" is a problem. Thanks for making my point.

Reply Parent Bookmark Score: 2