From: Dave Thomas

> Hugh Sasse Staff Elec Eng <hgs / dmu.ac.uk> writes:
>
> > But prepend means append to the beginning.  It does not undo an append.
> > "unappend" is getting a bit long...
>
> I'm not sure I should be weighing in here, but I really don't like
> this idea of building all these aliases into the language,
> particularly when the language already provides facilities to allow
> users to add their own aliases.
>
> Rather than having <<, push, append, tackOnTheEnd, enQueue, and all
> the rest, why not have just one (say <<) and then distribute a

Wait! Stop right there!

Don't ruin a Good Idea (tm(tm(...))) by distributing oxymoronic standard
deviations (tm(tm(...))). To new Ruby users, that would be tantamount to
implementing the principle of increasing surprises.

I prefer just one standard set of method names for the same reason I prefer
just one standard set of keywords. (I realize that backwards compatibility
will preclude achieving this until Ruby 3000, but this design goal should
hold for everything new.)

I'm not sure that the set {<<, ...} is the right choice here, but only
because I haven't tried looking up the other corresponding equivalents to
the set {push, pop, shift, unshift} to make sure they all exist.

I have a slight preference for {push, pop, shift, unshift} because they are
more mnemonic, because they are more widely used by Ruby's biggest relative
(i.e. Perl), and because << has another meaning in math and because it has
still another meaning in C. But in any case, I would still prefer even {<<,
...} if the only other choise was multiple aliases.

In rare occasions you may want 1 or 2 aliases to round out what is realized
in retrospect to be some nearly systematic set of methods with respect to
some paradigm or organizing principle, but this consideration doesn't apply
to this case.

The use of multiple aliases makes it more difficult to follow other people's
programs, and it also makes learning Ruby more work and more confusing for
beginners (on the overall average)--which is directly contrary to the way
that good people (tm(tm(...))) want Ruby to be.

Conrad