[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5721] Re: Array#insert

From: Mark Slagell <ms@...>
Date: 2000-10-20 21:54:35 UTC
List: ruby-talk #5721
Aleksi Niemelwrote:
> 
> . . .
> as "insert before" or "insert after".  Think of it
> > as "insert at".
> 
> Very good discussion. Guy's right about better semantics, Mark about real
> meaning of semantics, and Jim about proposing the way to understand how
> negative indexes work.

Being entirely satisfied with Jim's "insert at" explanation, I withdraw
my objection. :-)

> ...
>
> > BTW, shouldn't the method be named "insert!" ?
> 
> I think I'm following matz ideas when I named it to be "insert" instead of
> "insert!". And the reasoning is that currently the methods are not named
> with exclamation mark (!) if
> 
> 1) the name clearly indicates the receiving object is going to change and/or
> 2) there's no corresponding method with implicit dup.
> ...

This is in fact one of the first things that startled me when learning
about ruby. I'll give three reasons for wishing we were consistent about
!/? naming:

A. Least Surprise is not well served by the inconsistency, IMO. I'd love
to be able to reliably know, when seeing the name of an unfamilar
method, whether it is can be trusted not to change the receiver.

B. Getting used to having garbage collection has made me more
comfortable with programming in a functional style, as it's easier to
reason about the behavior of non-destructive methods. So it is a nice
convenience for me when destructive methods routinely turn out to have
non-destructive equivalents. I guess what I'm saying is that "clearly
indicates" is anything but clear much of the time, and is open to honest
disagreement based on differing styles; for instance, you might not see
a use for a non-destructive array insert whereas to me it might sound
just as natural and sensible as non-destructive string concatenation.

C. (related to B, but this applies even if you don't consistently prefer
functional style) Naming a destructive method without the ! ties our
hands - what can we do if we later change our mind later about the need
for a non-destructive equivalent?

 -- Mark

In This Thread