There is nothing better than seeing people “getting it” as they go along. Mark Shuttleworth of Ubuntu is one of these people. In his latest blog post he discusses that projects must co-operate and interoperate with each other, and one first step to do that is to have common release schedules and bugzillas. He is so right about this. The No1 thing that makes GNU/Linux “clunky” and “difficult” is the fact that each project does its own thing, without architecting their software in a way that plays well with a grander scheme — because there is no grand scheme as a whole. This is the reason why Gnome/KDE feel so “cut off” from the underpinnings of the OS they run on. But Mark gets it, and he gets it because he is in the business of the OS desktop. I am sure that Red Hat and Novell people also got that in the past, but their primary business were always the server market, and therefore never cared to comment or pursue a grand plan of transforming a “distro” (as in collection of random software) to an “operating system” (as in one logical entity that was engineered to interoperate perfectly). However, I am sure that when Mark and others in Ubuntu came together to create Ubuntu Linux they didn’t have such ideas but they realized the needs of a modern desktop engineering as they went along.
Testament to this is my personal experience with Bernd Korz, the CEO of YellowTAB. When Bernd first came over for dinner a few years ago, he had just started in the desktop OS market with his Zeta OS. He was over-optimistic, an OS enthusiast. He did not understand basic things about what needs to be done in order to create a desktop OS that “just works” in order to sell. Fast forward two years later. Bernd comes over for dinner again during one of his US visits. This time, I see a changed man. This time, I see a professional who understands the traps, problems and overall machinations that he needs to overcome in order to get such a product out and succeed.
Also, a few years ago I asked my JBQ (who is an ex-Be,Inc. media/kernel engineer) “what made BeOS so good and consistent? It felt that it was a living, breathing life form rather than an OS“. JBQ replied “it was the fact that when I had a problem with my media code or performance, I could just walk down the hall, find the kernel guys Cyril or Travis and talk the problem out in minutes.“. BeOS 5 back in 2001 was delivering the same smooth experience as Mac OS X offers today (as long as you had a compatible PC that is).
Mark started Ubuntu with somewhat idealistic and naive ideas, but as he went along and the users that were coming from Windows demanded this or that, it becomes clear to him now what needs to be done. And what needs to be done is full interoperation, co-ordination and most importantly, a grand plan of architecting the various libraries, kernel, X11, Gnome and the whole shebang. In other words, a modern OS must be developed in a way that it’s well thought as an overall plan, instead of putting individually-developed libraries together afterwards. That’s what’s mainly creates the underwhelming performance and experience of the desktop Linux, and Mark seems to get it. A semi-fork might be in order too (read the last paragraph here to see what I mean by “fork”).
As a sidenote, I had more than three times in the past the experience Mark describes in his blog. I found a bug, and the bug was shared among 3 projects (the latest bug has to do with libtiff, shared-mime-info and Evince). I had to make 3 bugzilla accounts in 3 different places and the bug is still not completely fixed (only Evince fixed it as of yet).