I talk a little about what it means to be "Gnome" and the way Free GUI apps should be designed.
If you think about modern operating system design, most of the action is in the mobile space, and the moves in mobile space are clear: Applications are installed by the user, not by root. The phone does not trust the user. The user does not trust the apps (although they still manage to steal all the users' data), and the apps do not trust each other. Everything is kept piecemeal, separate, isolated. There are gates and checkpoints. Sharing data is hard.
This has actually been part of the “dream” of OS design and research — good separation between applications — for some time now, but shifting a paradigm like this requires a whole new playing field, which smart phones provide. The reasoning here is simple: applications are proprietary, so they cannot be trusted. The operating system needs to provide a solid base, so the user cannot be trusted to make changes.
If we look at Ubuntu Phone it has the same attitude. It is building a “solid base” on top of which applications are installed, all of which do not trust each other, nor the user.
But free software isn’t like proprietary software. The unix principle of “do one thing and do it well” marries perfectly with free software, where you can read the source code, compile it yourself, and connect it together. When writing free software, part of the thinking should be how everyone can work together to a common goal, and how we can take advantage of the freedom. This freedom engenders trust — trust between the applications, between the user and the operating system — which dramatically influences the design of the entire system.
If we think about a distribution like Debian, if we use free software, many people have put this software together, are working together, and the functionality of the software is known end-to-end, even though you may not have everything installed. The contents of the “app store” are similarly created and shared by trusted parties, their work is transparent.
Think about Gnome for a second, and what it means. Originally it was the GNU Network Object Modelling Environment. Really, the purpose here was for it to get apps to talk to each other. As time went on, Gnome realised that really, it was becoming a bloated framework that did too much, and began to split it’s work up into small libraries and services. These are used everywhere, even if you’re not in a Gnome environment! Ultimately, their role is really to be the “common language” that UI apps use to communicate with one another. Since we’re in an environment of trust, there may not be any code involved here!
I’ve been thinking recently: what would Gnome 4.0 look like?
Let’s look at some examples:
We can see that “applications” actually start coming together like LEGO blocks. Small, self contained ideas that do one thing and do one thing well. They have trust in their ecosystem that it can provide the other parts that they are after. They have trust in other applications that they can communicate with them properly and that they are not malicious, and they have trust in the user. It’s a virtuous cycle which means applications get functionality that multiplies exponentially and organically.
How might we present applications? Maybe a bit like the cards that Google is using: These are small, interconnected, and solve that problem of “doing one thing well”. In an earlier Gnome 3 review I suggested that nature ought to be a theme. This still makes some sense, with “vines” connecting AFs together. Perhaps these are like fruits or leaves that come off a tree trunk. You sort of expand that tree as you launch more AFs, or “prune” branches as tasks get completed. Maybe completed tasks get turned into branches, and later you can go back and change what you did. New tasks are like saplings.
Whatever it is, we should be aiming for authenticity with the framework we have as free software developers. The current model of copying proprietary software does no favours to the movement nor does it take advantage of the places where the movement excels. As I think forward to what Gnome 4 could be, I’m hopeful that it will emphasise the ideas of trust and sharing that make the free software community unique.