Showing posts with label GNOME. Show all posts
Showing posts with label GNOME. Show all posts

Sunday, August 03, 2008

Visions of GNOME 3.0

Introduction

I've been silently digesting all the GNOME 3.0 thoughts for a while now. Then, yesterday, I installed KDE 4.1 and all of a sudden things kinda crystallised in my mind. I'm a marketing person, so I tend to think in terms of users; and user needs and wants.

In what follows, I will assume that in any GNOME 3.0 release the GNOME 2.x values (Powerful, Simple) will be incorporated. I would like to see GNOME's next major release add to that list and I've got a tag-line all ready: GNOME 3.0: Helpful. In what follows I will try to explain what this means and why I think it's a good idea.

What do you mean, "Helpful"?

I mean that GNOME (the development platform and the bunch of officially blessed applications that comprise a release set) is a set of enabling technologies that enable developers and users to get stuff done using computers without putting barriers in the way. In other words, user experience.

What, then, are the barriers that get in the way of getting stuff done? What would produce a qualitatively different release of GNOME, one that makes using it feel different?

Uninterrupted workflow

Has it worked?

Why, why, why does it take the simplest of applications (a text editor or a terminal) more than a second to start up? At least there's a little animation to tell me that my request is being considered, but why is it taking so long? Should I be worried? And if the animation happens for requests (commands) that take a long time, why doesn't it happen for all of them? Many times I've clicked on the update manager icon in the panel twice (with a delay of a second or two between clicks) because nothing seems to be happening. And then, of course, I get two instances of the application running (eventually).

This behaviour interrupts work-flow and train-of-thought. Application startup time is a seemingly small issue, but consider how it would feel to use a computer when there was more-or-less instant reaction to user input. It would become a qualitatively different experience.

With the work on GNOME-Mobile underway, can we get that work for re-jigging GNOME to work well on resource-constrained machines back into "mainstream" GNOME? Please? That would be really helpful.

Has it crashed?

Why, oh why, do applications fail to repaint the screen or respond to user input (mouse clicks, for example) while they are waiting on disk or network I/O? Has the application crashed (and do I need to kill it?) or is it actually working "normally"? Do I have do interrupt what I'm doing to attend to it, or shall I just wait?

It has crashed! Why?

OK, so a GNOME application has crashed. What do I do now? Start it again and hope it doesn't crash again? And if I got an error message, does it actually give me (a non-programmer) a clue about what to do in order to prevent it crashing again? If it's a problem that others have faced and solved, can I get their solutions quickly and easily? (Reverse Bugzilla?)

Helpful summary

So, priorities for GNOME 3.0 from the user-experience point of view. In summary we need to increase responsiveness:
  1. Reduce application startup time

  2. Eliminate blocking UI on I/O

  3. Automatic bug reporting

  4. Automatic bug solution/work-around suggestion
That would be helpful.

Mutual Help

All the above is about developers helping users. But how can users help developers? By writing documentation, of course! But it be "user" we mean "non-programmer", how easy is it for a user to "contribute" to the community rather than just taking?

User-contributed Documentation

It seems to be a truism that programmers hate to write documentation. Well, maybe not hate: probably they've just got better (more interesting) things to do. So let's harness the type of goodwill that gets people posting to user-to-user help forums and writing Wikipedia articles. But let's not start another "social networking" web site. Let's put the good stuff into the documentation that comes with the software.

Currently in order to do that a user must learn a markup language, and hence a write-compile-test cycle of working. Probably a (D)RVCS system too. Can't we create a tool that would make it easy for a user to submit an edit to existing documentation (including tool tips) or create an entirely new chunk of documentation? People would actually use it.

Then we'd need an editorial layer. The maintainer(s) and their trusted lieutenants need to do that. But "trusted lieutenants" need not be other coders. They could be simply particularly clueful users. But they'd need easy-to-use tools.

That would be very helpful.

Summary

I've written about things that bug me when I'm using my computers: things that get in my way, make me focus on the software rather than what I'm trying to do. Addressing these issues is not trivial, but it would produce a quantum leap in user experience compared to any other GUI that I've ever used (including various versions of Windows and OS/2).

Why should you care? GNOME will never, ever, gain significant market share if it's at least as good as the alternatives, with the additional benefit of being Free. Only if it's obviously, immediately, better than the alternatives will it grow, What is "better"? Well, "not so annoying" would be a good start.

I've written about helpfulness from the user's point of view. Perhaps someone who knows could write about it from the developers (ISVs?) point of view?

Saturday, April 21, 2007

Enhancing the User Experience

Federico is the business. Why? Because he is working on removing some of the annoying things about interacting with computers. This projects excites me more than almost any other that I can think of right now.

That is all.

Thursday, April 19, 2007

Branding

So, Elijah brings up an interesting point about GNOME (or Gnome) branding. I suppose I shouldn't really have opened that particular can of worms (the literal meaning of the acronym) in a post that was essentially about something different. But it is telling that most of the feedback I've had has been about this, rather than the whole "the Network is the Computer" idea.

It seems that anyone who has an opinion believes that we shouldn't take the meaning of GNOME literally. And many other people believe that because that is so, we shouldn't capitalize it, so it should be written Gnome.

I don't really care about these issues, except that from a branding perspective:

  • consistency really helps
  • if there is no compelling reason to call it Gnome, why do we call it Gnome?
This is not meant to be a troll. It has been said in the past that it's kind of a dumb name (because of the meaning of "gnome" in English), and that we could probably survive a name change without too much grief.

What would happen if we changed the name? All the people who currently use Gnome would either say "great" or bitch and moan. I doubt that current users and developers who would bitch and moan would then abandon Gnome because of a name change.

But all the people who do not use Gnome (or had never heard of it) would now have a (hopefully) more attractive and meaningful word/symbol to attach to this very abstract concept ("What is Gnome?").

What are your opinions on Gnome branding? When Gnome 3.0 is released, should we call it something else? What's wrong with Topaz? ;-)

Monday, April 16, 2007

The GNU Network Object Model Environment

I was initially attracted to GNOME because of the meaning of its acronym. Wouldn't it be great, I thought, if my "Desktop" was an interface to the network? This was around the time where I first heard the phrase "The Network is the Computer". I want to explain a bit more about that.

The Network is the Computer

I don't know what was originally meant by this slogan, but I take it to be about distributed computing, rather than the client-server model. Note that this concept is not just about thin clients or mounting users' home directories over NFS. That is multi-user Unix, or client-server computing, and has existed for as long as Unix has. The "Network is the Computer" is something else entirely.

Dude, Where's My Stuff?

Distributed computing in this sense means that some of your apps and data are on the computer you happen to be interacting with at the moment, some are on some server somewhere (possibly belonging to a company or other organisation that you have some affiliation to; and possibly behind significant security barriers) and some are on (possibly many) other servers. Think of it like this:
  • The Unix way: everything is a file
  • The GNOME way: the Unix way, plus every file is on the network (everything is a "Network Object")
I know that that's not the GNOME way now, but that's what I thought it was when I first heard about it, and that's what I still wish it could be in the future.

My Stuff Follows Me Around

Many people interact with more than one computer, and many people spend significant time using that computer as an interface to the Internet. I suppose the largest number of people who do this use a computer at work or school and another at home. This leads to duplication of effort, and worse, duplication of data (and revisions of data), meaning that data synchronisation becomes important.

The "network is the computer" is all about (insofar as is technically possible) device-independent access to my stuff. If you can run the GNOME on a device, it should (screen and input device limitations aside) look and act the same as on any other device. The same data and apps should (device limitations aside) be available. Google apps on mobile phones show some ways in which this can happen.

The GNOME Online Desktop

There are a number of GNOME or Freedesktop.org projects underway that go some way to addressing the issues faced by the type of user described above. They inclu
  • Conduit: file sychronisation and conversion
  • Telepathy: abstract interface for messaging (not just IM)
  • Mugshot: Keeping up to date with what your contacts are doing on the network. Also application usage statistics (and "Click to install" functionality of apps, across distributions)
  • Galago: presence of people on the network
  • Big Board (in its current version) and/or Gimmie (in future versions?): GNOME GUI to the above functionality
These are projects that seem related to what has been called the "GNOME Online Desktop", which seems to be not so much a focused effort but rather an emergent theme. Also, I am just learning about these projects, and may (actually, probably) have got the sound-bite descriptions of the projects wrong. If so, please correct me.

The Future

Where to from here? It seems to me that if the projects listed above reach maturity and are fully integrated with one another, then we be much closer to true "Network is the Computer" functionality and could probably call the resulting version of GNOME 3.0 (or ToPaZ?).

What are your thoughts? In particular, are any of the pieces of the GOD missing? In particular, if you are a developer involved with one of the projects discussed above (or one that I've missed) would you be interested in participating in an interview (or helping write an article) about all this stuff for The GNOME Journal?