An area where Linux is sometimes criticised is the level of difficulty expericed by people new to the operating system when installing software. Earlier today, Dr A J Cann posted an example of this criticism when he suggested that Ubuntu should follow the same model of software distribution used Microsoft Windows and Apple Mac OS X of having a downloadable installer file for your desired program. I don't agree with his suggestion, but do see his point that installing software for someone unfamiliar to Linux can seem a daunting task. If I know someone is about to try out Kubuntu, I always try to sit them down and explain the package management system to them. There is no direct equivant of this on other operating systems, so I find it helps to explain it to people. Once, somebody explained package management to me and it saved me a lot of time.
I think APT is a great way to manage software on a computer system. It can make sure that software does not conflict, that any other software needed is installed, it can install suites of applications in one command, it can even handle an entire upgrade of your operating system, importantly too it provides a coordinated way to keep software up to date, programs do not have to contain their own installer mechanisms. It makes full use of the Internet as a distribution medium, you don't have to download the software yourself it will do it for you. Downloadable installer files though belong to an era when software was distributed on a physical medium, such as a floppy disc or CD-ROM (still common with proprietary software). If you want to update software installed in this way you must update each program separately. CD-ROMs will start to disappear soon, just as floppy discs did. The new Apple Macbook Air for example does not feature a CD-ROM drive, echoing an earlier move by Apple in 1998 which say them ship Apple iMacs without floppy disc drives, a radical idea at the time.
Where APT can get a bit unstuck though is when trying to install a piece of software not available through a preconfigured repository. Flock is currently one example. Here things get messy for people, they might find that they have to install a piece of software manually and make sure all of the dependencies are handled, or they might find that the producer has their own Debian repository, as in the case of VirtualBox, which they must add to a configuration file, update the catelogue of software on their machine and install. This starts to feel a bit messy to people or maybe a bit intimidating, the experience loses its smooth feel.
So what might be the way forward? Well let's start with an idea that most software will be installed onto machines from the Internet. Instead of going to a local retailer for software people will want to download an open source or proprietary package of their choice from a variety of organisations online. Ideally this should be as easy as possible, something that can follow on from finding a site about a piece of software to being able to click on something in the site to initiate the installation of software, for example, if someone reads about Flock, they should be able to basically say "yes I want that" and click on a link in that site that would start the installation process, without the need to do configuration, or download files or prerequisites. There should be some security of course, and the OS should prompt for a password and show the user the changes that will be made as it does now to install anything. The experience could be something like a decentralised version of cnr.com. This would make it easier for people to discover and start to use new software.
Under the hood ideally such a system should still be based on APT, it is a technology that is very robust and has proved itself, but the process of installing software would change slightly. A key part of the idea here is that the computer should be doing the leg work in finding and obtaining the software. An interesting technology I came across when working on Open Research Online was the Digital Object Identifier a system for locating such things as academic papers, music, video and other documents by means of a resolvable reference number. Our version of a DOI could be a resolvable package name, normally embedded in a hyperlink of a web page. This link could be passed to APT and if it relates to a software repository that it already knows about it could proceed to install the software. If it is an unknown repository then APT should be able to contact the software producer, find the listings for the right repository, and then automatically configure the repository itself. After that it could proceed to install the software. Perhaps the resolvable package name could use a service to relate that piece of software to a repository rather than a direct link. This would mean that software could be moved between repositories as needs demand without changing links.
I still need to formulate this idea a little more, but I hope you can see the basic way it would work. The idea is very much to let the computer do the work and let the user have the simplest experience of installing software possible.