The classic Windows vs. Linux argument

Posted on November 4th, 2006 by Tim.
Categories: Politics, Tim.

You’ll never catch me saying “Windows is better than Linux”. You simply cannot make a value judgement without the context of evaluation criteria. Having said that, I’d like to take the time to refute a comparison claiming Linux and BSD are vastly superior to Windows. Here’s my point-by-point:

4) Linux and BSD distributions are more configurable and modular

It’s hard to argue with this point, since Linux and BSD really are more configurable and modular. However, built into this statement is the implication that configurability and modularity are always good things. This is a classic mistake that programmers make when designing user interfaces. More options is better, right? Not always. Any good writer or UI designer knows that sometimes the things that are left out are just as important as the things left in. How many users really need that much configurability? Almost none.

3) Linux and BSD perform better on any given platform

This is a classic apples-oranges comparison. “My simple UI performs faster than your modern UI any day of the week“. Well, duh. What’s implied here, however, is that a program running on Linux will perform better than that same program compiled for Windows. I’ve never seen any benchmarks that support this claim.

Perhaps if this claim was actually saying “Linux and BSD extend the useful lifetime of obsolete computers” then we would probably agree. Unfortunately, this isn’t a relevant claim as far as I am concerned. Any computer that can’t run XP is really not going to be that fun to use with Linux either. Is open office going to load any faster on the P233 running linux compared to the P233 running XP? How about Firefox? Yeah… I don’t think so.

2) Linux and BSD don’t limit your platform choices.

Another point that I can’t argue, but the implication here is that it’s intrinsically bad to limit your platform choices. For enterprise applications, this is probably true, but for the average desktop user, there is only one platform anyway. Even if you somehow convinced your gradma to run Linux, does she have any motivation to run it on a Sparc? How about a MIPS machine? Yeah, didn’t think so about that one either.

1) Linux and BSD give you complete freedom to do what the hell you want with your system

I have the most trouble arguing with this point, since for the most part, it’s certainly a valid argument. But again, I question the relevance of the argument. Is there any aspect of the freeness of Linux (free as in speech, not as in beer) that most linux users take advantage of that Windows users cannot? The only thing that I can think of is access to the source code for Linux, and that’s just because I’m a huge nerd and like to learn stuff about OS design. For the average user, this is really not a huge issue.

I will not draw the conclusion that “Windows is better than Linux”, since such a claim has an intrinsic evaluation criteria that needs to be stated. This is something that people rarely seem to mention when making a value judgement. There are two parts to a value judgement, the evaluation criteria and the argumentation supporting the claim that using said evaluation critera, item X is “better” than item Y. Sometimes, people focus purely on the argumentation supporting the claim. This would be the same as arguing that Linux and BSD distributions are not more configurable and modular than Windows. While this may or may not be a supportable claim, the fact is that if the evaluation criteria is inappropriate, the truth or falsehood of the statement is irrelevant.

0 comments.

The Microsoft Interview Process (and real interview question and answers)

Posted on November 3rd, 2006 by Chris.
Categories: Business/The Software Industry, Chris, General/Misc..

I had a fascinating interview with MS today. Microsoft, as you may or may not know, is the company Gas works at, an enormous software company best known for Windows.
MS primarily recruits for 3 technical positions:

  1. The Program Manager, or PM, who is responsible for writing the specifications for a product and working with the other members of a team to implement it.
  2. The Software Design Engineer, or SDE, who writes the program itself.
  3. The Software Design Engineer in Test, or SDET, who develops tests to make sure the product works.

At my first round interview last year, my interviewer asked me 3 questions:

  1. One was about designing a cell phone.
  2. One was about reversing a linked list.
  3. One was about testing an escalator.

One question was for each position; I’ll leave it to you to guess which was which.

This year, I had a quite different experience.

(more…)

2 comments.