The future of GNOME?

12:06 pm gnome, maemo

A few days ago, I was asked for an interview what I thought the future of GNOME held – in the context of the recent LUGRadio episode (where GNOME’s lack of direction and leadership was cited as a major reason why we’re not making any revolutionary change to the desktop) I thought it was relevant and worth wider distribution.

We will see is one of two things happen – either GNOME will grow beyond what it is currently, and develop a number of different façades which will become GNOME releases (such as OLPC GNOME, LinEx GNOME, Enterprise GNOME, Home & Small Office GNOME, etc) or we will end up shrinking to something smaller than we currently are – the most important GNOME product will be the platform, which will then be re-used by third parties to build the interfaces they’re interested in on top of it.

We have already started to see this trend – distributors cherry-pick the applications they are interested in for their own desktop projects, which are then themed and targetted for their core audience. The variety of platforms and human interfaces being built upon the GNOME platform is dazzling – these go from small form-factor interfaces like the Nokia N800 and the Maemo application framework and OpenMoko and GPE through to innovative interfaces like Sugar from OLPC, which is totally unfamiliar to someone used to the GNOME desktop, but which is undeniably GNOME based. Even the major distributions have modified the GNOME interface to suit their needs – the OpenSuse, Red Hat Enterprise and Ubuntu desktops all behave in different ways, and have different target audiences.

Clearly, when you see groups like ACCESS, Nokia, OLPC, Sun, Novell, Red Hat and pretty much every other software producer and distributor in the free software market opening up their own internal sources, their preference is clear – they want to encourage common spaces of collaboration, and concentrate only on differentiation.

The project has the choice of embracing this trend, and becoming a place where this kind of targetted development happens in a co-ordinated (free software) way, or letting the trend pass us by, and have each distributor in the market have their own specialised interface, or search for collaboration elsewhere, and simply use the GNOME platform as just another building block.

16 Responses

  1. Christian Says:

    Have to say I feel you are not really answering the question at all with this answer. Whether or not this trend is happening is irrelevant to the question of if GNOME (be that the desktop or the platform) should be refactored or not. The question of GNOME 3 is more the question of ‘Do our underlaying libraries need changes at this point that require ABI/API breakages to be viable for the next years or are they still good enough to stay competitive within the current API/ABI constraints’. Looking at various usecases is a useful tool for making that evaluation, and the current situation in the case of the desktop scenario is either that a) we think the current GNOME desktop stack is good enough and going for the upheaval of GNOME 3 would be a waste of resources or b) we think that the GNOME stack needs to be revised in order to provide the needed services for the desktop we envision for the next years. If the answer is a) then I guess we can say that GNOME is not ‘missing leadership’ as we/it have made the choice of staying put, but if the answer is b) then I would argue that it could be said we are missing leadership and direction currently.

    So, yes all these organisations are modifying the libraries and modules we have today to suit their needs of today, the question is if they will feel that these libraries are still usefull for assembling something 2-3 years down the road unless some major re-engineering happens.

    Personally I think refactoring the stack to take advantage of new technologies, especially in order to keep up in the gloss departmenent and at the same time get rid of old cruft could be a valuable exercise, but I am not forseeing doom either if it doesn’t happen anytime soon. As I tried mentioning on LUGRadio, most of the thing being advertised by everyone else as their new killer features are already underway for GNOME 2.x within current API/ABI boundaries.

  2. Stuart Langridge Says:

    I agree that there are a number of possibilities; the worry I personally have is that everyone can list the alternative routes that Gnome can take but we’re not taking any of them because no decision is made. The paralysis of indecision, you might call it. The same issue came up a while ago as regards languages: there was talk of maybe adding some dependencies like OpenOffice’s UNO library to the C core, but no-one wanted to do that in case instead the idea was to shift more development to Mono or Python or similar; by contrast, there was no agreement on whether core Gnome bits could be written in Mono or Python or Java because that would make it more difficult to fiddle with the core. So nothing happened other than discussion. That eventually got resolved, and I’m sure this will too, and it doesn’t need one “dictator” to stand up and lay down the law about what should happen, but *something* needs to happen otherwise we’re all trapped by that indecision paralysis.

  3. Luca Says:

    I don’t think we should create different distributions of GNOME. GNOME is an environment for the “community” and it has innovative and smart ideas because it is not the “standard” user using it. That is why I chose GNOME in the first place, because commercial ideas were way below my line of expectation!
    I think GNOME is good as it is, with a strong community.

  4. Murray Cumming Says:

    Stuart, I think this paralysis of indecision thing is a myth. That’s just spin on the situation where one group of people would like another group of people to like their choice. But no decision will force people to like what they don’t like. That’s just simple disagreement.

    There’s nothing that I need from GNOME that is currently blocked by any lack of decision.

  5. Stuart Langridge Says:

    Murray: interesting. One of the things I’d like, for example, is the stuff that’s been talked about for Topaz: people as first-class objects, etc. Alternatively, I’d like to hear that that’s just talk and there’s not going to be a move towards it. At the moment I don’t know whether it is or not: I’ve been talking about how desktop environments might work differently in the future to some people and giving Topaz as an example. Now, true, there’s nothing stopping me building a Topaz-ish desktop on top of Gnome 2.18, except that it’d take rather more time than anyone’s got, but if it ain’t gonna happen I’ll stop talking about it.

    Clearly, though, if you’re not seeing a problem then it’s less of a worry, since my points are fairly theoretical: I was able to decide to use D-Bus for communication in Jackfield because I can assume that it’ll be present on a Gnome desktop, and that sort of thing is helpful, but it’s an edge case.

  6. Dave Neary Says:

    Let me show you one example of a first-class object oriented version of GNOME 3.0: http://wiki.laptop.org/go/Image:AP1_13.jpg

    How about these versions of GNOME 3.0?
    http://www.maemo.org/screenshots.html
    http://www.openmoko.com/press/index.html
    http://www.fluendo.com/elisa/screenshots.php
    http://www.engadget.com/2007/02/10/mega-hands-on-virgin-americas-airbus-a320-with-red-in-flight-e/

    How about this for the desktop?
    http://www.novell.com/products/desktop/screenshots.html

    The point is, innovation is happening elsewhere, not in the GNOME desktop – GNOME is a great platform for that innovation, but it’d be nice to have that innovation happening in the project, rather than outside it.

    Just imagine – a GNOME specifically for 5 – 8 year old school kids, another specifically for adolescents (maybe with Enlightenment as the window manager? ;), yet another for TV set top boxes, yet another for hand-helds and mobile phones, the list goes on.

    We would doing the same thing that we’re doing now – creating user interfaces for GNOME. With one important difference, each user interface would have a very specific niche audience who we would cater to exclusively and completely, to the detriment of others. This kind of design coherency would give us a power that we don’t have now, and each of the developers would have a mix’n’match mentality towards GNOME applications.

    Why are we making a sysadmin release set and a developers release set to sit on top of the core GNOME desktop? Wouldn’t it be better to make a sysadmin control center – single-mindedly focussing on that usecase? And another for developers which included everything that a developer might need, integrated in such a way as to make his life easier?

    There’s still going to be a use for the general purpose desktop, but single-use user interfaces are where we have the most power to make people happiest.

  7. Christian Says:

    David, nobody is arguing against this vision here, the question asked if its happening or if we are stuck in a circle of talking about it.

  8. Murray Cumming Says:

    Obviously wild and vague new ideas need to be experimented with. When we know what we really want, and if we want it, then it can be done for real in a common way that people can really use. You can’t rush these things, even if you assign someone to tell you to rush.

  9. Murray Cumming Says:

    Stuart, and you can’t really give “Topaz” as an example because it’s meaningless, or it means whatever you want it to mean. It’s a project name without aims, therefore sure to lead to dissatisfaction.

  10. Dave Neary Says:

    Christian: My point is that it is already happening, with or without “authorisation” of the GNOME project.

  11. Christian Says:

    Dave: Ok, if thats how you feel then you think that our stack do not need any serious reworking and thus GNOME 3 is not needed. Cause none of the projects mention are doing anything ‘radical’ with our stack, they are just trying to polish their products within the current limitations. So in this case your answer to the question posed on LUGRadio is: ‘The GNOME stack can already support all the things we want to do without going for a new major revision, thus the fact that we are not moving towards GNOME 3 is not a result of lack of direction, but lack of need’. And I think its a fair view.

    But we shouldn’t pretend that the work done ‘outside’ GNOME constitutes any major leaps forward. The chance that Red Har or Novell for instance will fork GTK+ for instance due to thinking that GTK+ themeing capabilities are to weak are next to zero. So in that context it will not be happening without the ‘authorisation’ of GNOME.

    But as said I guess your view is that the toolchain can support our needs without ABI/API breaking refactoring for the next next years and thus the worry about lack of direction is misplaced, as the direction we are having is staying with our current stack and evolving it forward within the constraints put on us through API/ABI stability requirements. I interpret Murray’s comments in such a way that he shares your view of the situation.

  12. Chris Parker Says:

    I think that GNOME should start to look at KDE and see what is lacking in GNOME versus KDE. KDE has really set a high bar for a desktop framework in their amazing component architecture. Things like building components, messaging, and scripting are simple.

    In KDE, there is a clear, proper way to build an application so that it will interoperate with the rest of the KDE environment. I have looked around the GNOME world and it is hard to find good documents on how to a proper GNOME application that uses all the cool stuff that is built into the GNOME desktop. How easy is it to write an application and turn the components in the app into something anyone can resuse and embed?

  13. Dave Neary Says:

    Christian, you’re getting caught up in version numbers, when that’s not what people are talking about at all.

    I’m not talking about a Great Leap where we re-write everything. I’m talking about a Great Leap where we move from being “a generic one-size-fits-all desktop” to a set of targetted computer user-interfaces.

    The paradigm change and the focus change is worth the version leap. The API or ABI stability doesn’t matter – that’s a developer thing, not a user thing. What we want to do is revolutionise the user experience. If we need to revolutionise the developer experience to do that, then let’s talk about the API/architecture changes needed to do that.

  14. Christian Says:

    Dave please spare me. I have been using version numbering in tthe very specific context of api/abi breakage, not as a goal in itself. Anyway, I am not going to bother with this discussion anymore if its been reduced to wordplay.

  15. Luca Says:

    Commercialization will kill the community and the uniqueness of it.

  16. Dave Neary Says:

    Christian: You’ll notice that in the original article, I didn’t mention a version number once. I’m talking about something more fundamental than api/abi breakage – GNOME will get bigger and embrace the innovation that is currently happening outside the project, or it will become smaller, and be a building block for that innovation, which will continue to happen elsewhere.

    I’m talking about the future of GNOME, and the version numbers are a distraction. You’re probably right – GTK+ 2.x is probably good enough to allow us to build a next generation of GNOME that doesn’t look anything like the current desktop. But that’s irrelevant to the version numbering, or to the innovation, of the desktop. Incremental change will only get us so far.