Re: Flame Bait! Windows vs: The Unices
From: Richard Heathfield (dontmail_at_address.co.uk.invalid)
Date: Fri, 16 Jan 2004 22:31:35 +0000 (UTC)
I apologise in advance for the length of this reply. Furthermore, although
Chris has the words "Flame Bait!" in the subject line, I've attempted to
keep my reply rational, polite, tolerant, and intelligent. You can decide
for yourselves whether I've succeeded. :-)
Throughout this article, I use the term "Linux" to refer to a typical
Linux-based distribution, such as SuSE, RedHat, Debian, Slackware, etc,
complete with GNU tools, X, etc. Also, except for licensing and open source
issues, I think I'm right in saying that one could reasonably s/Linux/Unix/
without too much risk of introducing errors.
> Last November it seemed I might have to recant on something I'd been
> saying for a while about the advantages of Windows... yet nothing
> appears to have come of this "Pepsi Challenge".
> Any other takers?
It may be that you got no takers because your challenge was based on a
preconception about what constitutes an all-growed-up operating system.
In other words, you looked at the kind of stuff you do on Windows, and
thought "okay, if Linux is so great, I ought to be able to do this kind of
stuff on Linux". Well, maybe that's true. Or maybe it's a mindset thing.
Perhaps "Linux people" (if the term makes any sense) just go about things
in a different way to you, and perhaps Linux seeks to address the needs of
those people - or rather, perhaps those people find that Linux happens to
address their needs better than Windows does.
That doesn't mean there isn't a market for Windows! Obviously, there /is/ a
market for OSs other than Linux, and it has to be said that Windows is
particularly well-served for driver software, whereas it is not unknown for
Linux users to struggle to find drivers for their particular flavours of
hardware. Having mentioned the driver issue here, I won't raise it again,
since it's an old chestnut.
Like many Linux users, I have used Windows a *lot*. I used MS-DOS, and then
Windows, from 1989 to - well, until I started using Linux regularly, which
wasn't all /that/ long ago. Possibly early 2000 (although I had certainly
tinkered with it before that). If "when you learned to use vim" defines
when one really started to use Linux, then early 2000 is indeed the right
date. Since Windows really came into its own in about 1991, I guess I could
claim to have approximately a decade of fairly unadulterated Windows
experience (punctuated only by mainframes and the occasional OS/2 box). So
I'm not speaking from complete ignorance when I talk about Windows.
In fact, it's only quite recently that I've stopped bothering to turn my
Windows box on *at all* unless I have a specific Windows task to perform.
Trying to think of one... Er... 
When I started using Linux, I found that - after a certain amount of
stumbling around in the dark - it matched the way I /think/ far better than
Windows does. Let's take a brief look at your challenge in that light, and
see if it makes any sense *to me* to take it up... (see below).
> Programmer Dude wrote:
>> Here's your goal:
>> 1. Database server running on a remote machine.
I rarely use databases at home. I have no real need for them. Therefore, I
don't particularly want to access a database server on /any/ machine, let
alone a remote machine! :-)
To store data, I am perfectly content to use a text file. (We've been here
before, I know.) Now, it happens that Linux is /really good/ at text files.
:-) But wait... didn't I use databases when I used Windows? Well, no, not
really. At work? Sure. At home? Never.
>> 2. Application Documents with embedded (SQL) queries against the DB.
>> - should contain the query results table, and
>> - a chart(s) based on data in that table.
>> Document should refresh when opened and on command.
>> There can be multiple instances of these with different types
>> of queries.
I must admit I wouldn't have the foggiest idea how to do this on Linux - or
even if it's possible - but then, I never did it on Windows either. I did
in fact /try/ to embed data into documents a few times under Windows in the
early days, but I eventually gave up in frustration because it never worked
properly. Perhaps Windows has "matured" since then, for I have not bothered
trying in the last five years or so.
Of course, since I don't really have a use for databases at home, the
specific examples you provide aren't things I'd want to do anyway (which is
why I've snipped the rest of your challenge - no offence intended, I assure
In a *work* setting, most of my database work has been on mainframes, and,
in any event, in a work setting one tends to use the OS one is given,
rather than get involved in career-limiting advocacy battles with one's
boss - making discussions such as this one rather pointless. As far as I'm
concerned, discussions about which OS to use are generally only relevant
for home users, since opportunities to select an OS in the workplace are
generally limited - although, of course, they do happen, and there are few
things I'd rather be asked on my first day at a new site than "what OS
would you like to use?" This has happened to me on three different sites
IIRC, and each occasion was a surprise and a delight!
So - purely in home-use terms: what do I use Linux for, and why Linux rather
than Windows? That is, why do I use a computer at home, and how does this
affect my choice of OS? Well, in the first version of this article, I wrote
a detailed analysis of my home computer usage, but the article got to be
exceedingly long, so I've decided to discuss /only/ programming (this
is, after all, a programming newsgroup), and I've therefore chopped all
that other stuff out of this article, reducing its length by several
I love to write programs, and it is undoubtedly the primary way in which I
spend my spare time. I've never been particularly interested in hardware,
though (with the possible exception of scribbling on video RAM in real-mode
computers, which has a certain fascination); my interest is more in the
abstract concept of programming. This interest happens to fit in well with
the concept of portability, since an abstract program needn't be tied to a
particular platform. Consequently, the programs I write at home generally
don't require a particular OS (although they do require some OS or other!).
So my choice of OS is not forced by the programs I write. Therefore, I am
free to choose an OS that best fits the way I program; an OS that best
matches my programming mindset; an OS that provides tools that I happen to
find effective for my own needs; an OS that does not involve me in
inordinate expense; an OS that follows my Principle of Least Intrusiveness.
For me, those criteria lead inexorably to Linux. Perhaps, for you or for
others, the path leads in a different direction altogether. That's fine by
me - I'm a great believer in cultural diversity, especially in programming.
I tend to have quite a few machines kicking around the place. In the days
when all my machines ran Windows (except for those which weren't powerful
enough!), I used commercial software. If I wanted to use a particular
program and had only one copy of that program, I had to use the computer on
which that program was installed. With a few notable exceptions, it was
generally the case that the software licence didn't permit me to install
more than one copy (without going to the expense of buying a second copy of
the program, that is). This could be annoying at times. Also, when I
acquired a new computer, I either had to buy a new compiler for it, or
remove a compiler from another machine so that I could write programs on
this new box, or restrict myself to using only Borland implementations (the
"use it like a book" licence, God bless it) on that box. Nowadays, of
course, I realise that, had I only had an Internet connection at the time,
I could have got hold of really good free compilers from the Net, but, for
most of my Windows-using period, I didn't have Internet access. So I was
severely constrained in terms of programming tools.
With Linux, this simply isn't an issue, for reasons which will be so obvious
to readers of this newsgroup that I shan't bother to go into them here in
any detail. Suffice to say that I can grab a distro CD, stick it in a new
box, and have a working OS up and running in very short order, complete
with a full set of tools, and no licensing issues.
>From a programming perspective, Linux is richly blessed with a plethora of
powerful tools. I won't bore you with a long list! But of course there are
hundreds of them, ranging from tiny little utilities such as head and tail,
through rather more heavyweight programming tools such as gcc, right up to
the monster apps like EMACS and Star Office.
The general philosophy of a Linux tool is: do one job, do it well, and -
where it makes sense to do so - accept input and provide output in a
standard way (the filter model). This makes joining various Linux tools
together pretty simple. In fact, just *using* Linux is rather like
programming, but with entire programs as one's "functions". This makes it
very intuitive for me. And it's eminently scriptable - rather more so than
MS-DOS, and /far/ more so than Windows.
So - is Linux an "advanced" OS? Is it "as mature as" Windows? Is it /better/
than Windows? All of these questions are, IMHO, meaningless. It is
certainly advanced enough for my needs (modulo the irritating driver
issue). It seems to *me* that it is more mature than Windows, because it
does things the way /I/ want them, rather than the way Microsoft wants
them. For someone who prefers the Windows way, obviously Windows will seem
more mature. It all comes down to mindset. Although I really, *really*
don't like the way Microsoft do business, I'm glad Windows exists, insofar
as the existence of multitudinous operating systems constitutes cultural
diversity and therefore *choice*. I just wish more people realised that
they /have/ a choice, and that they would make that choice positively and
intelligently. If someone compares Linux and Windows and finds that Windows
meets their needs more closely, then okay, let them use Windows. But for
/me/, Linux is the right choice, and it does all that I require of it.
Whether it can embed SQL queries into spreadsheets (and I simply don't know
whether it can or not) is a matter of the utmost indifference to me, since
I cannot envisage a situation in which I would find that feature even
remotely useful. Consequently, I will make no attempt to meet your
challenge. For me, Linux's pros far outweigh its cons, and Windows's cons
far outweigh its pros.
Your Mileage May Vary.
 Well, right now, the only thing I can think of that I might want to do
on Windows is to write a GUI program that can run on the Win98 machine in
the living room, which the children generally use for games and other - er,
I'd better not say "other trivia", had I? :-)
 Never say never.
 By which I mean, even more exceedingly long than this second version!
-- Richard Heathfield : email@example.com "Usenet is a strange place." - Dennis M Ritchie, 29 July 1999. C FAQ: http://www.eskimo.com/~scs/C-faq/top.html K&R answers, C books, etc: http://users.powernet.co.uk/eton