Monday, August 08, 2005

Where the Open *Nix Desktop Needs to Go

I was originally going to title this post "Where linux needs to go." But the truth is, that isn't really a meaningful statement. I don't know much about the linux kernel, but as far as I can tell, it's stable, fully featured, and in good hands. It has it's own charismatic leader, Linus Torvalds, a figure to whom thousands of geeks worldwide swear fealty.

Overall, Linus has his thing, and he's doing it well.

What needs to change about linux (and BSD and probably others I'm not as familiar with) is not the inner workings. It's the experience.

I've spoken before about how amazed I am by OS X. It's a beautiful piece of work. Everything works, and works well, and underneath it all, I'm comfortable knowing that there's a stable, standard, well-made FreeBSD base. I can use the bash when I feel like it, but I never have to (unless I want to something esoteric, like install software from the fink project.)

This proves that the tools that the Linux and BSD communities provide can work for the average person. It also shows the things that are wrong with our current approach.

The good news is that now that the way has been shown to us, it's apparent how we can improve our act. The bad news is that copying OS X will lend credence to the accusation that open source never innovates. True, there are many readily apparent ways in which open source has been ahead of the curve, but here, we're playing catch-up. Unfortunately, all we can do is bite the bullet and move on. (I say we loosely. I'm not a very good programmer yet, and I've been using Linux for 8 months. But go with me here.)

The primary issue to the common user is hardware support. A user should not have to try to get hardware support. This is something that needs to just work. No ifs, ands, or buts. I don't know if the bigger linux distros do this, but the smaller ones don't. I can't stress enough that this should be the biggest push. If average joe and jane can't get their sound to work in the first half hour, they aren't going to stay with it. Same for wireless, graphics card (usually not a huge problem) and every other peripheral that they've spent their money on. I know this isn't always our fault, and that few hardware manufacturers are helpful and loving towards the world's linux users. But in some cases, the proper drivers are there, but they don't auto-load and configure themselves correctly. Every time that happens, we lose a potential users. That needs to change.

The next major barrier is software installation. This is getting better, but it still needs improvement. Tools like synaptic are acceptable ways for users to install software, but they have two weaknesses. The first is the lack of integration with websites and the rest of the outside world. When a user goes to a website and looks at the download section, and all they see is deb packages, rpms, and source packages, chances are that they'll use them. There are two ways in which this situation could be improved. One would be to integrate some sort of protocol handler (like those produced for AIM links) with both a synaptic-like client and an OS version sensor. Having the client request the right package type automatically and install it (with proper user confirmation and security measures, of course.)

A better solution would be similar to the one that was instituted in OS X. Standardized package formats. The best thing for the Linux community would be to remove the current 4 (more?) options for package type and go with one. Most obvious among these is auto-package. In my opinion, the linux community should be hog-piling on the possibility of cross-compatible packages, but that hasn't really happened.

If autopackages did become the accepted standard, then the next logical step would be to allow click-to-install with them. This is close to done already. Currently there are four steps to install, which isn't horrible. But that includes changing the execute permissions, which isn't good enough for the average user. The path should be obvious. Double-click should at least yield a pop-up dialog asking if the permissions should be changed. The current dialog also asks if the user would like to view or run. Also not good enough. Close, but a real end-user friendly system shouldn't have these unnecessary steps.

Lastly, the file system needs to be cleaned up. Even windows is ahead of us here with the program files directory. Here, again, we could take a lesson from OS X with it's /Applications directory and it's *.app packages, which, for those of you who arn't familiar, are folders that contain all the information for an application and act like executable files when clicked. It's a very clever system, and while the symbolism isn't accurate, the ease of application installation, use, and removal is unbeaten.

Ironically, none of these things would be nearly as hard to program as the things I've already seen the linux community to do. I've seen reverse-engineering. I've seen linux go to the ipod. I've seen GUI tricks that are months or years ahead of their windows counterparts and on par with their OS X. I've seen applications that are window manager agnostic. I've seen actual security measures put in place, and updates provided. And I've seen all of that cared for and updated and improved in just the nine months since I started caring about linux. But no one has done the things we really need. And that's a problem.

In the future I'll talk about some of the ways in which we might improve the development process for the linux desktop, and some other features we might include.


Post a Comment

<< Home