On Sat, Dec 14, 2002 at 08:17:38PM +0200, Herouth Maoz wrote: > Point being - since I'm sure my lecture is not easy on the ears of > the free-software junkies, MacOS being a proprietary piece of > software (with all the drawbacks) - you can be both professional in > maintaining your user base and not breaking their work at every stem, > and keep innovating and advancing, and even take serious steps when > the old technology becomes untenable (move to RISC, change to a unix > core).
There aren't many points where binary compatibility was broken inbetween releases in the free software either. The Linux kernel system calls remain the same, the X server can accept clients which were written when X11 was just introduced, major libraries retain binary compatibility (easier for C, harder for C++ -- read http://developer.kde.org/documentation/library/kdeqt/kde3arch/devel-binarycompatibility.html ) or branch to new versions. In fact, while Microsoft only recently introduced their solution to "DLL hell" in form of assemblies which publish the versions they support and programs which link against a specific version of the DLL, we had a solution for years, in form of the .so.X.Y.Z versioning convention. e.g. when Trolltech felt the need to change their Qt API considerably, they branched into Qt 3.0. You can keep the 2.x version along for old programs. Same with GTK and GNOME. And yet, programs seem to break between Linux versions -- so there are "offenders". I think the biggest history of breakage belongs to glibc, and then g++ (maybe the switch to the standard ABI would be the last one?). Maybe that's because they feel less obliged to keep old cruft (which really hurts the eyes; admit it, all of you who code :) since the project is their hobby. There was an interesting article called "Ten Reasons We Need Java 3.0" ( http://www.onjava.com/pub/a/onjava/2002/07/31/java3.html ) which outlined the amount of cruft which gathered in Java's relatively-modern API. I bet Sun's coders are quite jealous at the Microsoft guys who got the opportunity to design the .NET APIs from scratch :) ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]