A Weblog by Ben Goodger

January 8, 2007

What a wonderful world we live in today, with MacOS X. Lots of decent software, and a slick, simple operating system. A pity though, since the system is not free software, and as developers we are restrained by Apple’s shipping schedules to find out more about interesting new developments in API land.

Over the past few years, so many pieces have come together in Linux software for building a competitive desktop operating system, but so far none of really “clicked”. Ubuntu is the latest and greatest, but still has some distance to go before it reaches the elegance of the Apple system. Elegance is more than just skin deep - here are the key things I think should be done in a Linux Desktop operating system:

Standardized packaging

There seem to be a variety of different package formats, and people talk of using distribution-specific tools (command line, graphical, web site) to find software for their distribution and install it. This seems to me like a huge waste of time, compared to Mac and Windows where there’s more or less one way of doing things and the convention is you go to the software publisher’s site to get the latest and greatest, rather than having to wait for it to come through your distribution’s package tool.

Saner application and library installation and directory layout

A Unix system typically has a lot of different places for programs to be installed. Files and folders end up all over the place. It’s about as bad as Program Files is on Windows. Why not mask off the core Unix-style command line utilities behind a curtain somewhere like OS X does (still available through the Terminal app) and create a new bundle structure for applications such that their install location is obvious and installation and removal is as simple as adding or removing from the Applications folder?

(I know, this system has flaws for apps that leave behind shared frameworks, but those are usually the exception more than the rule)

HIG applied more or less consistently across all “core” applications in the system

From the web browser to the network status tool, all should feel like they were painted by the same brush.

Smaller install, with fewer packages focusing on just what people need.

The ideal distribution would ship with only one of a specific class of app. Not even two with one default and another available but not default. That’s what the internet and downloading and the wonderful ease of installation afforded by simpler standardized packaging allows for.

An easy to use but powerful application development toolkit

The system software should be built with the same toolset offered to applications. It should be powerful but easy to use. It should reinforce the HIG with its very use. Simple but useful patterns repeated to give developers and users a sense of understanding and mastery over their systems. Use of standard technologies for data storage, UI etc should be the path of least resistance.

MacOS X possesses many of these characteristics, and I think it’s part of the reason it’s such a joy to use. The hacker in me wants more freedom though, and I look forward to the day when the open source alternative reaches the same level.

Comments

6 Responses to “Linux Desktop OS Fundamentals”

Comments are Closed