alanc @ sun.com

Alan Coopersmith’s blog

Random thoughts of a disorganized mind...
(and though it should be obvious, while Sun pays me to think about things, they disclaim any responsibility for these thoughts, nor do I claim what I say matches in any way what Sun thinks)

Loading...
http://blogs.sun.com/alanc/date/20040502 Sunday May 02, 2004

X Dev Conference, part 2

Back from the conference now and trying to finish putting together all my thoughts while fighting jetlag and a nasty hay fever/allergies attack.

The final day went through toolkit and other client-sides issues in the morning, including talks on Cairo, Motif (yes, it is still alive!), and GTK.

Cairo is a new graphics rendering library, based on a PostScript-like model but designed to support SVG easily and well. It's not reached widespread adoption yet, but looks like it may within the next year or so, as there are people working to use it in GTK, Mozilla (for SVG at least) and OpenOffice.org. Carl Worth, who created Cairo, wrote a new slideshow viewer program for his laptop using Cairo the night before his presentation. It was also amusing (and when you think about it, somewhat amazing) that during his presentation, when Keith pointed out he was demoing the old version of the fdclock, which has some bugs drawing shadows, that he could simply pull the new source from the CVS server at freedesktop.org, rebuild it, and re-run the demo app in just a minute or two.

One of the big topics in the GTK talk was performance, which aligns nicely with various investigations we've been doing at Sun in GNOME desktop performance, especially on large Sun Ray systems. Owen Taylor pointed out that the traditional x11perf benchmark tool is not very useful for tuning X to work well with GTK - it tests hundreds of things that GTK never does and doesn't really test some of the things it does do. (Mainly GTK's use of X drawing routines involves drawing solid rectangles, images, and text.) They need benchmarks that better simulate what GNOME apps do. They have dug out some things that were poorly designed and fixed them - especially the work they did with Jim Gettys to reduce the number of needless round-trips to the Xserver to reduce latency. They complained about not having a good set of tools to find these issues, at which point I just had to mention how useful the DTrace facility of Solaris 10 is, and how its already been used to help in this area, by tracking down some pathological behavior in the GNOME stock ticker applet (see section 9 of the DTrace Usenix paper (PDF) for the story behind that).

The other big issue Owen mentioned was X extensions - currently there are about 8 GTK uses, and they all have fallbacks if not present. He pointed out the beauty of an extension does not matter - it will be used if it provides obvious benefits to users that applications can't do themselves. XKB is a good example of this - it's hairy and messy, but useful, so it's used. He also pointed out that "if it's not deployed, we can't use it." There are various implications here that we may need to think about in our STSF project.

Peter Winston, of Motif consulting/training/development/tools firm ICS gave an interesting talk about what is going on in the Motif and OpenMotif world. He pointed out that while Motif may not be sexy or cool, it's still heavily used as there are millions of lines of code written using it and many programmers experienced with it, and those are both still being put to use, both on existing legacy projects and even some new projects. He claims that they are seeing many of their customers migrate to Linux, not because it's free (without cost) or free (GPL/etc.), but because they want commodity hardware and want it to work. (Which of course caused the Sun zealot in me to want to scream out "That's why we have Solaris x86!" but I behaved myself.) They have also seen migration away from Motif in several waves - first to Windows, then to Java, now to Qt.

Peter gave a mantra that is very familiar to those of us who work on Solaris - he says the three top concerns of software developers for the API's they use are:

  1. Don't break anything
  2. I really mean it - Don't break anything!
  3. Give me API's I can count on.
He admits a big mistake in the first release of OpenMotif they did was breaking binary compatibility. They are working on new features for OpenMotif while trying hard to stick to those 3 rules. New features coming in include support for UTF-8, Xft2, wheel mice, modern image formats, and accessibility (based he says on "Sun's work for gtk" - go Sun!).

The conference concluded with talk on the "big picture" of X (at least that was the wrap-up session, unfortunately we had to leave before it finished to catch our plane). It was noted that the barrier to entry to free desktop development is still high, for many reasons, including:

  • Mostly written in C, while many programmers today are more familiar with Java or Visual Basic
  • Not much developer-related documentation, especially not in the developer's native language if that isn't English
  • Need overview documentation of the whole system (i.e. which lib should I use to load images in a GNOME app, imlib or gdk-pixbuf?) There should be a simple checklist of what it means to be a well behaved application (i18n support, accessibility hooks, etc.)

My "big picture" summary would probably be that there are more people working on X & related Linux/Unix desktop projects today than there have been in a long time, and they are mostly happy to work with us as long as we learn to work with them. There were definitely mixed feelings towards Sun - they like what we've done in the GNOME world, especially with the work we've donated on documentation, accessibility and globalization, but they aren't too happy about the Java license and open source issues there. They are thus apprehensive about Looking Glass - they're excited by it and would like to work with/on it, but to do so, would want the interaction to be more like what the GNOME team does and less like what the Java group has done. (Of course, this is all sweeping generalizations, as the community has very diverse opinions, but "they" above is the general feeling I got from most of the people at the conference and in the IRC #xdevconf channel.)