+99999999999999999
1. Developers, stop releasing source-only packages. Linux is never ever going to get mainstream adoption without
functional, distro-agnostic binaries being made available for the major projects. This includes desktop environments. Stop forcing users to beg a distro company for updates. Linux is supposed to mean freedom. My first and foremost goal developing a project is getting it easily to users, but it seems many developers don't give a crap about users, ease-of-use, and installation.
2. Developers need to use a package standard which will get dependencies no matter what. I don't care if libjdwrujbs-2.125 isn't in my distro's repo, download that version from the library's website. Otherwise, if the library isn't nicely and readily available, get them to be a better project host, or include the specific version along with your program.
3. Use libraries which have better standards and don't constantly break the API so users won't need a different version for every program.
So far the only real solutions that seem to exist that I've found (feel free to give me better ones) is packaging systems like
Zero Install which allows nice installation, updates, etc in a cross-distro fashion, so you install a 2nd package manager side-by-side with the existing one, and it plays nice. Also, using cross-desktop environment standards, like
wxWidgets? Or can Qt also mimick GTK? You need to use something like that so your program looks good no matter the desktop environment the user is running.
If those are the best standards that Linux has right now, freedesktop.org and other standards bodies need to recommend them. It would be really great if Linux stopped being stupid with drivers too though, yes. Make a driver communication standard that never or very rarely has to change. If that means "making the Linux kernel sort of into a macro kernel" then why not? The reasons for not doing it are stupid. Making it
easier to maintain and create a driver for Linux means win for Linux and its users.