POV-Ray : Newsgroups : povray.off-topic : Holy Wars : Holy Wars Server Time
3 Sep 2024 17:18:13 EDT (-0400)
  Holy Wars  
From: Invisible
Date: 4 Oct 2010 05:03:30
Message: <4ca99862$1@news.povray.org>
Holy Wars. Computer nerds seem to be having them all the time. Take 
programming languages, for example. Need I elaborate further on the 
death threats and other raving lunacy that has been uttered over 
programming languages? And text editors. I don't even need to tell you 
the crazy words that have been spoken about mere text editors. But those 
are just the well-known ones. Windows vs Linux vs MacOS. FAT vs NTFS vs 
ext2 vs ext3 vs RiserFS vs XFS vs WTF-are-you-on-about-FS. Kerberos vs 
NTLM. SSH vs IPsec. KDE vs GNOME. Debian vs SUSE vs RedHat vs Corel vs 
Small Pink Lizard Linux. Intel Core i9 vs AMD Phenom II. MP3 vs AAC vs 
WMA vs Ogg Vorbis vs FLAC vs Monkey. MPEG1 vs MPEG2 vs Xvid vs DivX vs 
H.264 vs my grandma's old valve TV. WinZip vs WinRAR vs 7zip vs UPX vs 
infinite monkeys with typewriters. Quicksort vs mergesort vs heapsort vs 
shellsort vs radix sort vs my receptionist. I could go on. (And on, and 
on, and on...) The short version? For whatever reason, computer geeks 
seem to spend forever arguing about stuff.

Basically what most of these arguments boil down to is "my favourite 
tool for X is the best - and you should all agree with me".

Now, think about that for a moment. "My favourite"??

Tell me, how many Holy Wars have you seen fought over whether strawberry 
icecream is better or worse than chocolate icecream? Uh, none. Nobody 
*cares* what you think is the best icecream, because everybody realises 
that IT DOESN'T MATTER. It's just a personal preference that doesn't 
make any difference to anything.

Then again, icecream isn't a tool. So how about real tools?

Well, I don't know any mechanics *personally*. But I've yet to see a 
bunch of them get into an irate shouting match about whether an 
adjustable spanner is better or worse than a well-made fixed spanner. 
You can see how there would be merits to both, and how some people might 
prefer one to the other, and they *could* spend months debating it... 
it's just that they don't. As far as I'm aware, no mechanic actually 
gives a **** about the difference. Given the option, they just use 
whatever tool they prefer, and if there isn't an option, why argue about 
it? It's just a tool.

What you *do* sometimes see is wars fought over styles and fashions. 
Stuff like the Mods vs the Rockers. But that's more about tribal 
supremacy than anything rational to do with clothes.

So WTF is up with all these Holy Wars about programming languages? Well, 
here's my best guess:

1. A programming language is a tool. You use it to write programs with.

2. Some programming languages definitely *are* "better" than others, in 
an objective way.

For example, take BASIC. The 1980s was a decade of 8-bit home computers 
running BASIC. It's a great language for non-experts trying to piece 
together simple programs. But no sane person will seriously suggest that 
BASIC is any match for the likes of C, C++, Java, Lisp, Erlang... I 
mean, come *on*! It has a global namespace, it has 3 data types (and you 
can't add new ones), hell it doesn't even support recursion! Exception 
handling? What exception handling?

3. The majority of computer programmers - *especially* the vocal ones 
who join in Holy Wars - write computer programs out of passion, not 
necessity. Writing computer programs is difficult and frustrating. Doing 
it even remotely well _requires_ persistence, determination, motivation 
and, frankly, intelligence. In other words, hobby programmers are 
persistent, determined and highly motivated people. And most of them 
consider themselves highly intelligent (whether they are or not).

4. Suppose you have an IRC conversation that goes like this:

Alex: I think programming language X is the best.
Bob: Actually, I think programming language Y is the best.
Alex: I don't think that's true.

Determining which programming language is superior requires real insight 
and intelligence. And if you fail to see why one language is better than 
another, basically that means that YOU'RE STUPID.

If I sit here and tell you why my favourite programming language is 
better than the one you use and you still don't agree with me, that 
basically means that you're too stupid to understand why I'm right. And 
if somebody insists that their programming language is better than mine, 
basically they're suggesting that I'm too stupid to see why.

People don't like being stupid. But *especially* people who consider 
themselves experts on something, and who often spend every spare minute 
soaking up more information and more knowledge for no reason other than 
passion and intellectual curiosity... *Those* people do not like being 
called stupid at all!

And that, I think, is what all these Holy Wars boil down to. "X is 
better than Y, and if you can't see that, you're stupid!" "What?! Y is 
*clearly* better than X! How dare you call me stupid! YOU'RE STUPID!" 
"NO, YOU ARE!!!1!1!!eleven!" General chaos ensues.

Truth is, if you compare almost any pair of complex objects, usually one 
is so clearly superior to the other that there's nothing to argue about, 
or else both have advantages and disadvantages, and which one is "best" 
depends on what you're trying to do with it. And yet people still want 
one to be the "winner". People still want to "win" arguments.

Now obviously there are people out there who just like arguing with 
people. But even sane, apparently rational computer geeks somehow end up 
having shouting matches about whether the Java VM is better than the 
Microsoft CLR (or something equally moot). Somehow, it's hard to resist.

Take me, for example. I know that Haskell is not the best solution for 
all situations. For example, while it's a fantastic language, the 
library support is patchy at best, it's not brilliantly integrated with 
Windows, and debugging leaves *a lot* to be desired. But you know what? 
I don't *care*. I *want* Haskell to be "the best programming language", 
or to eventually *become* "the best", because I *like* it. It's so 
*perfect* for the kind of code I write. It makes everything I want to do 
so *easy*. It's the coolest thing I've ever seen in my life - and it 
makes me angry that everybody else thinks I'm a moron for saying so.

It stops being a rational argument and degenerates into "I must prove 
that Haskell is the best, no matter what it takes". And that's when 
things start to get crazy.

Now personally, I now try to avoid claiming that Haskell is the best at 
everything. I know it isn't. I point out what's bad about Haskell as 
well as what's good. Unfortunately, it doesn't matter what I say. Nobody 
will ever be interested in Haskell, and that makes me very sad. It makes 
me feel like "I lost". Which is silly - *I* still have Haskell, *I* can 
still use it in whatever way I want. But it's upsetting to me that I 
lost the argument, and nobody else sees how awesome Haskell is. And so 
unless I'm careful, there's still the danger that one day I will find 
myself screaming "HASKELL RULES, YOU FOOLS!" again.

This, I hypothesize, is why Holy Wars are fought. About all kinds of 
things, from which wavelet has the best statistical properties to which 
corporate software house is the least evil. It all comes down to 
everybody wanting to think they're smarter than everybody else.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.