XGL redux

So the blue drop shadows guy wrote back by way of a new blog post to explain that I'm a silly bunny and it's fine because it's just a technology demonstration. He also suggested I read the comments on his entry, where people have come up with Really Useful Applications for his technology demonstration, such as:

"Use a different color for windows running as another user. For example, if I start an admin tool with root priviligies that windows would use a different color for the shadow."

So the problem with the suggestions is they stink of doing things ass-backwards: instead of identifying a problem then deciding on the best solution, someone codes up a piece of borderline useless eye candy and people come up with the best half-hearted justification they can manage for why it's Really Useful. Now if we were doing things forward, we would start by identifying a problem: there's no indicator of what user a particular application is running as. Now we've identified this problem, we try and pick the best possible solution. If we were working this way around, would the solution that immediately jumped into anyone's mind be "I know! Let's use a different coloured drop shadow!"? No. I don't think it would.

The problem with the "ooh, it's just a technology demonstration!" excuse is it's getting old. Novell has developed this shiny Xgl thing and touted it around as the next big thing. Everyone's jumping on the bandwagon and declaring how great it is. They're making it one of the cornerstone features of the next SUSE release. And yet, several months after it first broke, the only things that have actually been DONE with it are the useless bits of eye candy which were justified by the "it's just a demonstration!" excuse. The Xgl features Novell developers (and Novell - see for e.g. http://www.novell.com/products/desktop/preview.html , where Xgl is featured prominently as a new feature in their enterprise desktop product, for Pete's sake) are making a big deal about shipping in SUSE 10.1 are...the useless bits of eye candy that everyone said were just technology demonstrations. Where's the beef? Hasn't it been long enough that it's reasonable to start asking this question? Isn't it reasonable to argue that the development process of this technology has been compromised in the pursuit of PR opportunities?

Those are my questions.


ihaveskills wrote on 2006-04-26 09:26:
WOW, you are one angry human with some serious pent up anger! I think your argument essentially boils down to "everything that starts as a technology demonstration will be useless, so dont bother making it". And "useful software ONLY comes from identifying a need, specifications, planning, and absolutely none of that hacking and stuffing around kind of fun that people enjoy working on unix for" Good luck with that. If you spec it then im sure someone else will do all the hard work and code it for you. Or maybe you can code the holy grail yourself
jkeller wrote on 2006-04-26 14:29:
I've played with XGL a bit, and user experience is part of my professional game. I agree that much of it is mainly has "wow" factor, but there were two main effects that I find give true benefit (measurably so, I believe, but of course I don't have a study to back that up): 1) The cube for switching virtual desktops, an excellent use of a person's visualization abilities to create a metaphor for what would normally be a purely virtual concept. One Mac user I work with, long used to a dual-head arrangement, thought this would be the best thing since sliced bread for when his laptop was on the road. 2) The "gelatin" feel to windows. For edge-resistance and stickiness, the user gets a *much* better feel for what to expect of window behavior. For me, this is a welcome step away from hard numbers + algorithms and a move towards the shades of gray we encounter every day. It makes the computing experience that much more immediately understandable by tapping into our brain's comprehension of laws in the physical world. Also nice to have are the "Mac-alike" features (the Exposé effect) or real-time thumbnailing for Alt-Tab switching. Real-time thumbnailing in task switching makes much more sense than using a generic app icon: a switching tasks thinks, "I was working with text, go there", not "I want to switch back to the word processor". I should mention, none of these things are t features of XGL but rather its window manager. I would find them equally welcome in something else. And I think that technologically, XGL is a very nice step forward for the things it makes possible. In the end, it's sure to be iterative and people will make mistakes (including over-eager bling-lovers). But the discovery of atomic fission didn't in itself make nuclear weapons (that took people with that desire), nor did it make them the only possible outcome (but that needs thinking).
jkeller wrote on 2006-04-26 14:31:
Oops: "And I think that technologically, XGL is a very nice step forward for the things it makes possible." I meant something more along the lines of: "And I think that technologically, XGL *and other compositing engines* are a very nice step forward for the things they make possible." (i.e. the useful interface improvements that I listed above, which couldn't be done - or not well - with what had been previously available.)
adamw wrote on 2006-04-26 18:40:
skills: *I'm* angry? I think you need to buy a mirror. jkeller: good points. I'm not convinced a 3D acceleration layer is really needed for any of those effects (except the cube, of course), but obviously they make them easy to code since they have been coded. There was an Expose-alike before Xgl, IIRC, though the Xgl guys say theirs is better because it uses the live windows rather than a snapshot (I'm not entirely sure that's a big deal, though - I don't think any of my windows would change so much while I'm alt-tabbing through them that I wouldn't recognise them without a live preview). To me the cube looks like something that will get old fast, but maybe some people will love it forever...
jkeller wrote on 2006-04-27 16:29:
Yeah, you're probably right that you can do similar effects without 3D acceleration (in fact, like you point point out, most of the things I mentioned could be done without it). I think it's interesting that there's a toolkit to allow this, instead of people having to reinvent the wheel. It also allows abstraction, which is nice because future enhancements (or better, existing hardware) will help things a lot. Good point about live thumbnails, I guess I didn't think about a snapshot before alt-tabbing. That would be enough for the benefit I was thinking of (representing the content instead of some abstract idea of an app). As a big-time user of virtual desktops, though in limited numbers, the cube is just about perfect for me. I could maybe imagine different transitions (since I already understand the concept), but the cube has the advantage of giving a transition (where am I coming from, where am I going) and a spatial face (pun intended). I could imagine maybe getting tired of the cube effect if I used it all the time (I don't use Xgl for my non-test Linux desktop), but like certain other choices, I would be willing to accept it as the default simply because I couldn't think of better and like enough of its benefits to keep the whole thing. I think a lot of users would fall into that category (at least, the users Gnome targets). Phew. I think I need to do more work and less blog surfing... Er, maybe tomorrow. :-D
tyme wrote on 2006-04-30 23:15:
I think the point in using the graphics layer is to take some stress of the CPU - if I understand how XGL works properly, when compared to regular X. By using a graphics layer the effects are rendered through your graphics cards GPU, where as if the effects weren't being run through a graphics layer they'd by processed with the CPU - causing the rest of your desktop to slow down a bit when processing the effects. Since, during regular desktop use, the GPU sits pretty much unused (until gaming) XGL takes advantage of it to take some of the load off the CPU to make things a bit...smoother. I could be wrong :-/
adamw wrote on 2006-04-30 23:21:
Well that is slightly useful, but it gets rather overplayed. Try leaving top open for a while and watch the CPU usage of X. It ain't what you'd call high. And, as is often noted, normal desktop use would be hard pushed to use 100% of a five year old Pentium 3's cycles, let alone modern CPUs.
tyme wrote on 2006-05-02 04:00:
Yes, X itself doesn't use a lot of CPU, but regular X doesn't have the added features (be they useful or eye candy) of XGL. Whether or not some of the features of XGL are useful is another discussion, but if your goal is to have the features of XGL (wobbly windows, real-time window views in alt+tab and the "expose"-type feature, etc.) then you are better off doing that through the graphics card then trying to make the CPU do it. I use XGL every day (for about a month now), and find it very functional and very useful. Specifically, I like being able to drag a window from one virtual desktop to the next simply by focusing it, pressing ctrl+alt+shift and an arrow key. Virtual desktops were nearly useless for me before this feature. This is probably the feature I use the most. And if you change the settings for the "wobbly windows" you can basically "throw" a window around the screen. This may not be useful, but it certainly is fun! ;)