"Not much packaging experience, I gather? For any non-trivial program you will have a different package for each supported version of each supported distro. There are three main approaches to this:"
No, I'll freely admit I don't. I'm looking at this from a small developers point of view too. I maintain a small piece of freeware, as a hobby, and because I use the rather wonderful Qt framework I can ship for win/linux and OSX easly, so I do.
My build process for a release takes about an hour (involving 2 virtual machines for the 32/64 bit linux builds), and is fairly boring.
However, at the end I end up with a windows installer I know will work on Windows from 32bit XP to 64bit Windows 7, 2 OSX builds, one for intel from 10.5 onwards, and one universal one that'll work on anything from 10.4 onwards on either PPC or intel.
I also end up with 2 tars for the linux distribution, which do work on most of the linux distros out there. (BTW, I get it's gnu/linux, but hey..) However if I was to offer distributions packages also I would (unless I'm missing something), have to have at least another 1 (or 2 for 32/64 builds) distro's installed in virtual machines, and more and more complexity as part of my build process.
If I was a company with a build infrastructure obviously this wouldn't be a major issue, but as a single developer workng on a small hobby project the extra time/effort for the very small number of users it would affect is not something I'm going to do.
So I have an installer that works on all the versions of windows I support, all the versions of OSX and 90-95% of the linux distros out there. That was my point.
"I have no Windows experience whatsoever so I cannot comment there, but I have heard rather otherwise from my Windows colleagues."
Windows installer makers are usually horrible (Installshield is yukky, NSIS is free and... strange...), however if you understand windows DLL loading semantics my point was more that you can create an installer and have confidence it will work on your target OS, not that it /should/ work assuming all the dependencies are satisfied.
"Having a varied yet interoperable ecosystem is precisely one of the advantages being brought into the game. As a developer I much welcome this."
I wouldn't disagree with this, I do quite like linux (although I'm not hugely into the ideology behind the GPL, if I'm honest my nix of choice is NetBSD.) however my point was that easly packaging software for the desktop is difficult, especially if you want to be distribution agnostic, and this is possibly one of the hinderances to large scale adoption of it as a desktop platform.
Oh, and @John Bailey:
"Which is why you use install method number three.. The one that nobody seems to talk about. Outside those of us who actually use Linux that is.
Pre compiled binaries. The Aspirin to your distribution headaches."
Ironically, this is what I do do, I ship a tar with the required shared libs all precompiled, and I'll agree it does work, however it does occasionally fall down. (eg, I have a report from a user using a slightly more esoteric distro of my software that they can't get it to run, the only way I'm going to fix it is to install the distro their using to track down the issue as it works fine for me on the ones I try.)
"The old "Buuuut you have to make a different exe for every distro.. " chestnut is about as realistic as complaining about not being able to mount a USB key. Basically, a depreciated stick to beat Linux with. ."
However, anything more than a non trivial program is going to have a fair chunk of dependencies, now there's a good chance (expecially these days) that most distro's do ship with fairly similar versions of whatever libs you've linked against, but there's always that /slight/ chance that someone will try your precompiled software on a machine with an old or incompatable libraray, and, from a users point of view, weird dynamic linker errors aren't particularly friendls.
"And with open source software, not a problem. The distro maintainer handles it, or the users set up their own repos. We are after all, talking about open source based OSs. Not really set up for all the closed source stuff. Why should they be. Different business model."
Because i'm using an operating system, not an ideology? At the end of the day I want it to provide an abstraction layer for software to run on, and ideally I'd like it to run whatever software I choose, not just whatever software happens to be ideologically compatable. ie, I don't run linux at home because it's 'open source', I run it because it's the best platform to drive the software I need. (In this case Mythtv), But that's just a different point of view I suppose.