On Sat, 16 Oct 2010 16:26:15 -0400, Walter Bright
<newshou...@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