GNOME and the missing one-fifth: part one

GNOME ParkingEarlier this year Lionel Driscot’s “The Last GUADEC” was slashdotted, redditted, and everthing else-itted that can happen to a viral blog post in the tech community.  It’s a provocative piece.  It also sparked for me the impetus to write this entry, which I’ve been mulling over for a few months.

My one nit with Driscot’s post are the questions he ends with, his call to action:

How can we evolve? Can we move the GNOME spirit into a web browser? How can we make use of our history and bring freedom to users instead of becoming just another web dev consultancy company?

These are not the questions I would have asked.  I do not believe the answers to these questions will yield appreciable fruit.

Here’s a portion of Emmanuele Bassi’s response to Driscot’s post (which I can no longer access, unfortunately):

GNOME is about building a whole operating system, and a whole ecosystem of apps, libraries, and tools, for people to create applications to consume and to create content.

This hovers closer to the questions I would have asked.

GNOME’s stated goal of “a complete free software solution for everyone” seems to me to be four-fifths met.  What GNOME offers is (1) free, (2) software, (3) a solution, and (4) for everyone.  I question the word complete.

I say this specifically as an application developer, not as someone maintaining a library or writing development tools.  Yorba isn’t even a cross-platform developer.  We target UNIX, and, frankly, we’re not proactive about any flavor of UNIX other than Linux.  Our requirements for a development platform aren’t particularly stiff.  Yet even slicing away Windows and Mac support, I still think GNOME is far from complete.

Here are the questions I would ask in place of Driscot’s:

  • How does the GNOME platform fit into a world of big and small interconnected devices accessing a variety of Internet services?
  • How is GNOME enticing developers to build upon — not build, build upon — that platform?

If I was a developer building Mac, iOS, Windows, or Android applications, I’d be able to answer those questions.  I honestly can’t answer those questions as GNOME application developer, at least not in full.

Thinking about those questions got me to thinking about another: What’s missing from the GNOME platform?  I’ll take that up in my next post.

25 thoughts on “GNOME and the missing one-fifth: part one”

  1. I’ll challenge 2/5 of the other ones, namely (3) solution and (4) for everyone. I’ll take the easy one first:

    How is GNOME for everyone if it doesn’t run on phones and tablets? Or is everyone defined in a different way?

    If GNOME does offer a solution, what’s the problem. GNOME certainly doesn’t offer a distribution, because that’s what Fedora and Ubuntu are for. So what’s the problem that GNOME solves?

    I’d argue that this last point is quite important to answer first. Because otherwise you might go off in the wrong direction about what’s missing.

    1. Take GNOME away from Fedora and what’s left? A Linux box running X. I know there’s alternatives to GNOME, but that doesn’t mean GNOME isn’t some kind of solution.

      The mobile question is of course a burning one. But there’s plenty of toolkits and platforms that don’t run on tablets and phones. OS X/Darwin is limited to the desktop, for example, but Apple still likes to say the Mac is a computer “for the rest of us”.

      I don’t think “for everyone” equates to “runs on every personal device out there”. Should GNOME be moving that direction? Yeah, I think so. But that’s for another time.

      1. But if GNOME just provides building blocks for a distro, shouldn’t that distro define the platform you build apps on? So saying that GNOME should provide a platform to build apps upon might be wrong?

        Everybody always assumes that GNOME is in the business of providing a platform API. And while that was true to an extent for GNOME 2, I have not seen any efforts to that effect in GNOME 3. Have you?

        1. I’m not saying that GNOME is (or should be) producing building blocks for distros, but it does seem to me that it’s core goal is to produce building blocks of some kind. Since Yorba is not a distro, my bent is that GNOME should be creating building blocks for application developers. I understand that not everyone would share that view.

          I would like to see considerably more effort toward that end in GNOME 3. I think the notion of a platform API has broadened considerably in the past 10 – 15 years. I don’t like the kitchen-sink approach to building APIs, but when you step back and look at the common, broad needs for applications built in 2013, there’s some holes in the GNOME toolbox.

          But again, if you look at GNOME as building a platform for distros, you might think there’s different things missing.

  2. To say GNOME is for everyone is an absolute joke considering the UI is utter trash unless you are an absolute beginner or you use extensions (which should NEVER be for basic functionality that users rely on) and you have to install a program to change even basic settings.
    There’s also the problem of no stable API, and nobody selling GNOME devices. If GNOME isn’t preinstalled or supported on any computer a regular user buys, who would want to develop on that platform? Who would want to develop on a platform when you can’t even rely on a stable set of libraries (not just GTK+)?
    There’s also the fact that Linux isn’t just GNOME, yet GNOME apps aren’t properly integrated under anything but GNOME. This harms Linux as a whole

    1. What extensions are you talking about? The only extension I use is user-themes, which I need to use my custom theme.

    2. Gosh, I use GNOME quite nicely. I do use some extensions but they are fun ones like the music player. But otherwise pretty much everything else default and I’m fine. I’ve been on some kind of UNIX since 1987.. The UI is just fine. Maybe it’s not your cup of tea, but there are plenty of people who do like it.

      Changing your platform to take advantage of Mobile is a completely different thing. Being part of a group of people who developing a mobile OS, and other devices I can appreciate the complexity and the journey one has to make in order for GNOME to be mobile friendly. It’s not easy, and it would take vast resources to do that.

    3. I guess after 10+ years, I’m still an absolute beginner, because I use Gnome 3 with barely any extensions (I have one, for displaying weather), and I like it.

  3. *Intelligence and improvement to the activities so that you can be in work mode and it will hide anything non-work related. e.g. contacts.
    *Robustness and easy debugging tools.

    In terms of platform, I think that the desktop should be the main effort as untill something big happens in the other platforms that would make people change their default, I think nothing is going change. look at Internet Explorer.

  4. I love and use GNOME, but I’m a hacker. I consume it through Fedora. I don’t find GNOME to be rock-solid, bomb-proof stable. Overall I find the experience to be far less than ideal. I can’t imagine how non-tech people work around bugs and issues. Ironically one of my major issues is an email client. Evolution most closely fits my needs, but is still incredibly buggy. I would love to use Geary, but it’s still missing GPG support. I might end up with mutt, but that’s not possible for most users.

    Keep up the good work!

  5. What I find sad regarding the developer platform is that gnome’s prefered language for new apps is javascript, yet, there’s no appropiate tools for it. The best example of this situation is the new music app. Started as a JS app and they decided to rewrite it to python for better tools & libraries. That sounds wrong to me.

    1. That was brought up at the Montreal Summit. What I was told was, GNOME did *not* choose Javascript as its official language, just that they would like to make more progress integrating GNOME into it.

  6. Official, timely, reliable Windows and Mac OS X support in the platform (including gtkmm, Gjs and PyGObject) that developers can rely on. Windows is the most important desktop operating system and Mac OS X is the second-most important. Not many people will develop using GNOME platform if their applications won’t work on Windows or Mac OS X, because they lose 99% of their potential user base.

  7. I used to use Gnome 3, but it was getting worse for me with each release. So I, too, have to challenge the for everybody part. But that is just me with my user hat on.

    As a developer I did not ever consider targeting gnome, even when I was still using it on a daily basis. I do want to be able to show what I work on to my parents and friends and those are on windows or Mac. So are most of the (real and potential) users of the software I write. So targeting Gnome on Linux is not an option for me.

    What would be needed to change that? Basically have a real cross-platform toolkit at the base of the stack… while I really like Qt, I would probably not mind using Gtk if that would finally become a viable solution on Mac and windows. Unfortunately I do not see that happen anytime soon. The current direction seems to be to concentrate the few resources even more on Linux.

    Wireshark is moving away from gtk due to similar reasons. Maybe Gnome will do the same at some point. Yes, I know… not going to happen, even though the reason for gnome to choose gtk over Qt (== licensing) was resolved years ago. Even back then gtk was considered technically inferior. Years of hardly anybody working on the toolkit has not improved the situation.

    Gnome is bringing forward Linux as a platform way more than e.g. KDE does, but it is suffering from a rotting core.

    Karl

  8. I actually think Driscot’s idea on the future is wrong. While web is big, people still want desktop environments ‘to get work done’ and at very least from my experience they want a machine that they know can be disconnected from the web.

    Also, as someone who has developed applications for multiple platforms (OSX, Windows, Android, Firefox OS, iOS, Windows Phone 8), the biggest problem I see to developing applications and even suggesting others to develop is:

    * Development Tools

    On other platforms people are used to good feature full IDE’s. Sure you can argue they’re bloated and you’d rather use a text pad and make, but IDEs are what the majority of developers use/expect. So it’s difficult for anyone to convince someone to develop for a platform when there’s not even an equivalent to the tools they’re used to using. Sure you can say there’s Anjuta, but if you’ve used any other IDE you’ll know why that’s not even a comparable solution. (This would have been a great idea! https://wiki.gnome.org/Design/Apps/IDE)

    * Documentation/Resources

    Gnome (wisely) decided that JavaScript will now be the suggested default for developing Gnome Applications. But they still haven’t created the documentation necessary to know how to develop applications without going through some serious effort on part of the developer (most people will not be willing to go through this effort).

    There’s just so many basic questions that aren’t answered. Why is seed still a thing, it just confuses developers. How do you use the latest Gtk widgets in JavaScript. Etc, etc. I’m sure there’s many other questions you can think of yourself.

    I think another point that is important is we need to be careful in how we criticise the project. I think a lot of these issues can be solved. A lot of it just comes down to out reached. Like would someone be willing to do a Gtk JavScript development series on their blog? Could someone spend the time finishing the Gnome University series? etc, etc How do we organise a solution.

  9. Another thing I forgot to mention is I don’t think that it matters that people are switching from Gtk to Qt. Qt is more focused on being a toolkit for every platform, but it doesn’t look ‘native’ on any platform. So for technical apps that’s fine because the users are willing to put up with that. But people will generally pick the more beautiful, elegant choice. Which is nearly always going to be native.

    Because of this, I think the age of one toolkit for every platform is slowly dying.

    1. Ow man, this will make me sound even more of a Qt fanboy than I actually am:-)

      quiddly: I agree on the importance of tools. Give Qt creator a try, it supports C (were that does not conflict with C++ which is the primary focus), autotools and got. It works well for Gnome apps (minus glade). Give it a try, it is not just a collection of random tools stuck into one UI like Anjuta.

      I also agree on the importance of documentation. Again: take a look at Qt. They do pay a whole team to work fulltime on docs and that shows.

      About choosing Qt or gtk: I am not able to tell whether a app was written in Qt or any native toolkit on Linux — provided the distribution bothered to install the proper styles for Qt. I seriously doubt any non-developer user can. In my experience gtk3/gnome3 apps are considered to be the odd one out on Linux, mostly due to the very different interaction mechanismns.

      On Mac hidding the difference between a Qt and a native app is harder, Qt is somewhat less polished there. On Windows all apps look and feel differently anyway:-)

      While I disagree with your statement on Qt and native, I do agree with the hope of platform specific toolkits dying out eventually.

      Anyway, since I doubt Qt is an option here, let’s focus on how we can realistically make Gnome more attractive to developers. Cross-platform support, good docs, great tools and stable APIs were mentioned so far. How can all that be improved in gtk and the other libs? What are the low-hanging fruits there?

        1. Yosef: Wow, writing a new IDE is not what I had in mind when asking about low hanging fruits:-)

          Which code model do you want to use for your IDE? Clang?

  10. I think that the post is self-contradicting.

    “A complete free software solution for everyone” by definition is complete, i.e. does not need anyone to build upon it. To create it, developers need to build it, though. Building _upon_ it is directly against the goal.

  11. Gtk UI could definitely do with some simpler APIs, I’m building a GEdit plugin right now and doing stuff with menus outside the default (create from ui xml) is a nightmare!

Leave a Reply to Benjamin Otte Cancel reply

Your email address will not be published. Required fields are marked *