Here's yet another post where
people argue about the cost of switching to Linux:
Is Linux Cheaper on the Desktop Than Windows?. The Windows people raise
their usual arguments about Linux sysadmins having higher salaries,
the Unix/Linux folks counter that you need more Windows admins so those costs
aren't true, the cost of viruses is balanced against the supposed
virtues of Windows Group Policies scheme, and on it goes.
What most of these people don't know is that we already know
the cost difference because years ago we had people switch from
Unix to Windows and it ALWAYS cost more. My small Unix customers
typically had no sysadmin staff or part time at most. When they
switched to Windows, they all ended up with full time support staff -
sometimes multiple people.
Is Windows just a lousy OS?
Why? I suppose we could argue that Windows is inherently flawed
and all software, whether written by Microsoft or not, is going
to have more problems and therefore require more support. We could
(perhaps with more justification) argue that viruses are what add
to the support costs. That's certainly true, but I can testify
that Windows support costs were higher even before viruses became
the outrageous mess they are today. As to Windows being more
flawed or more difficult for programmers, I don't think we can make a
strong case there. Certainly there are weaknesses in design - Windows
doesn't handle forks well, for example - but programmers have certainly
learned their way around all that. Yet there is the very obvious
fact that Windows networks require more support personnel than
our old Unix networks did.
That's reality, but the Windows folks still automatically have legitimate
can rightly say that users using dumb terminals simply can't do things
that Windows users can - so naturally there would be more support.
I'd argue that the terminal users were more efficient and wasted
far less time in a day, but let's ignore that and concentrate on
the "Windows users do more" part.
I don't think that tells the whole story. The Unix terminal users
had just as many needs and desires as Windows users. They
always wanted things, but they wanted things that made their work
easier. They wanted the computer to "do" things - to
reply to emails, to print copies of purchase orders on another
printer, to reformat data for them. They asked the programmer, sysadmin
or consultant to make these things happen.
And those programmers or support people generally made it happen. They
wrote shell scripts, C, Perl, whatever and gave the users what they
needed. They could do that because most apps were custom written or
at least had available source code or if they didn't they had lots
of hooks where you could tie in.
But the Windows stuff didn't. Oh, some Windows apps have API
hooks, but I don't think it was (or is) as common or as easy on Windows.
I also think that in some places, particularly at smaller networks,
the quality of support techs just isn't that good. While I have
no statistics to back this up, I think if you polled Windows
support techs and Unix techs, asking both if they had decent
programming skills, you'd probably find that the Unix techs were
more likely to be able to code or at least script solutions to
userland issues. That's certainly partly because you HAVE to
possess at least a read-only familiarity with shell scripts
to get very far at all with Unix or Linux - I don't think the
low-level techs in either camp really WANT to learn basic programming
skills, but the guys on our side are somewhat forced into it.
Maybe it's just a bad attitude?
I also think that the userland side of Windows encourages a different
attitude toward computers. In the days of dumb terminals and even where
there were X-Terminals, the computer was the Computer With a Capital C.
It was tended to by very special people with esoteric knowledge. An
ordinary user wouldn't presume much knowledge of these computer
Windows changed all that. Suddenly a lot of things that formerly
required the intervention of High Priests could be done right at
the user's own keyboard. It's right there, right at the junction
of the keyboard and the user's fingers, that a lot of the trouble
begins. There are two parts to it. One is the expectation
that Windows SHOULD be easy. Terminal users had no such expectations -
computers obviously were NOT easy; why else would they need
tending by those acolyte priests? In reality, Windows is no more
easy or more difficult than our old terminal apps were: users still need
training and the quality of the app software itself is most of what
causes problems: Windows itself has little to do with it.
Some common ground
The other factor is implied in the words "Windows Operating System". Oh, we
had windows, even on character based systems. But the operating system? That's for the guys with long hair, thick glasses and pocket protectors to deal
with. Most importantly, there was no importance to the OS at
the desktop. If the desktop was a computer at all, it didn't matter very much because its entire expected function was to get at application at the main
server. That same model is deployed today with Windows Terminal server and
I bet you can find Microsoft citing studies that show how much support cost
can be saved in that model.
Let's go look, shall we? You can find Microsoft's case studies at Customer Stories. Searching for "Microsoft Terminal Server" turns up a number of studies praising the cost savings so I think it's fair to say that Microsoft agrees with me this far, at least: thin clients and a central server have a lot going for them. Most of the savings come from desktop support - if the thin client is acting up, you can replace it quickly. If the user is still having trouble, it's back at the server and when you fix it, you've fixed it for everyone. This holds for everything from bad perms to bad viruses and a lot of stuff in between.
So.. if we both have a central server, is it better that the server be Unix/Linux or Windows? Tempting as it is to bring up the virus stuff again now, let's restrain ourselves. Which server will cost less to run and support? We'll pretend that the costs for the OS software patches are equal even though they aren't. We'll pretend that the Linux server needs to have virus protection even though it doesn't. We'll pretend that a Unix/Linux admin actually does cost more per hour even though that's not really true either.. funny how much we have to pretend, isn't it?
And after all that pretending, we're probably at a dead heat. I can argue that the Unix/Linux admin can do more and do it faster, but that's opinion and it is going to vary with the skill of the admin. I can cite uptime studies, I can point out that
Unix/Linux machines require less horsepower so will either cost less to run or
give better performance, but the Windows guys aren't going to just roll over from that.
They aren't going to roll over, period. I think realistically we'd be lucky to drag many of them to a grudging agreement that things are about equal. But hey, that's something, isn't it?