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.
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 counterpoints. They 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.
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 mysteries.
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.
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?
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2012-07-07 Anthony Lawrence