Reaction to Recent OSNews Pieces

I missed the hoopla over the last week stemming from Thom Holwerda’s piece on OSNews called Has the Desktop Linux Bubble Burst? His follow up piece, entitled On Favouritism, Apologies, and Black Helicopters, which sounds like the personal musings of a short story author, attempted to clarify his points.

I have a lot to say on this, so if you’re interested, read on for the meat.

### There’s Stuff Behind the Scenes ###
Thom’s entry into this field exposed a few things, for better or for worse. First off, it revealed Thom as someone who reads and keeps up with things from a news standpoint — but not as a bleeding edge user. The commits in the KDE Subversion repos show that there is a lot of actual KDE4 code. This made Thom look a little foolish…

### Hey Devs, Whatcha Been Up To? ###
…but he is also vindicated in the fact that open source devs have a way of doing lots of work in their development arenas and/or CVS/Subversion/version control software and not rolling an accessible release build. This alienates actual users – not just those who don’t know how to use svn, but also those who just don’t care to. Even a live CD ISO would go a long way to keeping people involved. Most people don’t spend their time browsing potentially buggy nightly builds or notoriously incomplete or non-functional development code, and that isn’t to be expected, I would think. The devs can’t expect everyone to know that they are doing all their work in Subversion. The argument that if someone is going to write about it, they ought to have done their research is valid, I suppose, but I also think it’s fair to say “We haven’t seen line 1 of code outside Subversion, so how do we know that when it hits the mainstream, it will still work?”

The question really is: Does KDE have a responsibility to feed us some accessible crumbs so that we know there is progress? As an IT Director that counts on it, I demand that. As an IT enthusiast, I can’t expect anything from volunteers who give me fantastic free software that powers my computer.

### Those Numbers Really Do Matter ###
It also demonstrates that version numbering is REALLY important. I’m not a fan of point releases. In my mind, a second release – no matter it includes – is version 2. Each release ought to increment by 1. But since this gets dirty and clunky sometime around release 13 or 14, it’s easier to say “this is the second release of the first version of the software, or 1.1.” I play by those rules with my own software. I also buy into the whole “when you do a complete rewrite – that’s when you increment the major version” school of thought. Most developers use a different rule of thumb though: when you break binary compatibility, you increment.

Back to the task at hand – Gnome has found a way to introduce all the best features without breaking compatibility and moving to a 3.0. 2.x can do most of what they are aiming to do today, keeps all packages functional – no recompile needed, which is a huge boon. Add-ons such as XGL, AIGLX, Beryl, and Compiz have made the Linux desktop experience come to life in ways even Windows hasn’t even done with Aero and ways OS X hasn’t yet implemented and may never. These projects challenge the desktop metaphor, and they don’t require a version increment. Whether or not there’s a line of Three Point Oh code or not is irrelevant, Gnome development is still healthy and active and advancing. So who cares what version it is?

KDE is development is the same: there’s a lot going on, and KDE4 is going to see the light of day within the next year or sooner if things land on time. Of course, we’re all antsy and want to see some of it now so we can critique it and provide feedback.

One thing is clear here: people associate version number with progress. It’s not just Thom. People see a new version as progress. Apple is a superstar here: they’ve de-emphasized the major number of their OS (which hasn’t been advanced in over 6 years) by making it the title of the OS itself! OS X is the tenth revision, but we now have names for each point release of OS X, and we suckers buy into it. Look everywhere and see mention of “Leopard.” You don’t see people calling Windows XP SP2 “Springboard,” which was its codename. I know these are not truly 1:1 comparable, but the point is, a “new” version counts. And Microsoft ran with the “XP” brand since 2001. Apple has sold us on mid-level revisions. It’s friggin genius.

### Stability Is Boring ###
The real reason people think the desktop linux bubble has burst is because Linux is mostly boring these days. If you’re not on the bleeding edge and using the technologies above, which are all superfluous when it comes to every day work, you’re probably using something mostly boring. That’s because stable is boring. If I were a Gnome or KDE dev, I’d be working on tweaking and stabilizing the system because the desktop experience is good enough. And it has been for awhile. Now it’s about look and feel and making the system appear to be a single entity.

### Don’t Integrate for the Sake of Integration ###
Says Eugenia: “…Where is my Bluetooth INTEGRATED support? Where is the Sync support with mobile devices? Where is FULL resolution independence (not just SVGs)? […] NOWHERE.” To that I say: Does Gnome really need an integrated Bluetooth manager? Mobile device center? Resolution independence? These are things we’d LIKE to see, but they are hardly requirements for a desktop system. The problem is that you can’t argue on one hand you want to see the system faster, leaner, and with less bloat, and then ask for more features. You can’t argue about dependencies and then ask for more integration. The strength of Linux is in its configurability, not its mimicry of Windows. The system ought to FEEL like a single unit, but not at the expense of the core system becoming an all purpose tool.

### What’s the Aim? ###
Is there even a desktop Linux bubble to pop? I’m not so sure. What are we trying to do with Linux? I can tell you that my Linux servers run better, smoother, and longer than any of our Windows servers. I can tell you that we have thin clients at my place of business running stripped down Xfce that run like a charm. I can tell you that at various periods I have used Linux as my exclusive desktop environment, and my wife, for many months, ran Xandros on her laptop until she required a program that required her to switch (which she did… to Mac). Linux CAN serve as anything to anyone right now, today.

But it doesn’t. And it shouldn’t. Because… get this… I’m going to say something pretty big that I’ve never said before: the power of Linux is in its fragmentation. Yeah, I said it. I’ve always advocated the opposite, but I’m really convinced now. Linux WILL lose the desktop war, if there’s a such thing. It’s not designed to win. It can’t, in current design. It feeds the very practices that weaken it as a contender for desktop dominance. But what if the goal isn’t to dominate, but rather, to generally improve as a whole, the entire desktop experience? I’d argue it’s doing that pretty successfully!

Xandros, Linspire — hell, even Ubuntu,Mandriva, Fedora Core, and openSUSE have all made products that are capable desktops. If Linux isn’t a solve-it-all-for-everyone, bur rather a solve-it-in-different-ways-for-different-folks solution, well… that’s ok by me, and I’d bet Linus himself would be perfectly fine with that. So to recap – if Linux is just about improving the individual and unique experience for unique individuals, that’s a success story as far as I’m concerned. Of course, it doesn’t do much to champion the cause of many Linux community leaders who seek to abolish DRM and “free” people. Which leads me to my final point:

### It’s All About the Marketing ###
This is the bit to take away from it all: it’s all about the marketing, baby. Let’s review: Thom reads but doesn’t use the code from svn. The flaw in the plan is obvious: KDE has done a fantastic job of getting the word out about KDE4, but – either by choice or by chance – not put the code into the hands of the community to provide feedback. My father used to say “You’ve got to sell the sizzle with the steak.” There’s a lot of sizzle, but no steak.

I have to make an assumption, and that assumption is that by releasing the code, opening access to your development code, and having a website, developers WANT people to use their software. And if you want people to use your software, you have to play by certain rules, and those rules include keeping your users convinced that they won’t be abandoned. That is largely why you want your users to know what you have planned down the line. You want them to know that what they are working on will continue to work.

The version numbers? See, people actually care! There’s a reason why Apple uses codenames and Microsoft releases “R2” of a product. There’s a reason why Red Hat increments their Enterprise line by integers. And it’s messy to have Linux kernel 2.2 be, functionally at least, a lifetime behind 2.6, but have other programs major version incremented 5 times with very little difference from version to version. If you choose not to increment, you’ve got to market the difference between minor releases and let people know that your pace is an order of magnitude greater than “glacier.”

Stability is boring, but that’s the selling point. I’m guessing that about 98% of computer users have basic needs and would prefer stability over features. For me, even 1 kernel panic is too many. I want a system capable of months of uptime. A changelog that says “stability enhancements” or something doesn’t make me bite. I changed browsers – no small feat – based on stability. I want to know what the developers of my projects are doing to make the system better, not just flashier. Users might be interested in how advancements like HAL, D-Bus and udev affect their systems. But they probably are scared of those names.

Integration is great, but the marketing ought to be as such: with Linux, you install what you want only if you want it. And when you install it, it simply becomes part of the system. Of course, this has to be the case in order to market it like that, and currently, it’s not. So we have some work to do there.

And last, is there a bubble to burst? There is when every Tom, Dick, and Harry proclaims every coming year “The Year of Desktop Linux.” But the truth is, each year the Linux desktop gets better and better; KDE, Gnome, and Xfce get better and better, the hardware detection, drivers, graphics foundation, and underlying system get better and better. The fact is, Linux as a whole is everything it needs to be to be a perfect desktop, and people need to get THAT word out. That, and one other thing: that it’s not Windows.

### It’s Not Windows ###
Thus we reach the penultimate section of this long rambling: Linux is not Windows. And with each passing modification that makes it more Windows-y, with each interface modifcation that makes it feel more native to Windows converts, Linux loses some of what makes it the best at what it is: a swiss army knife. Linux is what the users wants it to be. And unlike Windows, which is clearly a better desktop, or the BSDs, which are (at least today), better servers, or IOS, AIX, or QNX, which are specialty OSes with one real goal, Linux is what the user wants it to be, and is capable of being just about anything else the user want it to be. Linux has already lost the desktop war: with Windows pre-installed everywhere, and a universal crowd already familiar with it, Linux will never acheive major market share. But in the meantime, it can be what a small, influencial group wants it to be, and it can be that today. But it’s not Windows.

### Conclusion ###
So it all comes down to this: Linux is just fine the way it is, there’s no need to panic. In fact, Linux is actually getting better at what it does, and it’s even getting better faster! But we’ve got to re-align ourselves and adjust our expectations. Because it’s only when you understand what Linux aims to be that you can appreciate how well it actually does it.

I think both KDE and Gnome have done extremely good work in the last 3 years, and I find both easy to use. Either is suitable for a standard desktop. Both are nice looking enough. Both support extensions that enable some pretty amazing graphical effects. And both, via their own very different methods, have plans for the future that are communicated in very different ways. In keeping with their different approaches, one is aiming to implement major changes to bring it forward, while the other is focusing on tweaking and building foundation to bring it forward. It’s almost art how that works.

In the end, I prefer OS X to both, because I like the reliability and management of the underlying system. Apps built for Tiger always run on Tiger. But then, that’s another piece…