The Cairo operating system
Posted Jul 4, 2006 17:40 UTC (Tue) by
jimmybgood (guest, #26142)
In reply to:
The Cairo operating system by nix
Parent article:
Cairo release 1.2.0 now available
The fact that cairo can render to another surface is not a comfort. That's one of my concerns. I don't want my computer busy drawing someplace that I can't see and can't control while I'm trying to work on something else.
Yes, I know I can compile programs with subsets of features, in fact I take great pleasure in doing just that. I just counted 25 features that I have turned off in my version of Seamonkey. I learned quite a while ago how to add c preprocessor commands and hack configure scripts to trim useless crap out of software.
To avoid semantic arguments, what I mean by a modular approach is like the Linux kernel. You can load the modules you want or just delete them if you don't trust them. By plug-in approach, I mean like Abiword. You have a configuration menu where you can explicitly enable or disable plug-ins. With Cairo, when it's built with libwoodburning3 support, as the Debian package maintainers will insist on doing, if you turn off your wood burning appliance, gtk+ apps will fail to load with the message, "cairo: /dev/laser0, no such device" hidden in your logs somewhere.
For most folks, though, if someone wants to install any gtk+ app in, for example, Debian, they indeed are going to be obligated to have directfb on their system. The package maintainers could add directfb support to the udeb for the installer and build the regular package without it. But package maintainers as a rule take the "kitchen sink" approach to packaging and developers should be aware of this tendency. A good example is enchant, which was originally conceived so that if an app needed a spell checker it could link to enchant and enchant would find an available spell checking backend. If there were multiple backends available, the user could choose which one he preferred for any particular purpose. The Debian maintainer, though, perverted this into requiring every backend, preventing the user from choosing which one he wanted and hiding which one was actually used.
Just because the marginal cost of hard disk storage is 50 cents per gigabyte doesn't mean a user who needs two more gigabytes can spend a dollar to solve his problem. For most people it means they have to buy a new computer for $500 with Windows XP preinstalled. The complexity, size and resource demands of software creates a significant barrier to the adoption of free/libre software by literally billions of people.
Stability and security are two concerns that affect every computer user. Every library and piece of software that is run on a computer has a chance of developing vulnerabilities, can crash or run in infinite loops. Software isn't perfect. Should glitz be packaged the same way as the other backends, a 3d driver bug could lock up my gpu and make my computer nearly useless. And if glitz isn't packaged that way, then why not package the other backends the way glitz is?
(
Log in to post comments)