duck!

Walter Bright newshound2 at digitalmars.com
Sat Oct 16 13:26:15 PDT 2010


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.


More information about the Digitalmars-d mailing list