Warning: What follows is one of my trademark rants. Skip this entry if those give you stomach aches, nose bleeds or an unsatisfiable desire to mercilessly shoot toilet plungers at insane bunny rabbits. (Man, I love that game =)
Persistent Blockers
Some of the blockers for mainstream Linux desktop usage are lack of legal codecs, hardware integration and certain types of basic functionality like software suspend not working reliably. This is not news, of course, but rather the typical gripes people have had for years. Even as much of the Free software has reached the point of being true-blue entries in the top echelons of functionality and quality, some of these issues continue to nag at us unanswered.
These are things that the KDE community itself can't really fix, at least not by simply writing KDE-based software. I always figured, and said as much whenever the topic came up, that eventually Linux would be shipped by system integrators who would invest in an "OEM" version of a Linux-based OS. They would take (or so I thought anyways) a distribution that already exists and has commercial support behind it and do much as they do with Windows and gussy it up for their combined hardware/software offering. At this point in the product chain consumers are forking out hard currency for product (the computer) and there is some profit margin in there, helped along by the lack of a Windows license (hopefully, anyways =). This money could be used to purchase the needed bits, such as codecs and fonts. By adding just a little bit of "final primping" Linux would finally be a complete product. Instead people want a system with a lower price point and the cool feeling that comes from seeing Linux being an option on a system integrator's website.
So when Dell announced that they were going to be shipping Linux laptops and the Canonical marketing powerhouse started cranking out the stories about it, I figured this could be the start of this development. Unfortunately, someone (Canonical?) forgot to tell Dell (or they just didn't listen?) that more than simply slapping Ubuntu on a laptop was needed. The result has been that reviews from the likes of the Wall Street Journal are starting to appear and they have not been particularly flattering, even going so far as to warn people away from Linux and Ubuntu.
What could have been done?
When it comes to the desktop I don't expect the Dells of the world to understand their part in the game; and I've come to not expect the Linux distributions to understand their part in the game either. Sadly we're in a position where distributions, who have many of the wrong motivators for this kind of work such as an emphasis on packaging ease versus system continuity or differentiation versus broadly applicable solutions, hold many of the cards when it comes to serving as advisors in creating these products.
So it is that Linux distros tend not to take a Dell-like opportunity and say, "Look, we'd love to do business with you. We have a lot of opportunity here, but it needs to be done in a way that we'll actually make significant sales over a period of time necessary to keep both of us investing in this. Let's not just ship whatever we can today, let's make a product that actually works for the end user market. Let's remember that we're trying to break into an established market, so we need to be a bit disruptive and very much a quality offering ..." That's the point where discussion about adding control panels for the touch pad in the laptop arises; or how to get a legal DVD playing stack in place; etc ...
It would likely take another year or so of work when it is all said and done and certainly some outlay of finances, but then there would be a product that would have a chance in the marketplace. So why doesn't this happen?
Decisions Made At The Wrong Times And In The Wrong Places
If you were to walk up to a random KDE community member who is working on KDE 4.0 and asked, "So, what's this KDE4 thing all about?" you would almost certainly get a nearly standard answer despite that answer not being recorded on any website (which is something we really should fix, btw =).
They would likely tell you about the 'pillars of KDE' (Phonon, Solid, Decibel, Oxygen ...), about the increased portability (Linux, BSD, Solaris ... but now also native Windows and MacOS) and about the new generation of applications that are taking advantage of the latest capabilities of our underlying libraries such as Qt4 (Marble, Dolphin, Okular, Kalzium, KDE Games, KOffice..). It's a voluminous story, but you'd get the same general answers from just about everyone.
Even more impressively, if you asked why something like Phonon and Solid were important you'd also get the same general answers: portability, future proofing, simplicity and continuity of API .. leading to better applications that work better for the end user.
KDE people have done a pretty good job of building a shared vision, even though it's been independently implemented. While most of us agree on what KDE4 is about and aimed at, we haven't had massive technical design meetings that span the entire project to cement this vision into place. Instead, each group of people working on a given aspect of KDE have internalized these ideas and concepts (often with their own personalization of them; we're not automatons, and that's a good thing =) and used those concepts as an ingredient in formulating their own direction. This has been messy at times, but a chef is judged on the food served rather than the state of the kitchen.
Back to the Dell/Canonical offering... What is it about? Heck, we could repeat that question about a lot of Free software desktop projects right now and I bet the answers would be pretty similar: meanderings, usually in the form of silence. This includes the Linux kernel where we have been, for instance, gifted with inotify which really isn't up to the tasks demanded by the modern desktop user. Do they know what we need, or why we need what we need? Indeed, when it comes to the desktop, what is the Linux kernel about? While the community is currently obsessing about schedulers, we're missing some pretty fundamental understandings as to what we want the kernel to achieve. As a result it's a hodge podge.
There have been moments where Linux flirted with desktop vision: project utopia which led to HAL was a good example of this. Regardless of what you think of the quality of the resulting implementation, HAL is getting the job done and it started with a clear statement of intent and everyone could answer that all important question: "What is it about?" There is a connection between being able to clearly answer that question and having something appropriate at the end of the development cycle.
However Dell, Canonical and others like them (those two companies aren't unique in this way) are
not in a position to be able to create the basis for answering The Question properly. They are too far removed from the technological design and vision process and they have an incompatible (not bad, just incompatible) set of priorities for doing so. This is not something to be fixed, because doing so would probably break them in other ways that wouldn't be good for their survival.
The Question(tm)
So here's The Question put clearly: what is the Free software desktop about?
Honestly, I couldn't tell you in clear terms. I can tell you what KDE is about, but as soon as I start adding in all the other pieces things get fuzzy really fast. Those "other pieces" include all kinds of software: kernels (Linux, OpenSolaris, *BSD), printing (CUPS), groupware (Kolab, OpenGroupware, ...), directories (OpenLDAP, Samba ..), virtualization (VirtualBox, ..), media (ALSA, GStreamer, NMM, Xine, MPlayer ..) and on and on. What do we have in common when it comes to what we want to achieve? What will those achievements look like?
Is there a place where project leadership from each of these groups comes together to create such shared vision? Or even just to share their vision so we know what each other are thinking, needing and wanting? I can't. I originally had hoped that the Linux Foundation's Desktop Architects Group would provide that place, but it has turned into a set of working groups focussed on implementation issues. That's useful, but not the only thing we need. In fact, we're already pretty good at implementation, while we're less than good at coordinating the driving factors behind those implementations. The result is a scatter-shot set of software that the Dells of the world have a hard time packaging for the consumer market; lots of great pieces, but no real whole.
Let's Find a Solution!
Can a Linux distribution company fix this? I don't think so, because they don't affect the vision in the upstream projects. I do see Mark going around trying to inject interesting ideas into these projects, but at the end of the day they tend to be yet more external thinking rather than a well formulated and internalized foundation that spans projects providing holistic direction and vision.
The amount of "external thinking" being thrown around is at all-time highs right now and to be honest most of it is extremely ill-informed. Concurrently, processes for the incubation of internally driven focus creation is nearly non-existent.
The Desktop Architects group has become pretty firmly footed in implementation issues; don't get me wrong, the topics are extremely important but they are near term ("Horizon 1") issues. Requests for a 6-month-heart-beat for software projects is another short game concept which is apparent when the road to long term development is explained after the fact rather than being a part of the process formulation itself. Horizon 1 is critically important, but is not a perpetual source of improvement on its own.
If this trend continues, we will pay for it in the long term because that internal focus creation is the source of long term ("Horizon 3" for the management crowd) R&D. In turn, this is where useful "Horizon 2" (mid-range) results emerge from along the way if competently nurtured. Ever noticed how many free software desktop projects have started falling into a rut of uninteresting development? That's Horizon 1 obsessive/compulsive disorder at work.
Let's Find A Solution, Take 2
I do think we can inject exciting vision across the Free software landscape; I seem to remember it being there years ago actually. However, I have come to believe we need something slightly new: a place where people from the various creative projects can come together with each other in relative peace and quiet to share sweet spots, pain points and their own internal vision and motivations. The theme should be to keep asking The Question with each until The Answer(tm) starts to crystallize. This vision will be pretty amorphous and ever evolving and certainly not come in the form of a typical management lackey's five sentence vision statement summary. It will also be slightly unique from the individual project's "native" vision as it will be the summation of a greater set of thoughts; and that's perfectly Ok.
Then like the pollinators of beautiful flowers, the participants will need to take the germ of The Answer back to their respective projects and start the conversations there. This will allow a coherent strategy to self-emerge: each project will personalize The Answer for their own cultural context, but it can start to become a common thread woven recognizably through all of our tapestries. This will result in a coherent set of technologies that fit together nicely as a whole product; in fact, the path to tying that whole product together will likely become self-documenting so that system integrators will get a How To out of it all as a bonus and actually stand a chance in hell of getting it Right.
How To Support The Solution Process
OSVs (operating system vendors), ISVs, customers and system integrators could show their full support by funding but
not attending such events themselves. This will avoid tainting the process with their own priorities which are not conducive to this particular kind of exercise. It needs the creative projects, not the productizers (yes, there is some overlap but it's pretty easy to keep them separated).
Enthusiast in our communities can show their support by accepting the process to be most likely a bit messy and even not very comprehensible from the outside. Instead of using that as a reason to voice ill-informed concern and thereby putting pressure on the relatively fragile process of maintaining the context necessary to build The Answer, support (even in the form of hopeful silence) would be great.
The friendly media can support the process by not reporting on the process (I know, counter intuitive =). Honestly, there really won't be much that's interesting to report on. Trying to invent reportable results is part of why some attempts at this process have drifted towards short term goals as they are results you can show and measure in time for the next magazine article printing. There's lots of other stuff to report on, in any case.
Free software projects can support the process by showing up and honestly engaging in the conversation; send your system thinkers who are daring enough to think about big picture issues and be ready to start taking the resulting ideas into serious consideration when working on implementations, most of which already kick ass but miss the sort of continuity we need to create a whole product for client side computing. Server oriented projects can think about their client-side roles or the role of the client on the server-side and engage on those terms (or not at all if there is truly no cross-over).
When and Where?
This is the part where the man behind the curtain emerges to show his empty hands. As they say: I got nothin'. This is just an idea, a set of thoughts spewed stream-of-consciousness style from my mind, through my keboard and out onto the Intarweb. As one person I can not implement this myself. As one project, even an amazingly vibrant one, KDE can not implement this on its own either. Hopefully the idea will start to percolate about and eventually we'll find a forum for creating The Answer(tm). I'm willing to help as I can (which isn't much before 4.0 comes out), and I think KDE is in a great place organizationally to contribute to the process.
Until we get this, or something like this, moving ... we'll just have to deal with the ascendancy of the Free software desktop remaining slow (though continuous) and with the on-going disbelief from the mainstream markets and those who analyze and report on them.