Steven Schveighoffer wrote:
Think of it another way. Remember zip files? What a great name, and
yes, it seemed silly at first, but zip entered the lexicon and D has a
zip module and it never occurs to anyone it might be better named
std.compressedArchive. Phil Katz renamed arc files "zip" files, called
his compressor "pkzip" and blew away arc so badly that most people are
unaware it even existed.
I think the catchy, silly "zip" name was a significant factor in
getting people to notice his program. In contrast, the superior
"lharc" with its "lzh" files never caught on.
These are completely unsubstantiated statements focused on a very narrow
set of variables. It's like all those studies that say X causes cancer
because look most people who use X have cancer. Well, yeah, but they
are all 40-70 yr old people, who freaking knows how many factors went
into them getting cancer!!! And it proves itself again and again when
the next year, they say, 'well that study was flawed, we now *know* that
it was really Y'.
It's an example of a phenomenon I've seen over and over. How about the names
Google and Yahoo? Boy did I think they were stupid names for companies and
products. Boy was I wrong. How about the perjorative name "twitter" and the
hopelessly undignified verb "tweet"? I still can't bring myself to say I
"tweeted". Ugh.
I also couldn't believe all the mileage Borland got out of naming minor features
"zoom technology" and "smart linking". So I don't buy that we programmers are
above all that.
"duck" *is* indicative of what the feature does, and so it is a lot better than
"zoom" or "smart" or "yahoo", which I'd have a hard time justifying. I guess
that's why I'm not a marketer!
Besides, duck isn't the compiler name, it's a very very small part of
the library. I think you associate more weight to this than there
actually is.
A lot of people do think duck typing is very important.
Let's concentrate on finding the name that best describes
the function. This might be 'duck', but let's leave marketing
considerations out of it. If duck was a verb that meant 'walk like
a...' then I'd agree it was a fine term.
How about if we can say D's functions are named intuitively instead of
after some colloquial term that describes the function?
And yeah, I agree zip is now a de-facto term, so much so that I think
std.range.Zip should be renamed :) But was it zip that made the tool
famous or the tool that made zip famous?
Let's also not forget the hundreds, probably thousands, of 'cute' names
that didn't save their respective products because the marketing
material sucked.
I think 'zip' got peoples' attention, and then pkzip delivered the goods (better
than arc). lharc, on the other hand, had a ponderous name and failed despite
being significantly better. So yeah, I think the name got pkzip on the map, but
yes, the product also had to deliver. A cute name is not enough to save a crap
product, but it will help with a good one.
If you want people to notice something and give it a chance to be good, having a
boring name (that is also not google-friendly) will never give it a chance.
And besides, as Andrei pointed out, I'll get really tired of saying ad infinitum
"Yes, you can do duck typing in D, just use the adaptTo function." Say that 1000
times, and you too will decide that "duck" is a better name.