![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Le 04/10/2010 11:03, Invisible a écrit :
> 2. Some programming languages definitely *are* "better" than others, in
> an objective way.
You forgot a significant part: "for a given purpose."
That does not stop some implementation of a language to be really worse
than another language. But the purpose should always be keep in mind.
In fact, the issue is that as soon as it is a bit more complex than a
hammer, the evaluation of a tool (OS, filesystem, editor, language, ...)
is a multidimensional vector. Defining "the best" is projecting all the
dimensions onto a single line (whose directional vector might be any
composition of value in the evaluation base).
And there is no chance that MY line (the True One) will ever be the same
as Your lines (you're just heretics).
What is the biggest number: 2+i or 1-2i ? what about (1+e)^i.pi ?
And what about the roots of polynomial equation on the Quaternions ?
(where the roots of negative square are continuous spheres of the i,j,k
space, which of the value is better on the sphere ?)
The issue is that sorting tools required a single metric, and
multidimensional evaluations have really a lot of dimensions when things
become interesting. When all you have is a hammer, everything looks like
nails and life is simple.
The best OS ? what is the given purpose for choosing the OS... if it
must fit a 16k eprom and have 16 bits pointers, I'm afraid neither
Windows nor Linux would qualify. But that should not stop them to have
good scores for other purposes.
Now, despite the previous lines, I must tell you the truth: the best ice
cream is raspberry. Or pear. No, it's raspberry... on saturday. Pear on
sunday. Excepted in February where it's reversed, or in public... and
there is that blackcurrant too.
--
A good Manager will take you
through the forest, no mater what.
A Leader will take time to climb on a
Tree and say 'This is the wrong forest'.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> 2. Some programming languages definitely *are* "better" than others, in
>> an objective way.
>
> You forgot a significant part: "for a given purpose."
BASIC is worse than just about any modern language for any conceivable
purpose (rather than, as I said, simple programs written by beginners).
However, as you point out, once you get to languages which don't so
obviously suck, the question becomes far more complicated.
> In fact, the issue is that as soon as it is a bit more complex than a
> hammer, the evaluation of a tool (OS, filesystem, editor, language, ...)
> is a multidimensional vector. Defining "the best" is projecting all the
> dimensions onto a single line (whose directional vector might be any
> composition of value in the evaluation base).
>
> And there is no chance that MY line (the True One) will ever be the same
> as Your lines (you're just heretics).
Yeah, that pretty much explains why people don't agree about these
things. Hopefully the rest of my post goes some way to explaining why
people *argue* about these things. (Nobody actually argues about
icecream, after all...)
PS. Thunderbird doesn't think that "icecream" is a word. But then again,
it doesn't think that "thunderbird" is a word either, which as amusing...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible <voi### [at] dev null> wrote:
> PS. Thunderbird doesn't think that "icecream" is a word.
Because it's written "ice cream" or "ice-cream".
http://en.wikipedia.org/wiki/Ice_cream
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible <voi### [at] dev null> wrote:
> Holy Wars. Computer nerds seem to be having them all the time.
> programming languages? And text editors. I don't even need to tell you
> the crazy words that have been spoken about mere text editors.
That's because you're fool enough to try to compare an OS like emacs to a "mere
text editor" like notepad. ;)
> 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".
While I agree that most think that way based solely on personal taste, some do
take a tool as favorite based on more rational arguments and personal
experience. That is, having thoroughly played around with a lot of tools, are
able to reason on objective terms why one of them is their favorite: this
offers more, got a nice interface etc.
I've seen people throwing at me that I hate Windows because I'm a Linux guy, but
what they don't grasp is that I'm a Linux guy precisely because I've
experimented with both tools and Linux scored better with me. I was a
DOS/Windows guys far before Linux showed up, but if it didn't, I'd probably dump
Microsoft in favor of BeOS or something...
> whatever tool they prefer, and if there isn't an option, why argue about
> it? It's just a tool.
Besides for the fun of it (yes, trolling can be fun), it also shows a big deal
of fear. I mean, someguy devotes his whole professional life specializing in a
single tool and then either the market is changing in favor of another tool or
all the new guys begin showting newToolX is much better, how do you think the
old fart should react?
> 1. A programming language is a tool. You use it to write programs with.
you fool! According to the Sapir-Whorf hypothesis, languages influence thought.
Mediocre language, mediocre thought. Poetical language, poetical thought. My
language is not just better than yours, it's also much more aesthetically
pleasing! bwahahahaha
> 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?
That's 80's BASIC. You do know some of the guys behind Haskell were behind
Basic.Net? see:
http://research.microsoft.com/~emeijer/Papers/ICFP06.pdf
> 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.
It's difficult and frustrating because you're using the wrong language (for the
job). And with the wrong text editor!! bwahahahaha
> 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.
or perhaps just ignorant of the alternatives...
> 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.
I don't. I only do it for the fun... :)
> 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
Why should it be integrated with Windows? That's the job of a compatibility
library.
> 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.
Well, I see how awesome Haskell is. Only problem is that LISP IS SO MUCH MORE
AWESOME AND TOTALLY PWNS IT, YOU FOOL!
bwahahahahah
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 04/10/2010 02:02 PM, nemesis wrote:
> That's because you're fool enough to try to compare an OS like emacs to a "mere
> text editor" like notepad. ;)
Emacs isn't a text editor. It's an elisp interpreter that just happens
to come with a text editor application pre-installed. ;-)
>> 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".
>
> While I agree that most think that way based solely on personal taste, some do
> take a tool as favorite based on more rational arguments and personal
> experience.
True. But many people seem to conflate "I like this one the best" with
"this one *is* the best".
>> whatever tool they prefer, and if there isn't an option, why argue about
>> it? It's just a tool.
>
> Besides for the fun of it (yes, trolling can be fun), it also shows a big deal
> of fear. I mean, someguy devotes his whole professional life specializing in a
> single tool and then either the market is changing in favor of another tool or
> all the new guys begin showting newToolX is much better, how do you think the
> old fart should react?
True. It's not like they invent new kinds of spanner...
>> 1. A programming language is a tool. You use it to write programs with.
>
> you fool! According to the Sapir-Whorf hypothesis, languages influence thought.
Heh. Well it's true enough that using an entirely different programming
paradigm changes the whole way you approach programming.
>> For example, take BASIC. The 1980s was a decade of 8-bit home computers
>> running BASIC.
>
> That's 80's BASIC.
Sure. And what I'm saying is "80s BASIC sucks so much that it's clearly
inferior - and nobody is arguing about this". The people who argue are
usually arguing about languages of approximately equivalent power -
otherwise there wouldn't be much of an argument.
>> 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.
>
> It's difficult and frustrating because you're using the wrong language.
Show me a language that makes every task easy and I'll show you a
language which can only do one task. ;-)
>> 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.
>
> or perhaps just ignorant of the alternatives...
Let me rephrase: If I explain to you why X is better and you still
insist that it isn't, *then* you are stupid. (Or at least, that's how
the subconscious logic goes.)
>> 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
>
> Why should it be integrated with Windows? That's the job of a compatibility
> library.
Most open source software is available for just about every OS known to
man, and GHC is no exception. (Apparently some people run it on
hand-held devices even...) But you can usually "tell" which OS a
particular piece of software originated on.
POV-Ray provides a GUI. Therefore, although there is a Linux version,
you can tell that's not where it started. If a Linux developer had
invented POV-Ray, they would have just written the sources in Emacs and
not bother inventing a GUI.
GHC is heavily Unix-centric. When you install the Windows version of
GHC, it installs a stripped-down version of MinGW. The compiler even
lists the machine as "i386-unknown-mingw", not as, say, "Windows" or
something. It installs and uses GCC has its back-end. There's a bunch of
bugs open against GHC and its libraries, and most of them are because
GHC is doing all of its I/O through a Unix emulation layer. This causes
strange things to happen, like reading a non-existent folder giving you
a "malformed filename" exception, rather than a "file not found" exception.
>> But it's upsetting to me that I
>> lost the argument, and nobody else sees how awesome Haskell is.
>
> Well, I see how awesome Haskell is. Only problem is that LISP IS SO MUCH MORE
> AWESOME AND TOTALLY PWNS IT, YOU FOOL!
I disagree. But then, you knew that. More importantly, there are actual
Lisp enthusiasts who disagree:
http://www.newartisans.com/2009/03/hello-haskell-goodbye-lisp.html
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible <voi### [at] dev null> wrote:
> On 04/10/2010 02:02 PM, nemesis wrote:
>
> > That's because you're fool enough to try to compare an OS like emacs to a "mere
> > text editor" like notepad. ;)
>
> Emacs isn't a text editor. It's an elisp interpreter that just happens
> to come with a text editor application pre-installed. ;-)
and that interpreted text editor alone is so far beyond notepad that calling it
"mere text editor" or comparing to notepad is a joke.
> True. But many people seem to conflate "I like this one the best" with
> "this one *is* the best".
yeah, they should be more realist: one of the very best! :D
> Most open source software is available for just about every OS known to
> man, and GHC is no exception. (Apparently some people run it on
> hand-held devices even...) But you can usually "tell" which OS a
> particular piece of software originated on.
>
> POV-Ray provides a GUI. Therefore, although there is a Linux version,
> you can tell that's not where it started.
what about Gimp? Could pov-ray not have originated from Mac? Do you think only
Windows got windows?
> GHC is heavily Unix-centric. When you install the Windows version of
> GHC, it installs a stripped-down version of MinGW. The compiler even
> lists the machine as "i386-unknown-mingw", not as, say, "Windows" or
> something. It installs and uses GCC as its back-end.
and that's because SPJ works for Microsoft, huh? ;)
> >> But it's upsetting to me that I
> >> lost the argument, and nobody else sees how awesome Haskell is.
> >
> > Well, I see how awesome Haskell is. Only problem is that LISP IS SO MUCH MORE
> > AWESOME AND TOTALLY PWNS IT, YOU FOOL!
>
> I disagree. But then, you knew that. More importantly, there are actual
> Lisp enthusiasts who disagree:
you take me too seriously... :p
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> Emacs isn't a text editor. It's an elisp interpreter that just happens
>> to come with a text editor application pre-installed. ;-)
>
> and that interpreted text editor alone is so far beyond notepad that calling it
> "mere text editor" or comparing to notepad is a joke.
Oh hell, almost *anything* is a better text editor than Notepad. (With
the possible exception of sed.)
>> POV-Ray provides a GUI. Therefore, although there is a Linux version,
>> you can tell that's not where it started.
>
> what about Gimp?
That only has a graphical display because it's a graphics program. ;-)
> Could pov-ray not have originated from Mac?
That would be consistent with my assertion, yes. (I asserted that it
didn't start on Linux.)
> Do you think only Windows got windows?
In general, Unix people seem to have a mindset of "must avoid GUI at any
cost".
>> GHC is heavily Unix-centric. When you install the Windows version of
>> GHC, it installs a stripped-down version of MinGW. The compiler even
>> lists the machine as "i386-unknown-mingw", not as, say, "Windows" or
>> something. It installs and uses GCC as its back-end.
>
> and that's because SPJ works for Microsoft, huh? ;)
Something like that.
> you take me too seriously... :p
Meh. :-P
Interestingly (or not?), I did a few Google searches and found several
people saying how awesome Haskell is, usually for valid reasons, but
they are vastly outnumbered by other people saying that Haskell utterly
sucks, for completely bogus reasons. Mostly of the "I spent 2 hours
trying to learn Haskell and it wasn't like Lisp and therefore it sucks"
variety.
I mean, seriously, there are things you could *genuinely* criticise
Haskell for. But "it was designed by a committee" is a pretty pathetic
one to choose. "Lisp was designed by divine revelation, while Haskell is
a sad modern language with a complex and incoherant design that has no
soul to it." Er, yeah, *right*. Get over yourself.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Mon, 04 Oct 2010 16:44:46 +0100, Invisible wrote:
> Oh hell, almost *anything* is a better text editor than Notepad. (With
> the possible exception of sed.)
sed isn't a text editor - it's a stream editor (hence "sed").
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Mon, 04 Oct 2010 16:44:46 +0100, Invisible wrote:
> In general, Unix people seem to have a mindset of "must avoid GUI at any
> cost".
That trend is finding its way into Windows now as well - was talking with
a guy a couple weeks ago who teaches Windows admin courses, and the new
GUI tools for AD admin apparently are front-ends to Powershell scripts.
Microsoft seems to have come to the conclusion the *nix world did decades
ago - that a CLI tool can be the backend for a GUI if you really really
want one.
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |