January 08, 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.

 

« DVDs Suck | Main | Why Open Source? »

That sounds horrible to me...

Yes it may be inconvenient, but the first one who'd come to me and says you are now to use only this packaging format, he learns to fly.
In Linux you have the choice, the choice of distribution, the choice of tools to use and it is better for it. It takes longer to find the right tool and it is more work to learn all you need, but if a system like this is bad, then why did apple change to a BSD-distro?
They could choose what to keep and and what to replace, but they wouldn't have done it, if they hadn't had the choice...

In my opinion Linux expresses a freedom that I really missed in the Mac.

BTW that single package format you want, isn't that what leaves windows a cripple after a year? I am also a windows user user and I know I don't know what the installations do, I have to trust blindly, and sometimes wrongly the people who created thos install packages to be trustworthy, but even the uninstall of a firewall application can cripple your system beyond repair.

Sven

I don't think it is such a bad thing that Mac OS X is not free; some software needs to generate income if software developers are to eat and live indoors. I have been trying to decide how best to approach this issue with my own software: I would like to offer free software, but I am dangerously close to being homeless and hungry as it is and selling my software or my development services seems the surest short-term way to stave them off.

I think you have some good points about Linux, though. I always have a GNU/Linux Web hosting account of some sort and every now and then, I try to use GNU/Linux as a workstation. Unfortunately, while most new releases of the various distributions and the various desktop environments are notably improved over previous releases (I have to except Ubuntu 6.10 because it lost the default support that 5.10 had for my 1680 x 1050 Apple Cinema Display), there is always something that keeps me from using a Linux workstation on a regular basis.

Currently, I have Fedora Core 6 installed on my secondary system (I have installed several operating systems and versions thereof in various experimental configurations on that system just over the past few days). Everything looks great with the basic system and most optional packages I have tried, but as soon as you want to enable visual effects or even just install Flash, you run into trouble. Command lines and shell scripts are fine for enthusiasts, but for a desktop environment to be generally usable, your video card needs to just work or at worst, you need to be able to install a driver from within the GUI without having to use a terminal to run a shell script that will complain about you running an X server, which will not make much any to most users anyway because they will not know what an X server is, nor should they need to. Adobe's own Flash installation instructions similarly invoke the command line. This is a hassle even for computer enthusiasts who take their enjoyment from using applications, not just installing them.

The biggest problems I am experiencing with my current Linux installation, though, are perhaps even greater deal-killers. Even the automatically-running GUI-based software updating system (pup, I think, although I am on a different system at the moment) requires far too much user interaction, provides only arcane failure information, and appears to stop completely upon failing to apply just a few updates out of over two hundred.

Too bad, I thought, but I can quit this application, remove some of the software I think I can do without from the system, then try again, right? Wrong. When I launch the application to add and remove programs, it complains that some unnamed application is accessing program information. Since I see no applications running within the GUI, my options are to investigate running processes via a command line, do the same via a services application (I do not recall the name at the moment; it was probably gsomething kdifficult to xpronounce), or to do something productive with my time instead. I investigate briefly via the command line then gave up. Things like this should just work; users should not have to bother with them.

That all said, Linux on the desktop has tremendous potential; it is getting closer to being generally usable all the time, but it is still frustratingly far away from providing a genuinely good user experience for the average user. Even GNOME, which I previously disliked, has grown on me and I no longer find myself immediately compelled to switch to KDE.

I was actually thinking about switching to Linux as my main operating system for a month as an experiment. I might still need Mac OS X or Windows for some of my work applications (mainly the Adobe and Macromedia graphics applications and Flash Professional 8, for which I have seen some alternatives available on Linux, but no truly suitable replacements), but as far as general productivity and Internet-related applications, I would be OK. It is not going to happen right now, though, with a system on which I cannot even properly manage installed software and its updates. Perhaps I will try again in a few months, but that system's hard drive is in danger of being reclaimed for Mac OS X or Windows use.

"What a pity the software isn't free....someone has to pay for it." Are you living in the real world of capitalism, or a non-existent socialist fantasyland where everyone's either rich like you or a thief? Easy to be a utopian idiot when you're well paid - by millions' millions of *pennies*. (And you think you're worth something to people.) That saying about ignoramuses in academia needs to be revised to include people like you. You're living in totalitarian fantasyland if you think everything comes for free. How can you separate far more highly paid Microsoft folks from your own success? If you doubt me then go and work for Castro's free revolution, shitpile.

Regarding the package and updating and removal difficulties I encountered in my previous post, I have some further information that others might find useful. I let Package Updater do its thing with everything checked except the frysk update, about which it had previously complained, and all other updates seemed to be applied without complaint. After the system restarted, I tried to let Package Updater update just frysk, but the update still failed and Package Updater still complained, so I ran Package Manager (pirut, apparently, although that gstill kseems xlike ga ksilly xname to me and I ran it by selecting "Add/Remove Software" from the Applications menu) and removed frysk (I have thus far not used it, so I suspect I can make do without it, at least for now). After that, Package Updater reported that it still had an update, but upon allowing it to run again, it revised its position.

Now my installation of Fedora Core 6 seems to be running OK overall, but Firefox 1.5.0.9 (interesting . . . I thought Firefox was on the update list, but I may have been mistaken) scrolls this page (but not all pages) very slowly and I am not sure if updating Firefox or diving back into the video driver hassle will have any effect, so even with the update situation mostly sorted out, Linux is still looking like too much of a hassle for me to spend much time using it as a workstation when Mac OS X and even Windows provide much smoother experiences, but things do keep getting better and Linux with its various distributions and desktop environments does seem to be improving much faster than HTML/XHTML or CSS, so perhaps Linux will become user-friendly for the average user to use it on a full-time, general purpose desktop system later this year or early next year. I love that there are competing operating systems and I look forward to the day when I can justify keeping three of them installed on different workstations at all times.

click_my_url, Wow, if you think I'm a socialist, you don't know me that well! But don't take my word for it, ask your party leader: http://www.rodneyhide.com/index.php/weblog/comments/ben_goodger/

I don't _expect_ Apple to provide their system source code for free (beer) or under an open source license. That doesn't mean I can't wish that there wasn't an open alternative, because alternatives and competition are what capitalism is really about, right? Providing that is part of what motivates my work on software like Firefox.

"In my opinion Linux expresses a freedom that I really missed in the Mac."
I agree with it.