Alas, Evan Martin’s excellent series of blog posts from the Chrome-on-Linux salt mines has come to an end. His sabbatical apparently didn’t relieve his general malaise, which he explains thusly:
Before we’d jokingly say “year of Linux on the desktop!” and laugh about how it would never happen, but my smiles had become bitter. A short way to put it is that writing high-quality software is not really a goal of the platform; stuff that doesn’t matter like continuously rewriting atop ever-changing platforms is. The scrappiness and free software spirit is what makes me love Linux as a hacker but I recognize now a deeper doom, that it will only ever broadly succeed by removing that spirit (e.g. Android).
I disagree that “writing high-quality software is not really a goal of the platform”, but there is an argument to be made that incrementally developing a high-quality platform (to enable writing high-quality software) makes life harder for third-party developers. It’s easy for free desktop developers—myself included—to underestimate the impact that tweaking the platform has on others, even if the changes make the platform more coherent in the long term. A common justification for churn is “the work is done by volunteers who wouldn’t necessarily spend their time on other things instead of this”, but that tends to ignore the other volunteers, caught up in dealing with unrelated changes, who would rather spend their time on other things.
This is not to say that platform-wide changes should be avoided at all cost: one of the great merits of the free software ecosystem is that it’s possible to make such changes. Nor am I claiming that volunteers cleaning up stagnant code bases is to be discouraged—quite the opposite. Nor is this an anti-GNOME 3 post, lest I be misinterpreted as thinking that Gtk+ 3, GObject Introspection and other leaps forward were a mistake. But taking advantage of this excellent new technology in applications does carry a cost in the short term.
Problem of free software is that’s abandoning the fields it was strong on. Support of legacy but perfect working systems is one of them (removing 3d support from ati drivers for legacy video cards that suddenly cannot run gnome3 anymore is the best example).
I have a lot of opinions on this whole range of topics, but I’d rather waste them in a blog post of my own or an IRC discussion than in a comment on your blog. 😉
Just a few notes: I think there is 2 crucial facts that make the current situation of GNOME / distros so messy:
1) It’s not done by volunteers anymore
At least 90% of GNOME development is done by people that are paid to do it. It’s not (just) a labor of love anymore, it’s paid work.
2) There is no goal
Back when GNOME started it was to make a great desktop. These days it’s about what? I think for a lot of people it’s “do what the boss thinks is right” and after that, they go and use a Mac or a browser for most of their work.
And if people aren’t dogfooding their own software to themselves anymore, you know something is seriously wrong.
Gnome 2 was an evolved product, result of many iterations, but Gnome 2 to 3 it’s been disruptive. On the bright side of things, the fact there are people annoyed it’s a good thing: it means there are users!
I’m nor specially annoyed by the change, but every now and then I feel really angry because one direct consequence of this “reinvent the wheel from time to time”: it feels like a perpetual beta. Lots of applications fix some bugs and add some news in each release (I’m looking at you Evolution!), and sometimes it feels like it’s impossible to make all the basic stuff work at the same time. I’ve been using Linux exclusively for about 10 years now, and it’s really frustrating.
Benjamin: very interesting point. Someone could argue that this 90% of paid work should result in a better and consistent product.
You, sir, are responsible for making me lose a couple of hours this afternoon reading Evan’s archives 😉
Lovely blog; and his leaving the Linux port of Chromium gives food for thought. Still digesting, a bit.
@Juanjo: As long as that someone would not use Windows 98 or Meego to back up his argument…
It does seem like Gtk/GLib tends to change for the sake of change. Hate to say it, but the G* world has a lot to learn from Microsoft when it comes to proper backward compatibility. Constantly deprecating functions because it’s easier for the maintainers is no way to build a framework that attracts application developers.
@eric: you honestly suggest that, after taking 9 years to do a major release bump in gtk+, while Microsoft churned out 3 releases of their operating system and other releases of their office suite and development tools, is “change for the sake of change” and disregard for “backward compatibility”?
seriously?
even Qt, the usual paragon for people saying something like this, had 3 major release cycles, each with an API break, in the same time span.
deprecating functions does not mean removing functions; other platforms deprecate functionality all the time. they deprecate entire libraries, entire sections of their development environment and core platform. the amount of deprecations in the GNOME platform is ridiculously low, compared to the churn that happens on Windows and OSX.
Andy: sorry for the hours lost! Something similar happened to me a few months back. I think I read them all…
Palin: that’s really not what I was getting at at all…
Juanjo, Benjamin: those two points are related. Lots of people are paid to work on Gnome technology, but the goal is not always (perhaps even often?) Gnome itself.
Emmanuele, Eric: I think small changes can be more irritating than large ones. To pluck two examples out of the air: the inhibit API moving from the screensaver to the session (a relatively small change, which applications can be updated to support in a matter of minutes) has caused me more active frustration) than dbus-glib being deprecated in favour of GDBus (which needs a massive amount of work to take advantage of).
I have not really developed for other platforms over anything like the same period, so can’t really say how they compare.