GNOME Designer and Red Hat developer William Jon McCann.

Foto: Jon McCann

One important aspect GNOME wants to focus on in the future is app development, the pictured "GNOME Documents" already being in active development (although the picture is from a mockup).

Grafik: GNOME

GNOME Music and...

Grafik: GNOME

...Photos are still in the Mockup state.

Grafik: GNOME

After years of focusing on stability and non-disruptive improvements, the GNOME desktop recently took a big chance: With the release of GNOME 3.0 a fresh user experience was introduced, breaking with many of the old concepts. One of the driving forces behind the vision and concepts of GNOME3 has been Red Hat developer William Jon McCann. During the recent Desktop Summit in Berlin Andreas Proschofsky had the chance to talk to McCann about the way ahead for GNOME3, how the project deals with criticism and the importance of GNOME3-optimized app development. After being in development for quite some time GNOME 3.0 finally was released a few months ago. Are you happy with how it turned out in the end?

William Jon McCann: Yeah, I'm definitely proud of what we accomplished. There's always things when you look back that you wish you would have had a little more time to finish or polish. But with GNOME 3.2 we have the opportunity to get to some more stuff that we wanted and six months after that as well. What are main points that you had to skip for 3.0?

McCann: I think most of the basics are there, the basic interaction stuff is in place. Except for touch. Touch enablement is something that we need to get to pretty soon. But both from the design side of view and the implementation we just didn't have time to approach it. We just had so much going on already.

But as far as the whole GNOME3 story there is still a lot to do. What we've been trying to do with 3.0 is really just to approach the core shell and the basic user interaction. The major initiative that will follow is application development for GNOME3. And once we gain insight into what GNOME3 applications will look like then we can actually develop a better developer experience around it. And that includes writing new user interface guidelines and better and simpler APIs. Do you think GNOME already has a strong developer story?

McCann: Oh – we have a lot of work to do. It's not a good developer story at all. Especially if you compare it to some of the easier to develop platforms, the mobile platforms or even compared to the web.

As for which apps we do want to write in GNOME we have a list of about 6-10 that we consider a "different class of application" than core utils. Things that every computer needs to be able to do. Like managing photos, music and documents. So we want to write some of those basic utilities, that are more part of the OS than a third-party-application would be.

In the development of those we will basically be discovering what works and what doesn't work and probably need to make design decisions in our toolkits that enable those. So hopefully in the development of – say – the documents app – that we are actually working on right now – we'll learn about how GTK+4 might be designed. What facilities we will need for designing an application for GNOME3. Are you going to write totally new apps for that or reuse existing ones?

McCann: Whether or not they are new code – that's up for the developers to decide. We really don't want to specify anything about the implementation and let the people who do it choose. But at least for a handful of things we want to design something that's specifically for GNOME3. That's consistent with the rest of the interface, uses all of the right interactions, uses the application menu properly, is designed for a laptop or a tablet. So we want to lead by example. Do you want to define a developer story that tells people which languages to use, which tools to use?

McCann: I think a lot of this will emerge from this process. We'll see what works, what can get us to these user interface goals in the most efficient way. We don't want a lot of redundancy, we don't want a lot of overlap, we want consistency – actually the same goals we had for our user experience. There's a strong parallel here. People think of these things as dramatically different, but they are actually not. You actually need a good design process around the developer experience cause developers are just as much users of the system as the end users. In fact in some cases they are even more important because if they didn't exist, why would you want to use the system? So that's why other platforms do focus on making it as easy as possible to write apps. And that's something we are just starting to do. It's possible to write apps, but it's certainly not easy. Besides stuff like Documents and Music what would be the other of those "core apps" you mentioned?

McCann: The ones that are most essential are the ones that interact with the core desktop itself – like the shell. Things like what you would consider "Finding and reminding", which you used the file manager for in the "old days". We are breaking those down to a few things: "Music", "Photos", "Documents", "Videos" – though videos don't necessarily need to be in a separate application, because they are either music-like or photo-like. And then "Downloads "- we have some very sketchy ideas on how to centrally manage up- and download in the desktop.

But outside of that there are a couple of other ones that touch the shell. Most obviously a calendar which already is in a pretty prominent place in GNOME3. It would be really nice to have a simple stand-alone calendar built just for GNOME3. A simple mailer would also be very nice, one that has all the interactions the way you would expect them in GNOME3. We have Evolution, so we certainly can learn a lot from that or reuse parts – but if somebody wants to start from fresh, that's fine too.

Those are the basic ones. But we also have a couple of others, like remote access that we would like to do better on. That's been in GNOME since some times but always felt a bit foreign. In the past Zeitgeist and a Journal view has been proposed a few times as a solution for "Finding and Reminding". So where does this fit with GNOME Documents and all the other apps coming up?

McCann: Well – GNOME Documents has a view that is sort of a timeline. Journals are nothing that typically are populated automatically in the real world, you make explicit notes. So they are hard to do automatically cause they get really noisy and not everything you do is significant. That's sort of a research problem that is really hard.

So what we tried to do – at least in the design for GNOME Documents – is that we really only show things that are "Office"- or PDF-like and you just have a time ordered list of things that you added. And this is not a new idea by any means, Google Docs has this as their primary interface. And that seems to work pretty well for people. Things on the top are more relevant and things that get older and less frequently used kind of fade out of your view.

Whether or not people use Zeitgeist for this – I try to stay out of the implementation issues. Zeitgeist is definitely one approach. The person working on Documents right now is Cosimo Cecchi. And the way I think this should work is that the person who works on it should decide that. I honestly don't know if there are still other journals in development or not. But there is certainly room for people working together. Having pushed device management in the shell and now working on all those new apps: What's the future role of a file manager going to be?

McCann: Hopefully a lot less prominent role. The file manager won't go away by any means. But it's a pretty advanced interface, that's something if you want to really mess around with your file system, if you want to do complex file organization. Also it really only works with stuff that is local – or at least pretends to be local, as we do with network file systems today.

But I think what is becoming more and more common today is that people use cloud services for that types of data. Photos were like the first to be cloud-enabled – if you will, Flickr and Picasa are enormously successful. And Documents are also increasingly cloud-hosted. Music was the latest, that was a sort of a hold-out because of a all sort of legal complications but people worked around it by using YouTube to listen to music.

There's only so much you can have on your device and it is increasingly common to have a swarm of personal devices. And anytime you talk about device – data synchronization you talk about a lot of pain.

That's one of the reasons why Apple and others decided to move away from the file manager to something like a data manager, what iTunes became once it stopped being just a music player. It's about getting your data from your digital hub or laptop or desktop to your devices. It's a synchronization hub.

At the same time we also need to accommodate people who do want to only work locally, for privacy or other reasons. So the goal – in general – is that it doesn't matter anymore, if some form of data is stored locally or in some sort of cloud service?

McCann: That's the sort of aspirational goal – and we hope to get there. But what I really would like to see is: You get a new device and you sign in for the first time, you create your account and you tell it about yourself, tell it about your online identities. And you turn this services on and "by magic" your data appears in your music player, in your photo app, your email-client or your document apps. Things should just be there, without any extra effort. But that's only the new system case and we also need to accommodate legacy – or current – use, where you have a lot of stuff locally. So conceptually I visualize all those things as different data providers. And it gets aggregated in a view of all your documents. In this model, wouldn't it then make sense to revisit the ideas of something like the GNOME Online Desktop, to say have one combined identity stored somewhere, so you just have one central login and all this data is filled out automatically?

McCann: I think a lot of the ideas from that initiative make a lot of sense. I think it was very challenging at that time and maybe too early in the world to make that happen. So yes that would be a potential future, to sign in to a central GNOME account and you get all of the services immediately.

The way it is today you not only sign into your computer but also to every service in every app. So it's like three levels and that's a lot of different sign-ins. The first step is to take a step back and provide a service at the desktop level so you can sign in into the service and the apps get it automatically. But what you are suggesting definitely would make sense. To take it another step back and sign into your services at once. So what happens in such a model when there is no data connection available?

McCann: I think we can do a lot of things. Two examples we can learn from: One is – something you might experience here at the conference – we don't always have good connectivity. So what a lot of people do they cache Google Maps on their phone in advance, cause they can't trust being online when they are looking for the subway – or dinner. So that's one model we can follow. Proactive, explicit caching. Another one is Google Music: The way that works is, if you play a song it will be available offline afterward – at least for some time. And I think in the combination of those two we can get pretty close to have this stuff available, even when you are offline. When we are talking about the cloud, we mostly talk about non-free services. Does this then make the "free desktop" less "free"?

McCann: I do believe there is a strong motivation for most of us – myself included – to ensure that our digital lives are free. Are things less free because we are using non-free services? I think that they probably are. But does that stop us? No. I mean, nearly everyone of us uses Google for something. And even if Google is so far not evil you don't know the future. They are a corporation and do what's right for their shareholders and that doesn't necessarily mean that it's right for us or right for digital freedom. Whether or not we integrate with web services doesn't change that we are already using them. So in the short term we try to integrate with services that people already use. But what I hope will happen – and that's where it gets a bit speculative – is that this will bring attention to the fact, that a lot of these services are not free and people spend some time to develop better solutions. Recently there has been some very vocal criticism of GNOME 3.0, how do you deal with that as project?

McCann: I think it does affect us as a community more on a personal level than it does on a professional level. It's never nice to hear people that you have so much respect for offering their opinion very mean spirited. But that is their right, everyone has a voice on the internet and can express what they think. And we listen to it all and don't want to ignore it. However: We do have to remain focused on what we are trying to accomplish. Unfortunately on the internet – and in free software in particular – we have a lot of people whose voices aren't heard very loudly, and we have to take their needs into accounts as well as those who are vocal. And that's very challenging to do and very tricky to know what the less vocal people are looking for. So we have to remain sensitive to both sides.

As how we react to those latest criticisms: It's very difficult cause not all of those necessarily agree with one another. In some sense people who are against something think they have something in common, but when you look at it in more detail – which of course we try to do – very few actually agree on much of anything other than that's not what they are used to. But would you say there was some valid criticism voiced or is all this just "people hating change" for you?

McCann: It's certainly valid in the sense that people are not making it up and it may indeed not be what they like. And that's fine, there are a lot of different products out there that may fit their way of working better. But if you look at it from a historical perspective, this isn't the first time we have encountered such reactions. Even many of the same people who are now claiming that GNOME2 was such a great thing for them were some of the most vocal opponents of the things we did in GNOME2. People forget that we are the same group of folks that built GNOME2 and it's not that we don't know what was good about it. But we also know what didn't work.

Some of the feedback is certainly valid and we are going to use that to make informed decisions in the GNOME3 cycle – remember we've only had one release so far. In couple of the talks we pointed out that it took us eight, nine years to get to where GNOME2 ended up and we've had like four months of GNOME3. So there are plenty of things we still have to do. There are a lot of holes in our story. People will look at some things and say "Why is this there? Does this really make sense?". And in many cases that's because we didn't get to really finish that off. And that will start to fill in, the story will become a little bit more complete as we go through this cycle. I'm not saying that all this people will be completely convinced and that's unfortunate but I think over time people will realize what we are doing has been at least thought through. Is it even possible to have a desktop which suits everyone – from novice users to "kernel hackers"?

McCann: I actually think that we can get fairly close. I don't think we are all that different in the end. There are a lot of things we have in common. Who doesn't like to listen to music? Who doesn't need to check email, who doesn't need to chat with friends? Or lookup a map to know how to get to dinner, or even use the web, where most of the daily usage is nowadays. There is so much commonality. We do end up focusing on the differences more than we should.

You do see a lot of hackers using Mac OS X these days and I think that's a little bit unfortunate and probably there are many reasons why they do that, but that's not immediately what you might think of as a super hacker-focused OS. In his keynote at the Desktop Summit Nick Richards mentioned that he thinks that extensions are the way to go to suit different use cases and for experimenting with new stuff. Do you agree on that?

McCann: Extensions are definitely part of allowing people with non-standard requirements to participate in this system. He gave a great example at his talk. At Intel they have a very strange week-number-system. And that is something that would never go into GNOME3, it's useful for one company in the world, so that's not something you'd expect to be a standard part of an operating system. However it is completely essential for them that they have a calendar that uses this week system. And I think that is something that can be very successfully be solved by using an extension.

On the other hand there are a couple of cases where extensions are probably not in our best interest. And that doesn't mean that we will prevent them, just something we need to be aware of. Extensions that turn GNOME3 back into GNOME2 are somewhat counterproductive for a number of reasons. Partly because it's very confusing for third-party-developers. If you want to write an application for GNOME3 – and that is something that we really want to pursue – it's important to know that things are in certain places, that you know what to expect.

We are also not only users of free desktops, but we are also its advocates, we are in the marketing team. Everywhere we go people look over our shoulders and say "Hey that's cool, what's that?" and then we get a chance to talk about GNOME, a chance to talk about free software. And I think there is a lot of value to have that experience you show the world to be consistent. In GNOME2 we didn't do that particularly well because everyone's desktop was different. So when people are looking at it, they don't see something that is idiosyncratic, they see you as part of a larger movement. And I think that's worth considering when customize your desktops. But that's not something we will ever prevent.

And the other point I think is worth considering: It is important to start focusing on bringing apps into the system before we spend a lot of time tinkering with the operating system. We are all geeks, we love to play and explore and that's how we learn – and that's important. But there is a risk of spending too much time in fine-tuning the operating system for our individual needs and not focusing on the things that will make our larger ecosystem more complete. So I think it's a better use of time to focusing on writing excellent apps, coming up with an app story, getting third-party-developers in our system by having an amazing developer experience, having it be the simplest platform in the world to write applications for than it is spending a lot of time everyone writing their own extensions. Reading through comments after the GNOME3 release it seems like at least some of the criticisms arise from the fact, that not all of the functionality in GNOME3 is easily discoverable as it's using new user experience models, not just copying the old Windows 95 concepts. So is there a need to have stronger "visual hints" for stuff like pressing the Alt-key to get to the shutdown menu entry?

McCann: Jakub Steiner addressed that in his talk at the Desktop Summit and he said something pretty interesting that I agree with: Even if it would be better in some sense to make everything discoverable you simply can't. Not only because of the visual ugliness this would introduce, but also because when you make a good design you want to focus on the primary focus of the function. You want to make the default use-cases as simple as possible. If you make the edge cases more prominent by putting them in an obvious visual position, you actually undermine your primary goals. It flattens the playing field while what you really want is sort of a bell-curve, where the things that are most important, most frequently used to be the easiest. And the things are less frequently used, less encourage they can be slightly less obvious, slightly less discoverable.

Whether we have made the right choices on exactly how we present those that's certainly debatable. But specifically for shutdown we do think that suspend should be encouraged. It is the easiest way to use your system. You don't have to worry about restarting your applications, you don't have to worry about getting back to the page you were on. It's been a touchy subject for a lot of reasons in part because people haven't trusted suspend in Linux for a long time and we've all avoided it as something that doesn't work when you want to use it. But it works now mostly and if it doesn't we should be screaming. In fact we should be much better in our testing and integration to make sure that it always works. Given that GNOME now uses a design-driven-process: How does the interaction between designers and developers work?

McCann: We have tried to reinforce design in the GNOME3 development process. We had plenty of design in GNOME2 – and that's what – besides the free software principles – brought a lot of us into GNOME, the strong focus on design, on making peoples lives better. We kind of lost that a little bit during the cycle of GNOME2 and we tried to get back to this focus when we started GNOME3.

We don't really have a very formally defined process. But we've tried different things, different ways of working. In the GNOME Shell model of design specifically we've done a lot of different things. Some parts we have been really trying to define very strictly, very carefully in the very beginning and then hand it of to developers. In other times we did kind of the exact opposite, doing just a sketch or a vision and then working iteratively through the process, hand-in-hand with the developer. And it also depends on the developer: I know one developer who really doesn't like these sketchy designs, he wants to have something very well defined and thought-through so that he can just go off and do it. Others really want to work with you, they want to sit down in a channel with you or even in person and you start working through it.

So it's all very fluid – and it has to. We are all in different time zones, talking on IRC, so it doesn't blend itself to a very formal process anyway. One of the criticisms I've heard being raised a few times here at the conference is that the design team would now be defining by itself what is going into GNOME. So: Do you have to more open or is this just a wrong assumption?

McCann: First: It's very difficult to even call it a team because we don't have any form of membership – so the "GNOME design team" is whoever steps up to do design. There isn't some elected body, there isn't some select group. It just happens to be the people that do this work. Just like anything in GNOME. So anybody could join. We certainly have criticisms and suggestions on what people do, but somebody like Allan Day is a great example. He is somebody who just stepped up did the "hero-thing" and got involved and is now member of the "GNOME design team". He's just another guy on the street who walked in, did great work and now has the respect of so many in the community.

Another thing that is worth noting is that this team doesn't have any sort of decision making authority. The authority in GNOME relies almost exclusively with the maintainers of the modules. A design is not anything until someone implements it. So the ultimate decision making happens in code – code is law. If a designer makes something a maintainer is not convinced of – it doesn't happen. And if someone doesn't like the designs we do they can make their own – or fight someone else who does it for them. And that happens, that happens plenty of times.

I think over time people will realize that we do have some pretty amazing talent in that group – and I'm not including myself in that. I mean the people I work with are fantastic, some of them are the best anywhere. I know for a fact that some of the people of Apple and WebOS look up to Jakub for example, referencing his work in their blogs. You've been talking about the idea of a GNOME OS in the past. So what's the reasoning behind that?

McCann: I can't claim that it's an original idea, the idea for GNOME OS has been around for at least 2003 or so. At one point there even was a mailing list. And I think the reasons today are very similar to what they were back then. And there are few reasons: It's just too damn hard to work on GNOME and it's too hard to consume it. There are too many ways that are different. All the distributions are slightly different they compete when they should be collaborating. When we really want to get to that place of "excellence" of something that is better designed, better tested, has more contributors we need to make it easy to get. Easier for developers to consume during the development process, easier for third-parties to consume to put on devices and better for end users.

To make things better for end users we need to dramatically improve the quality of the system. And that means we have to do a lot better with our testing. For example the suspend and resume issues we have been talking about earlier. The way things are right now are "OK" – for us, we are bit more apologetic about failure than the average user. When the average users nearly melt their laptops because they throw it in their bag and it doesn't suspend – they are done. They will never use your product again. The way to get to that is that for every change you make you build and test the system. And that requires knowing what the system is – and we call that an operating system, right? So the operating system basically in my terms is the experience of the system, it's composed of the user experience and the developer experience. Both of those things we need to pin down. With that sort of focus is Linux then "just" an implementation detail?

McCann: I think it is. If you look at the other operating systems in our ecosystem, Linux is a given. MeeGo, Android, WebOS. Let's say you start with the idea for a certain user experience and think "What do I need for that?", you sort of go down the stack, build the system as you need it in order to achieve the goals you set out. And when you get to the bottom and you need to talk to hardware, you need a kernel, you need drivers. And if today that's even a question – I don't know. It's Linux, it's free, it's great, it's fast. How would GNOME OS relate to traditional distributions like Fedora?

McCann: To be honest: I don't know, these are just ideas I'm having, so I don't even know if we do it. I just think it would improve our story so in some sense I try to "sell" it to everybody. It's just a vision that I share with some other people and presented it for the first time two years ago. I certainly hope that everybody would like to participate and I suggest that would be a good opportunity to put a lot of our differences behind us. And the differences are so petty, over packaging formats and such things. It just doesn't make any sense if we try to achieve the same thing.

Now that's a bit naive as it turns out. As we've seen in the two years since things have changed a bit so we are not cooperating as much as we even used to. People will go off and do different things – and they certainly do have that right. But I still think if we value GNOME and we believe in GNOME we need to do the right thing by our own vision. And I think we can do almost anything with the talent we have in our community. Actually changing the world, being the best operating system on the planet – I think there shouldn't be anything able to stop us. If you take a look around the conference, you'll see a lot less developers from Canonical than there were in the last years. Even if Ubuntu is still using large parts of GNOME – is this a sign for a split in the community?

McCann: I think this split already happened a while ago. Like I said, the two things that matter are the end user experience and the developer experience. And if those are different you don't any longer share the same goals. You're no longer building the same product. We actually share a lot of the same components with WebOS. And we love WebOS, but are we doing the same thing? No, we are doing different things. They have different names, different identities, different behaviors and different APIs.

So I think it is important to remember that you can be different individuals and still be friends. There is nothing that says you all have to be the same. However it's unfortunate at the same time because we have less help than we did before and some people got caught up in the middle. In one of the sessions about the relationship about GNOME and KDE it was criticized that there is to much useless duplication going on around the free desktop. Is Unity then just another case of this?

McCann: I think that people worry about duplication too much sometimes. Many of us are very technical, we love looking at some code, refactoring it and saying "this part does something similar to this, it shares a pattern with this, I think we can turn this into one". That's a very natural optimization we work on as engineers – and also as designers we like to simplify. But I also think the drive to do that can be somewhat counterproductive when it distracts from looking forward, from achieving your goals.

So it doesn't bother me whatsoever that KDE and GNOME are doing similar things and we have plenty of opportunities to share, the kernel, D-Bus, the X-Server – there is so much that is shared. I think a lot of this is the domain of the Linux Plumbers conference, I think that's the perfect place to talk about cooperation at lower levels of the system. Where not only GNOME and KDE can get together but anybody who uses the "Linux base stack". We could have people from MeeGo, from Android, from WebOS there. That basically makes the "Desktop Summit" (as a common conference between KDE and GNOME) obsolete...

McCann: My personal opinion: It kind of does. I don't know how many people share that view. But I really think from an end-user perspective and a third-party-developer perspective GNOME and KDE are different operating systems. As much as MeeGo is a different operating system.

(,, 15.08.11)