Continuing the series of blog postings that reference one another, a few comments on “updates and people”, following mizmo’s latest blog entry on the topic.
First, let me thank Mo again for doing an excellent job summarizing some of the problems, and describing the userbase with typically excellent graphics. There are plenty of Pamalas, Connies, and Nancys out there on the mailing lists, but not enough Carolines to speak up for overall cohesion, and product quality that we can be proud of. So, I am going to continue to stand up for the position of “Caroline Casual-User”, the kind of person that I personally feel is actively being driven away through the hostile actions of a few within the community toward update sanity (learning to say “no” to pushing updates) and overall distribution cohesion (ensuring packages actually do work well together). Caroline is the kind of person who is accurately described in the current User base documents on the Fedora Project wiki. She is also represented in a lot of the cosmetic GUIness we see in distributions like Fedora – graphical package updates and configuration, removal of advanced options, the general direction of the GNOME desktop, and so forth.
We have all of these nice “user friendly” features going into the distribution, and an effort at gating releases until they pass certain quality controls. And when you read the “User base” documentation, it becomes clear that the intent was to make the distribution accessible to a wider user base than just hard core package developers and rawhide consumers. Yet there are those who continue to push the notion that Fedora be some kind of rolling update, never really having strong releases (more like “snapshots” that happened to pass some quality control at the time), and that it continue to lose market share to other distributions. Apparently, that’s fine because we don’t care about user numbers so long as good things happen. But users like Caroline lose out in the process. Now, maybe they don’t matter one bit, maybe the mailing list threads are right. But if they are right then the documentation, the intended user base, all of that stuff needs a heavy re-think and update. Because you don’t get to say you are targeting something and then really not do that. You don’t get to pretend that all that shiny software has a purpose because it is going to empower users and then laugh in their face by breaking it randomly in an “update”.
And if those things are right, why does the Desktop gloss really matter anyway? Hard-core developers don’t need simplified UIs, they don’t need graphical configuration, they may not even need to be running a Desktop at all. They might aswell run emacs full screen on a large framebuffer and be done with it. Oh no! I hear the cries now! What a preposterous idea! Well, if it’s so preposterous not to care about a Desktop environment, then maybe it’s not quite so preposterous to ask ourselves who wants the kinds of things being churned out in Fedora these days. I’ll give you a hint, they’re the kinds of things Caroline Casual-User really wants to see. She loves consuming your end product. She loves the feel of Macs, and likes the trend to have more Mac-like features in Linux systems. She doesn’t know about systemd, but she digs the idea of things sorta just working where they’re needed. Heck, she even likes it when she plugs her phone in and the icon on the Desktop looks just like her phone. Why does a hardened developer even need any of that stuff? I mean really, who the heck hard core developer cares what icon even shows up, or even if stuff gets automounted? The real, not-on-Fedora-devel but interested userbase that used Red Hat Linux, that buy the magazines, that care, they are the ones who want that stuff. You know that because you make the software to target them, and now is the time to admit that.
What I want to see is a fundamental shift toward having a stable “Platform”. I’ll take credit for the term “Platform” in Mo’s post since I was the first to use it. Essentially, what I mean is that we split the distribution into a core platform needed to boot, and provide a basic environment for higher level stuff. This is what every other general purpose Operating System under the sun does. They don’t shove out random updates that might break the fundamentals, and it means users can rely on certain core stuff just working. Now, this doesn’t mean returning to the days of Core/Extras. It doesn’t have to be internal vs. external packagers, etc. It can just be about defining a basic set of features that must be stable (boot, init, libraries, etc.), turning those into use-case driven definitions (rather than plain old package lists like “critical path” is today) and then enforcing them. And gating updates, and saying “no” judiciously to people who want to break that. And asking others to go play elsewhere if they don’t like distribution cohesion, and all of these things. Not because they are sexy, but because they are responsible.