The Cairo operating system
Posted Jul 5, 2006 20:26 UTC (Wed) by
evgeny (guest, #774)
In reply to:
The Cairo operating system by farnz
Parent article:
Cairo release 1.2.0 now available
> So, by the same token, I assume you avoid all libraries, in case a distribution is fool enough to build versions that depend on libraries your users won't install?
I avoid all libraries that invariably chain with themselves absolutely different (and optional to their core functionality) API layers.
> You seem to advocate changing everything at runtime or startup time;
I advocate for maximal flexibility (as far as it hasn't noticeable negative side effects - and in this case, it doesn't).
> why can't I choose a different VM at startup time? Why can't Firefox drop the XUL handler, if I only need a HTML renderer without a UI? Why can't GIMP run without GTK+, if I'm only using it from the command line? If I'm not planning to use text, why does GIMP pull in FreeType and Pango?
1. Not sure what you meant (i.e., in which context) by VM, but the rest would be really great. Why don't you think so?
2. In fact, in the above, "would be" should be replaced by "is". I suggest you do e.g. "ldd /usr/lib/libgimp.so" and verify that the base Gimp functionality is available in a clean (no gtk/X/...) way. This is a sign of a well-thought design.
> My point is that the mechanism works for the currently intended uses of Cairo,
No, it doesn't. The fact is you _can_ build Cairo without the X stuff and other cholesterol additions, so such a use (alongside with others) _was_ intended. Yet, when considering Cairo as a mainstream 2D rendering API (which is obviously what Cairo devs think of it as), it becomes clear that with the current monolithic design this will never be realized except in DIY distros like Gentoo.
> and provides a small, but measurable benefit for them in terms of memory usage as well as time in their choice of application.
Who cares about extra half a millisecond or a few bytes?! And are you serious the choice (i.e., monolithic vs. plugin design) was ever discussed and decided upon based on the performance considerations?
> It also makes their code considerably simpler to write in the first place
OK, now this boils down to the truth. That's the whole reason - it simply has NOT been designed/thought of/coded YET. Adding another mumbo-jumbo backend is cooler than doing the backend separation in a proper way, that's all.
Now, please notice that I'm NOT criticizing the priority list of the Cairo devs. Most of us (myself including) is coding FOSS stuff for fun. Let mumbo-jumbo be first. But please, don't call a bad design by any other name. Perhaps this will help releasing Cairo-2.0 with all the backends as optional plugins.
(
Log in to post comments)