My thoughts on a recent newsforge article:
To the problem of Linux being hard to install, I say phooey. Linux and Windows both have trouble installing, just on different systems. When it does install, Linux is usually easier.
To the problem of third-party package management - that is actually a real problem. There are several reasons and solutions:
1) The dists have done a good job of kitchen-sinking their distribution. Most of what anyone needs is already in the distribution, thus leaving little reason for people writing the applications to make it easy-to-install.
2) package formats cannot contain dependencies. Unfortunately, the current package formats do not have support (that I'm aware of) for shipping all of their dependencies. This can be solved by shell scripts, but because of #1 most people don't bother. However, maybe a universal install script might be a good project for someone. Have a script for collecting dependencies into a .shar file, and extend the .shar file to actually run the installer, which will install whatever dependencies are needed.
3) what is the operating system? The blurring of lines between operating system and add-on is great in Linux. Is Red Hat Linux it's own operating system? Is GNOME it's own operating system? How should someone communicate what operating system a package runs under? I think we need to stop viewing Linux as an operating system, and start viewing the distributions as operating systems. The distributions define their compaitibility requirements, and therefore should be what developers aim their packages for, since it is a stable, known quantity. I know you'll say LSB, but I don't think that the LSB is good for Linux.
Remember how Windows does this - they basically stick a new version of Windows with Office. Have you seen how many .dll's it updates? They basically replace the entire Windows infrastructure when you install Office. Therefore, I think the best way is for developers to ship the dependencies with the programs. Maybe they should also statically link more of their libraries. Maybe the libraries/toolchains should make it easier to choose which libraries are statically/dynamically compiled.