I’m still mulling over the reasons behind the continued failure of the Linux desktop. I was thinking back recently about why I feel out with certain Linux distributions. Over years of developing for and writing about Linux I formed a good understanding of how the systems work but of course never really understood what needed to happen to improve it.
I never got on with Debian but I think it was because I came to it last – at the end of a path well worn via RPMs and tarballs and everything else. Debian is clever in how it deals with packages but it is certainly not foolproof and precisely because Linux users can change their installed packages it means that they probably will. All users at one time or other will want to get some extra software or update some existing software and this introduces changes which cannot be guaranteed to work. It’s not unreasonable to let users change their software but how can we guarantee it won’t leave our system unusable at the same time?
Answer is that you don’t actually want the user to have the ability to configure core packages. If Ubuntu wanted to do it right they would just send out a binary image which doesn’t have the ability to change the core components without going to a lot of hassle. Take away the mechanism by which it’s easy to download and install packages that are not designed for your system. Put your faith back in the hands of the packager and for anything else you install it with the assumption that it’s standalone or any shared components it overwrites you keep backups. Alternatively you make your system difficult to change at a system level.
A good example of how this was done right was when Asus created their EEE image – they used Xandros over a split file system and made sure that the booting filesystem wasn’t mounted after it had been loaded so that package changes wouldn’t spoil the bootability and core configuration of the system.
These days I only use Windows 7 desktop and I find it both a blessing and a relief for both day-to-day using and maintaining and also developing on. Packages are easily downloaded and installed – the same cannot be said for Linux which suffers under a wide variety of different schools of package management that appear at time to contradict both themselves and each other. When is someone going to wake up and be properly prescriptive about this? Perhaps then we’ll start to see a Linux that Just Works.