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]

Reply via email to