[Mono-devel-list] Mono dependencies
Jonathan S. Shapiro
shap at eros-os.org
Fri Apr 4 15:04:55 EST 2003
I'm impressed with the Mono work, and I'm looking forward to brining up
a Mono runtime on EROS in due course. As some of you know I have
projects of my own to fry, so I hope you'll take the following as
Mono will ultimately have better penetration as its feature set rises.
GTK# is a great example -- the availability of a portable GUI is a major
With each new feature, there is a strong temptation to require the
latest and greatest libraries for that feature. Unless there is a
compelling reason to do so, this is usually a mistake:
1. The latest code is rarely well tested
2. The latest code is rarely widely available on stock
3. End-user upgrades usually break their support path.
The last issue is very important. GTK# is an example of how to run afoul
of (2) and (3).
In order to install GTK# on a stock RedHat 8.0 distribution (I'll report
on RedHat 9 in a couple of days), one must install
various gnome3 packages
These are all cool things, but I won't install gnome3. The reason is
that when I do I step off of the RedHat updates path -- they ship
updates for the stuff they distribute. If I upgrade to a non-standard
version, I lose my patch infrastructure. For people trying to run
production shops this simply isn't an option.
So here is my two cents on the issue: as you introduce new features, pay
attention to the support issues that the user will face when they
install it. You may decide that there is a compelling reason to force an
upgrade, but don't do so lightly -- the cost on the user side is
enormous. Support the latest libraries as you can, but try to build
tools that don't force users to step off the update path unless they
really need the features. This is especially important for "core"
And just to be clear, I think the GTk# folks are doing good work. It's
just that I'ld like to be able to use it without losing support for the
rest of my universe.
Best of luck, and keep up the good work.
More information about the Mono-devel-list