Havoc Pennington, a GNOME and D-Bus developer, writes about free software, software engineering practice, and productive programming.
HN commenters recommend his 1999 essay 'Working on Free Software' as still valid, and cite his D-Bus practices and parallel-install rationale.
I was also there and jdub is correct. This retelling of history is nonsense. Especially this part:
> SUSE, Red Hat, Debian, Ubuntu, even Sun Solaris used GNOME 2. Everyone liked GNOME 2.
The default DE on SUSE was KDE. If you wanted GNOME you had to request it explicitly at install time. But more importantly, GNOME 2 was enormously controversial. It split the Linux and GNOME communities, it was the systemd flamewars of its day. The developers had to constantly justify themselves and received endless flames and hate mail about it. In fact it went OK because, just like with systemd, it turned out that there was a silent majority who did like the new direction of GNOME and become enthusiastic adopters, but the idea that everyone liked it is just absurd.
Also, GNOME 2 didn't have a Win95 style interface. GNOME 1 was Windows 95 inspired, GNOME 2 was clearly a reaction to macOS although it managed to establish a unique art style and personality as well.
The drivers of the new direction for GNOME 2 were Havoc Pennington and Calum Benson at Sun (who did a usability study on GNOME 1). Pennington spent a lot of time explaining to Linux hackers that more options and preferences wasn't always better. For example in this essay:
https://ometer.com/preferences.html
Both GNOME1 and KDE were basically direct mappings of the Linux CLI experience to widgets; it was common to have checkboxes in apps with labels like "Use Xrender", no further explanation provided. Pennington revolutionized…
Looks at correct-mkdir. Sees "cb = dezalgo(cb)". https://www.npmjs.com/package/dezalgo
"Contain async insanity so that the dark pony lord doesn't eat souls"
Just... What. I feel like when you need to reach for tools to "contain insanity", you might want to backup and ask someone who has written to a filesystem before... The linked blog about "preventing the release of Zalgo" and the linked https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/ seem completely erroneous. The entire point of callbacks is to _surrender_ control to a function - here is a piece of code to run when you are ready - now, sometime, or never, or maybe many times, as you see fit. Waiting until the next process tick seems so completely unnecessary... This strikes me heavily as "a solution in desperate search of a problem" - although I have that feeling with a _lot_ of NodeJS code I read...
The author of the blog linked on the dezalgo project seems to, at the end of the post, imply the purpose is for performance? By deferring work until a later date?
"The basic point here is that “async” is not some magic mustard you smear all over your API to make it fast. Asynchronous APIs do not go faster. They go slower. However, they prevent other parts of the program from having to wait for them, so overall program performance can be improved."
Other parts of the program _other than the work we've asked it to do_? What if we're only "correctly making" one directory? So we intentionally make…
Why is GNOME like GNOME?
https://ometer.com/free-software-ui.html
I recommend to read this! You will understand a lot about GNOME. They learned a lesson to keep things simple for the user. But the reason for five clocks is probably, that neither provides the important preferences for a lot users.
Ubuntu
Please don't think that Ubuntu is using GNOME. It is a massively patched and themed version of GNOME, mixing package versions of current and older versions. And more important, for many years Ubuntu used Unity as UI and and own Login-Manager. Canonical is always doing something alone outside of community.
The good news
* Canonical helps GNOME since some years again and it has an positive effect, lots of performance improvements.
* GNOME is keyboard centric! I select applications windows by typing the application name. Why search if GNOME can find it?
* Luckliy GNOME removed the entire failed desktop metaphor from Microsoft Windows (arranging and searching icons you never see and never use because a windows is in front of it).
* And the SystemTray (Microsoft tries to hide it since Windows XP). Either your a silent daemon or an application with an CLI, TUI or GUI.
* GNOME is incredible friendly to new users which doesn't expect things already in a specific way.
* They learned a lot and re-added features. Like the awesome file type-and-find in Nautilus.
The bad news
GNOME tends to remove features and options before an appropriate replacement…
I think the opinions expressed in this article are valid.
However, I don't think the inability of current JavaScript to do async I/O without callbacks is Node's biggest problem. As others have said, it works for smaller projects (and even has some geek appeal). And as Havoc Pennington and Dave Herman have explained, generators (which are coming with ECMAScript Harmony) and promises will eventually provide a very nice solution. So Node has a path to grow out of the callback model without giving up its single threaded paradigm.
http://blog.ometer.com/2010/11/28/a-sequential-actor-like-api-for-server-side-javascript/
http://blog.mozilla.com/dherman/2011/03/11/who-says-javascript-io-has-to-be-ugly/
The bigger problem (which I don't see getting solved anywhere down the road) is the lack of preemptive scheduling, which is available in Erlang or on the JVM. What you see under high load with Node is that latency is spread almost linearly over a very wide spectrum, from very fast to very slow, whereas response times on a preemptively scheduled platform are much more uniform.
http://jlouisramblings.blogspot.com/2010/12/differences-between-nodejs-and-erlang_14.html
And no, this is something that can't be solved by distributing load over multiple CPU cores. This is problem really manifests itself within each core, and it is a direct consequence of Node's single threaded execution model. If anybody knows how to solve this without resorting to some kind of preemptive threading I'd…
> That's not user friendly customization
1) You were arguing in your original post that the default is good for a target audience of non-power users, but not for power users. However, power users should be able to go through the dead-simple extension two-click installation process. So you're contradicting yourself.
> Couldn't this be a simple checkbox integrated natively into GNOME 3 instead of a third party download?
http://ometer.com/free-software-ui.html "The question of preferences"
> Why is the accessibility menu there by default in the first place if very few people are going to use it?
It's just an icon, no one has to click it. But it's there for those who need it. Why make it harder for them while others have no loss with the icon being there? And everybody will need it at some point in his life.
3) e.g.o is not meant as app store. Extensions are not intended to be apps.
3b) Automatic updating: it's coming with Gnome 3.6. Source code: You can see the source code of every extension under .local/share/gnome-shell/extensions/. It's plain JavaScript.
> Is it curated or can anyone upload malware there?
Extensions go through a review process. You could have figured that out by looking at https://extensions.gnome.org/about/ "Are GNOME Shell Extensions safe?"
4) Power users and extension developers do not want to wait for the next distro release in order to have fun. Same rationale for browser extensions.
5) https://extensions.gnome.org/about/ "Are GNOME Shell…
This opinion of "Gnome is killing customization" is something I see quite a lot, but which I think people take the wrong way. It's absolutely true that Gnome is designed to be less themeable than other DEs like KDE, or individual WMs - and by extension, GTK apps and apps designed to be used on Gnome are harder to customize/break more when you do theme them. But I disagree that "customization of Linux [being] half-dead" is a bad thing; on the contrary, I support the lack of theming options, and I like that there's someone on the Linux desktop that pushes this hard for consistency.
To make my biases clear: I'm a software developer that uses Gnome daily, and is developing a GTK/Adwaita app. I used to rice a lot back in the i3 days, but I don't particularly care about that nowadays, and stick to the defaults when I can. For my purposes, GNOME and Adwaita is perfect since it's very opinionated by default, and you can make good looking apps with minimal effort. Since all Adwaita apps are supposed to look similar and follow the same HIG, most of my desktop apps have the same look - but more importantly, the developers of the apps can also be confident that their apps look correct on my desktop. This is something that developers in the GTK space generally want, and for good reason[0].
One argument is that you as a user of the desktop should be able to have the final say on how your apps look, which is a totally valid take! And there are DEs, WMs, and apps which give you this…