duck!

Steven Schveighoffer schveiguy at yahoo.com
Sat Oct 16 14:00:00 PDT 2010


On Sat, 16 Oct 2010 16:26:15 -0400, Walter Bright  
<newshound2 at digitalmars.com> wrote:

> 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.

This is called cherry picking.  What about microsoft, IBM, apple,  
gillette, DOS, etc.  All these names aren't "wacky", yet they are still  
successful.  How do you explain that?  You might lump GoDaddy.com as one  
of those 'wacky' names that made it, but that has nothing to do with it.

Google and Yahoo succeeded because their product was good.  D will succeed  
because it does duck typing, not because the function that does duck  
typing is called 'duck'.  Now, if D was all about duck typing, and you  
called it 'ducky', then I think that the name might be appropriate, and  
actually help with marketing.  But naming the function that does duck  
typing 'duck' doesn't seem to me like it makes or breaks D at all.  I want  
to be clear that duck is not my first choice, but it's certainly a name  
that makes sense.  I'm just saying that marketability of D does not change  
no matter what appropriate term you choose.

> 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.

But were there functions named zoomTechnology() and smartLink()?  Were  
their tools named zoom or smartl or something?  Is that what pushed them  
over the edge, or was it the bullet on the packaging that said:

* Includes zoom technology!

>
> "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!

Yes, duck is a valid option.  And the fact that duck typing is what it  
does is a very good reason to use it.  I just don't see 'marketing draw'  
as being a factor whatsoever.  It's useless noise.

>> 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.

And D already does duck typing.  Templates do duck typing.  'adaptTo' does  
it too, and it's cool, but it's not *that* important (no offense, Kenji).

>> 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.

But people don't search google for "duck typing programming languages" and  
pick the language they're going to use from this list!  I think you are  
really going cuckoo over this feature like it's the best thing since  
ranges, and I don't see it being that.  Not only that, but *D DOES DUCK  
TYPING*, just use a template.

> 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.

Invariant vs. immutable is not the same as adaptTo vs. duck.  Invariant  
already had a meaning in D1, and when choosing a new name, it was logical  
to use immutable.  Is immutable an 'exciting marketing term'?  No, it's as  
boring as they come.  But it's definitely the best term for the job.   
Let's focus on choosing the best term for what 'adaptTo' does, and when we  
market that D does duck typing in an article or a list of features (that  
shows up on google), we can include all the features of D that do duck  
typing.

-Steve


More information about the Digitalmars-d mailing list