The Last GUADEC?
An anonymous reader writes "How can we ensure, together, that this will not be the last GUADEC? Last year, during GUADEC, there was that running joke amongst some participants that this was the last GUADEC. It was, of course, a joke. Everybody was expecting to see each other in Brno, in 2013. One year later, most of those who were joking are not coming to GUADEC. For them, the joke became a reality. People are increasingly leaving the desktop computer to use phones, tablets and services in the cloud. The switch is deeper and quicker than anything we imagined. Projects are also leaving GTK+ for QT. Unity abandoned GTK+, Linus Torvald's Subsurface is switching from GTK+ to Qt. If you spot a GNOME desktop in a conference, chances are that you are dealing with a Red Hat employee. That's it. According to Google Trends, interest in GNOME and GTK+ is soon to be extinct."
Gnome 3 was a fuckup, but it started way back, when Havoc Pennington declared that too many options confused users. That was the start of the slippery slope that led us to this scenario. Taking away options completely instead of just offering basic & advanced configuration options was a fucking stupid idea. A desktop or any interface needs to get out of the way and make your day-to-day experience as painless as possible, but Gnome was hijacked by look-at-me designer types with nothing better to do than find ways of breaking shit that worked pretty fucking well. End result? A clusterfuck that nobody wants to use.
Not sure why this was modded funny. There is more than an element of truth in it. I can't speak from the perspective of a "normal user" since I'm not one. But I can speak from my own.
Firstly there's GTK. For those not aware, GTK is based on GObject. I've tried using GObject. It may be a very fine object system, and since it's based in C, I imagine that bringing over the runtime is relatively easy, but really it is no fun to use. And by no fun, I mean awful.
The primary reason is that it's all in C. Actually doing heavyweight dynamic style OO in C (basically like Python or Ruby or Javascript) is possible, but it is very, very verbose. Essentially you have to do vast amounts of stuff by-hand and it means that the program logic ends up being very sparsely interleaved with the heaps of required boilerplate. Not only that but the learning curve is very steep. IIRC Rust is a bit like C with native GObject support, so perhaps that will help things. But at the moment programming in GObject is unpleasant.
Secondly, frankly the UI is bad. They seem to be determined to abandon the long held principles of heirachal filesystems and the current working directory. Why oh why oh why when I start up a program in $HOME/projects/foo does the file dialog now default to "favourites" which is something not in the heirachy at all, or the last place I was working. This sort of change is completely unnecessary. If normal users don't start from anywhere else but $HOME then ignoring the current directory won't affect them at all. It only hurts power users.
The thing is, that's just one example. For another example, how many steps does it take to print a document of any sort at 6-up in a GTK program versus the appauling old style dialog like "xpdf"? The answer: lots. Adobe (of all people) proved it was unnecessary by making a really nice system that was simple for all normal stuff, but in the "advanced" box, the GUI options simply added things to an LPR line.
Examples abound of where GNOME is essentially "simplifying" to the point of making things less simple (how is ignoring $PWD unlike every other system simple?) especially for advanced users. The thing is advanecd users are the ones that hack on it and the ones that go to conferences.
If they systematically put off all advanced users, then basically it will be nothing but a commercial project. That's fine if they want it but it will kill off any ecosystem.
Oh and about GLib. A good fraction of the stuff is about providing things like linked lists, resizable arrays, hash tables, essentially all the sort of stuff that's in the STL, except much more verbose, vastly less efficient and not even remotely type safe. And two of those are unnecessary in C if you're prepared to (a) put up with complex macros and (b) have C++ like compile errors.
And other stuff just seems to be there for the sake of it, like the lexical scanner compared to (e.g. FLEX). They could simply have integrated the FLEX runtime into glib and used that as a scanner. It would have been better documented and have much nicer syntax that way.
I know people complain about C++ being complex, but once you add on a library the size of GLib, you've made almost a new language and the complexity arguments pretty much vanish at that point.
Don't get me wrong. For a C library, GLib is very impressive. It allows you to do all sorts of things with C that would otherwise require vast amounts of work and huge amounts of pain. But the problem is it's built on a very low level language and that makes life difficult.
Oh yeah, where was I. Gnome. One other example I remember from a while back.
My mum had an old computer. After Windows 98 became untenable, I put ubuntu on it, since she was feircely opposed to spending money on a new computer if the old one worked. Being young and naive I still did family tech support.
Anyway, it worked pretty well. I hd taught her what a heirachal filesystem was and she was happily able to arrange files in a nice organised manner. Actually
SJW n. One who posts facts.