4. After the user’s selection, it would be nice to present screenshots of KDE, Gnome, XFCE, and Fluxbox. This will enable the user to get an idea of what the desktop environment looks like and let the user choose whatever he wants to use. The installer can choose which applications to install in the background; for example if the user chooses KDE, the installer will choose Kontact, KTorrent, etc to install, but if the user chooses Gnome, the installer will choose Evolution and Transmission. An option for an intermediate or advanced user to install any combination of applications he or she sees fit will also be included.
5. If the computer is connected to the Internet, the installer will connect to the online repositories and check for the most recent stable release of drivers for the hardware it detected. If it finds newer drivers it should be able to download them and configure them during installation.
6. There should be no content in the repositories other than the “source codes.” The user must not be bothered with the dpkg, rpm, etc. The package format should be basic and the package manager should be able to see the dependencies by checking the contents of the configuration file, adding the relevant dependencies to the download queue. Since Linux is full of choices, there would be other distributions and other package formats. The installer should be able to check the other distributions’ repositories, download the specific packages, open them and take out the files inside and then install as necessary (such as the alien application which can convert between rpm, dpkg, slp and tgz files). Personally, I would advise all distribution developers to agree on a package format, which would be source code and then write package managers which can process the source code.
7. The software installer should be capable of displaying screenshots of the application, which the developer should be required to provide when he is uploading his program to the repository. If the user is installing applications from the command line, the syntax should be as close to English as possible (better customizable for localization); for example instead of apt-get install X or yum install X, the command should look like install application X. The parameters should also be natural, such as install application X for all users or install application X for current user. This will also have a positive effect on the users who are hesitant to use the command line.
8. Nothing is perfect without help and support. The distribution must have good documentation and online/offline help files. Another must have is a first-run-wizard which would be readily accessible to the user. The user shall be able to chat with the developers or the power users via a web interface and ask for solutions. The support can be financed by defining support tiers, for example “how can I view my photos” can be tier-1, which can be USD/EUR 0.1 but “Squid crashes when user X connects” can be tier-5 and can be priced depending on the severity/complexity of the application. This way, both the end users and the corporate users can enjoy their operating system to the maximum and feel backed up with a professional company other than the forums or Google search. I dream about seeing such a thing from Linux Foundation or a group of Linux Distributions (openSUSE, Red Hat, Gentoo, Pardus, Mandriva and all others).
9. The distribution should have certifications. Not only for system administrators, but ranging from the average user to system architects. The courses and exam fees will also help financing the distribution.
That’s what I can think of to make a distribution 100% perfect. But if I missed anything, hit the comments and shout!