Sorry Rich,
You are wrong. Most companies don't come out ahead running open source, especially on the desktop. Sure, it makes sense in large web farms where you have uniform deployments of applications and adequate, knowledgeable support on staff, but not for the non techie small businesses or even the large enterprise businesses that have great diverse needs across their user base. By and large the business app base is written for Windows and this also where support is most readily available. Support, not acquisition, is by far the largest cost of IT. I have owned a successful IT service provider business since 1994 and was in the business for years before that. The businesses I have worked with (many large fortune 100 and 500 included) are not run by dummies. If the numbers crunched, they would have jumped on board. These are not ignorant or misinformed people and yet, Microsoft still dominates the desktop...
It's not always like that, John.
I worked mainly with small and medium-sized business, and most of them could have handled all their business needs using open-source software.
I worked at one place that had 26 workstations running Windows NT4, and a Windows NT4 domain server to manage those workstations. One user was the bookkeeper, who needed to use Quickbooks because that's what the accountant told her she had to use. The other was the boss's secretary, who mainly used Word and Excel. The boss himself refused to touch a computer.
The other 24 users were CSR's using Windows to Telnet into a Unix server. That was all they used their workstations for. They weren't running a single native Windows program. The company was paying for the NT4 server, all those NT4 workstations, and all the CAL's for the workstations and whatever else was on the network, just so they could Telnet into a Unix database server.
When NT4 ran out of support, I suggested that they go with Linux workstations or thin clients for the CSRs. All they were using was Telnet, anyway. The company briefly considered it, but one of their on-site "experts" talked them out of it because Windows was what the workers were "used to."
I just nodded my head and shut up. If they wanted to **** away thousands of dollars so users could use one Telnet client instead of another, despite their being zero difference in the user experience, why should I care?
There's a lot of circular reasoning in platform selection, too. For example, I once supported a small construction company that was using an industry-proprietary, Web-based application whose server component was only "supported" on a Windows server. Previously it had been free-standing, but the then-newest release required a server.
On close examination, however, I found that the application actually required a WAMP server (Windows, Apache, MySQL, and PHP), and included that software as part of the package, to be installed on the Windows server. So I said to myself, "Self, there's no reason this can't run on a LAMP server," which would save the client a few grand.
Long story short, I extracted the files in Windows and then manually installed them on a spare LAMP box I had laying around. Other than creating and populating the database, it was just a matter of copying the files onto the Linux server and editing a single line of code on one file to insert the license key manually. Sure enough, it worked flawlessly.
The problem, of course, was that saying "it works" is not the same as saying "it's supported." The vendor refused to support it on Linux. It would complicate the updates, they said, because they were released as Windows executables. So the client had to spend several grand for a Windows server to run a Web application that ran perfectly well on an old Linux box that I'd been using as a doorstop because the vendor chose to package their updates as Windows executables.
That's what I mean by circular reasoning. The vendor packaged the updates as Windows executables because the system ran on Windows; and it had to run on Windows because the updates were packaged as Windows executables.
One area in which I do agree with you is that Linux is a much better server system than it is a desktop system. But it's not a horrible desktop system. I used it for years as my primary desktop OS, and probably would still be using it that way had I not migrated over to Web design. My Adobe stuff won't run reliably on WiNE, and I like and am familiar with the Adobe software. (So the familiarity and momentum aspects are operative in my choices, too.)
It's really not an issue anymore because Windows is a good OS nowadays. But my point is that Linux isn't horrid as a desktop OS. It's just better as a server OS. It could be a perfectly adequate desktop system for many businesses, especially where Web-based applications are used or when employees' duties are narrow and well-defined -- like the company with all those people using Windows to Telnet into a Unix box.
It all gets down to familiarity, even on the support end of things. Which, again, is why I think MS was crazy to tamper with familiarity. It's one of their most valuable assets. They should have been guarding it with their lives rather than intentionally ripping it out of the system.
-Rich