Re: [forum] Move X definition to IETF?
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
On Tue, Mar 25, 2003 at 05:52:58PM +0100, Lukas Molzberger wrote: > Breaking a shared lib ABI happens within the context of just one computer > while breaking a protocol affects the whole internet. On a local computer you > can just install both versions for the time it's needed. Usualy you update > all programs and libs on a computer at the same time. Compatibility of many > libs under Linux has been broken and that was a good an necessary thing. The issue is not the Internet vs. one computer, but rather one application vs. many applications. It's possible to parallel install GTK+ (as in http://ometer.com/parallel.html) and we can thus break APIs that are per-app. However, we can't make backward incompatible changes to, for example, the drag-and-drop protocol - not because we expect to do drag-and-drop over the Internet, but because we expect to do drag-and-drop between two applications that may not upgrade the lib at the same time. Similarly, take a case such as GConf, which is a configuration system. Apps need to share the same settings. You can't have some apps getting different values for "current font size." So there is a file format or protocol or something there on the backend that's shared by all apps, and can't be broken. No matter how you approach the windowing system, at some point apps need to coordinate access to the framebuffer device. And the mechanism for coordinating this access will have to maintain back compat for what amounts to "forever," because it is a mechanism that spans multiple applications. The only way around that is to require all apps to migrate to a new system at once, and that is a chicken-and-egg problem that is almost always impossible to solve. The fact that multiple apps are involved is inherent in the problem space, not in the technical mechanism of protocol vs. library ABI. Havoc
[Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Samba] [Linux Security] [Linux RAID] [Linux Resources]