Gnome

April 5th, 2004

In response to this, I have a few things to say. Firstly I thought the original article was very much on target - opensource software *does* suffer from poor user interfaces and it is typically because it’s so difficult to get a cohesive UI out of a widely dispersed group of people, from different cultures and in different time zones.

The particular issues I had with that particular response:

The newly designed save and open dialogs are a great example of the simplicity the GNOME project seeks to achieve. True, the dialogs may irk those who like tab completion and other esoteric features (I’m guessing their issues will be worked out in future releases) the boxes are notably simpler and clearer than their Windows counterparts.

And they look just like the OS X file dialogs. Not to mention the fact that the extra mouse click introduced by the “browse for other folders” toggle makes the user interface slower and less intuitive. It was a mistake when Apple put it in and it’s a mistake when Gnome copied it - hopefully the Gnome mob were smart enough to make the dialog remember whether the user wants it expanded or not (as Apple eventually managed to do).

Because free software environments like GNOME are founded upon cooperative development they can avoid the problems caused by corporate competition and branding. A user in Windows XP will have to navigate Windows Media Player, Real Networks Real Player and Apple Quick time in order to play media files.

Linux offering you less choice? and that’s good? competition is bad? Woah, I think I just entered a not-so-parallel universe. Of course, the fact that users could just use say VLC on OS X and play anything they like isn’t mentioned and I’m certain there would be all-in-one media players for windows too.

Their applications menu will be cluttered and the number of interfaces to learn is higher than in GNOME where a user must only find and learn Totem Movie Player. A properly configured GNOME menu can eliminate the need to learn application names and drastically clean up the desktop.

A properly configured anything can eliminate the need to learn application names and drastically clean up the desktop. I’m sure the author is aware that users can choose what goes in their Windows start up menu just like they can choose what goes in their GNOME menu.

Configuring GNOME is becoming simpler with each release. Most preference dialogs in GNOME are simpler than their Windows, KDE, and often even Mac OSX counterparts. One clear example of this simplicity is the new wallpaper chooser in GNOME 2.6.

GNOME is a lot easier to configure than it used to be and that’s great. I love the fact that I can set my wallpaper easily - if only I could say the same for setting my screen resolution. Apparently configuring printers is hard on linux too but I haven’t tried to do that myself lately.

I’ve chosen to highlight Muine, however, for it’s excellent original design that outshines Apple’s iTunes

Wow, another parallel universe thing. Maybe Muine is this completely hidden secret that no one has discovered or maybe all the rave reviews of iTunes that haven’t mentioned how inferior it is to Muine are at least partially accurate.

Muine’s interface is far simpler than iTunes and especially Windows Media Player.

That’s great - but is it as good? Can it let me organise my music in the way I want to and sort it into the categories I want? People don’t want simple, they want effective. An interface which is difficult to learn isn’t effective, but a simple interface isn’t necessarily effective either. It all comes down to how productive the user is with that interface.

Apple’s iTunes, featuring non-standard widgets, long non-descript lists, buttons that change function in various contexts and hide functions in other contexts, and afterthoughts such as album covers (which are not automatically fetched) as far as possible from the song information that they are supposed to be associated with.

Album covers are obviously the most important thing in a music player. Those non-descript lists - they would be my playlists. I created them, I like them, I listen to that music. If I didn’t want such long lists, I would break them up into other playlists (as I do), possibly even using smart playlists to let iTunes break them up for me according to a set of rules (which I also do).

Now, I’m a huge fan of using native widgets instead of non-standard ones, but I’m yet to see anyone come up with a version of iTunes which uses standard widgets and is as effective.

As for Windows Media Player - yes it’s crap, of course GNOME has something better. Heck if you teamed up Skippy and Lassie, they’d probably come up with a better interface.

Epiphany Web Browser

See Safari, Opera, Camino, OmniWeb… They all include pretty much the same features as each other these days. The competition in the browser market in terms of UI (as opposed to market share) is definitely not with Internet Explorer.

The new version will sport Human Interface Guidelines compliance and integration with the rest of the GNOME desktop

Great! Of course, this should be a minimum standard, not a new feature. It’s good that progress is being made in that area though. That’s the kind of thing the Daring Fireball article was talking about. The fact that it’s coming in a future release is great, but it should have been there long ago.

Gossip is a very simple IM client and will offer a level of integration not possible with a proprietary solution like MSN Messenger, Yahoo! Messenger, or AIM.

Again with the simple. I don’t want a toy IM client! I want an effective IM client. Yes it should be simple to learn, yes it should be powerful, yes it should do what I want it to. Also, why can’t a proprietary solution integrate as well into the OS? iChat integrates extremely well, so does MSN. The third party Fire client on OS X seems to be well enough integrated and there’s no technical reason it couldn’t be just as integrated as iChat. It’s attention to detail that makes things integrate well, not whether or not it’s proprietary.

Dashboard is a project started and run by Ximian’s Nat Friedman. The idea of dashboard is use about what the user is currently working on to give the user additional useful information for the task at hand.

Now you’re talking! I can’t wait to see this in action and working. This is what people should be working for on Linux - new ideas, making things better, innovating! Not just copying the latest Windows or Mac features. The real test of Dashboard however will be how well every other application integrates with it. How well will it work with OpenOffice? With X-Chat? What about all those other really popular Linux applications that people use everyday? This isn’t something that just the GNOME folks can control, they need the help of people on all those different projects to work together and integrate with each other. Most of all, GNOME and KDE need to work together and integrate with each other.

Neither system currently provides everything that is needed for using a computer, so users will inevitably wind up using something that wasn’t specifically created by GNOME and it won’t fit in with all of the cool stuff the people at GNOME have been creating. That’s the great problem that John Gruber was talking about and that a lot of people have pointed out over a long time. The competition in the Linux space is good in many ways, but the fact that the competition isn’t working together and none of it is dying out is causing usability problems. It’s good to see GNOME becoming more and more of an OS in itself rather than being something that runs on Linux. I’m sure KDE is doing a similar thing.

There’s a bunch of other cool stuff mentioned in the “What’s Coming” section, I look forward to seeing how it comes out. However, it’s not here yet so it doesn’t really count for much. Apple has a whole bunch of stuff in the works for OS X 10.4, they just haven’t told us what it is yet. Microsoft has a whole bunch of stuff planned for Windows and they’ve told us quite a lot of what it is (though undoubtedly there’s more). Computing is a rapidly moving industry, if you didn’t have a whole bunch of really cool stuff in the works, you wouldn’t even be in the race.

This has all been very critical of GNOME and that’s somewhat unfortunate. GNOME has come along in great leaps and bounds and it will continue to do so. GNOME is a viable option on the desktop for technically adept users who don’t mind running into a few things every now and then that are a real pain in the neck (like configuring printers or changing your screen resolution). It definitely has the potential to become a viable option for all users, but to do so the GNOME developers have to eat some humble pie and listen to the complaints from people like John Gruber, then do the hard work to improve things.

There’s no point in trying to convince people that Linux is easy to use through words, you have to convince them by making Linux so damn easy to use that there’s no argument left. Talk is cheap, but the fact remains that there are a whole lot of people out there that try Linux every day and give up because it’s just too hard. I see plenty of people doing it every time I go to a local Humbug meeting and look around the room. There’s a lot of stuff that Linux needs to improve at and it will get there - the question is, how far ahead will it’s competition be by the time it gets there?

XUL

April 5th, 2004

Jono Bacon comments on how XUL could be great for providing more interactive web applications. My take on it: he’s gone off the deep end. I just don’t get what the current obsession is for having to run everything in a web browser these days.

This framework not only brings the web browser out of the dark ages in terms of the potential for interaction, but the Mozilla developers made the right choice and picked XML as the language for specifying user interfaces.

See here and here for why XML not a good programming language.

This choice not only makes user interfaces extremely easy to construct (with the benefits of XML DTD validation to boot), but the fact that the interface code is in XML also opens up a whole world of potential for further processing of this interface code. There is no reason why someone could not write a thin compatibility layer to convert XUL interface code to a fake table/div/image based interface for none-XUL browsers.

DTD validation == compiler validation. Now there’s a new and exciting concept. Extremely easy to construct == .

As for the possibility to post process XUL, take a look at something like BCEL or most of the aspect oriented add-ons for Java that modify bytecode on the fly. I’d also question just how useful it is to be able to modify your application via XSLT anyway. The given example (converting to normal HTML for non-XUL browsers) is a throw away because if non-XUL browsers could do what you needed you wouldn’t be using XUL in the first place.

The exciting thing about XUL is not XML though. The truly inspiring aspect of XUL is the potential to standardise on Mozilla as a platform for developing complex applications.

Exactly what we need. I mean all this talk about web standards and cross-browser compatibility is a total waste of time. What we really need is new ways to lock people into a particular browser by using extensions to HTML. Did I just go back in time about 5 years?

Application developers are going to need to consider how much user interface code is hooked into application logic. This is of particular importance if cross platform support is one of the goals of an application, and particularly if this cross platform support should be native and not byte-code running on a virtual machine.

But XUL is effectively bytecode! Sure, it’s exceptionally verbose and slow to parse, but it is essentially a platform independent representation of computer instructions which is translated to machine code at run time - just like bytecode is. It’s probably best described as an interpreted language, but the end result is the same. Certainly there is nothing about XUL or Mozilla that is native since they made the (IMO, horribly misguided) decision to emulate widgets and use themes to make them look like the real thing.

If a developer was to write all UI elements in XUL XML instead of native code within the application logic, the XML could be converted to this native toolkit code using a compatibility layer.

How is this different from writing all UI elements in Java, wxWindows or any of the other cross-platform GUI toolkits and converting them to native toolkit code using a compatibility layer? There’s no need to use XML to do this and it’s a really bad use of XML because of the inherent verbosity of XML.

This could dramatically open up the potential for a new breed of web based applications that could be cross platform and cross browser based if the W3C were to adopt XUL as an official recommendation.

Yep absolutely, because CSS 1, 2, 3, XHTML, JavaScript and all those other webstandards are being so well supported by browsers now, adding thousands more functions that they need to support will solve all our problems. If one of the big complaints about HTML and JavaScript is that it’s so hard to make things work correctly on different browsers, what inherent quality does XUL have to prevent that from happening again?

The Mozilla project is proving to be capable of not only creating a strong and impressive suite of applications, but is also using the combined intellect of the development community to harness the potential for not only Mozilla based development, but development in general.

I want my applications custom tailored for the task at hand and tailored to fit in well with my OS of choice. I don’t want to use my browser for everything, it’s not designed for that. I don’t want to use anything built on Mozilla because it looks so horribly out of place on OS X (which is one of my OS’s of choice). I’d also like to actually use my own processor, I paid good money to get a nice fast one, making everything a thin client makes me dependent on a) having a net connection, b) having a fast net connection and c) the server having enough horse power for all the users. If your app is going to be on my machine anyway, it may as well be standalone and leave my browser to do what it’s good at - browsing the web.