[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my =

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:8926] Re: No :<, :>, etc. methods for Array

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-01-09 14:18:04 UTC
List: ruby-talk #8926
Aleksi Niemel<aleksi.niemela@cinnober.com> wrote:
>
>Hello,
>
>At least David Alan Black and Ben Tilly have been conversating, the 
>latter's
>last comment being:
>
> > Say modules called ArrayInterface, HashInterface and
> > StringInterface.
> >
> > If you want to use it you would have to write []= and so
> > on, but the so-on to get the whole interface would be much
> > smaller than it would be now.
>
>Ok. I've been following this thread with great interest, but I've been
>somewhat lost. That's mostly due to my quite limited knowledge of Perl 
>Tying
>concept. I always thought it's quite simple, but it's referred everywhere 
>as
>pure magic. Now I guess I got on the map again.

It is a simple magic. :-)

Imagine a language where you are constantly telling the
language everywhere that you have a duck because it is
walking like a duck and talking like a duck.  This is
built into everything that you do.  Then suddenly you
find out that it isn't really a duck after all.

What happened?

Magic!

(They even call it that in the source-code.)

In Ruby there is no surprise.  All that walking and talking
like a duck means is that you have the methods that a duck
does.  In Perl there is great surprise because you have
just violated (in a useful way, but still) a basic pattern of
how the language works.

>So if I understand correctly we would like to have (sorry being wordy, I
>just wanted to be clear):
[...]
>And then our current hash and all user defined hashes could be done by
>saying:
>
>   class HashAlike
>     include StandardHashInstanceMethodInterface
>     # and by defining 6 or 7 methods the interface *requires*
>
>     include Enumerable
>     # and by redefining methods for speed if needed
>     # like include? for Hash
>
>     include StandardHashConvenienceInterface
>     # and by redefining methods for speed if needed
>   end
>
>Ben, is this explicit separation and grouping of methods to interfaces
>(which might be expressed by default in terms of other interfaces) what you
>have in mind?

Yes.

>If so, then we might proceed to define interfaces for Strings and Arrays,
>and what else needed.
>
>If I understand the underlying concept correctly, by imposing some more
>structure to current classes, and keeping eye on backwards compatibility, 
>we
>ease up documentation of current behaviour and implementation of user made
>FooAlike -datastructures. If we get Perl's TIE behaviour as a bonus, this 
>is
>surely the way to go.

You understand exactly.  Getting Perl's tie behaviour is
not really a bonus.  It is good advertising which takes
advantage of the fact that few Perl programmers actually
understand anything about tie other than the fact that it
looks like magic and is a cool feature.

>This discussion reminds me of the recent String as IO (or the otherway
>round) thread. IIRC, the end result was that the APIs should be defined 
>more
>clearly and then masquerading classes to act like other classes would be
>trivial. Aren't we approach that solution?

Exactly.

However Strings in particular may be a special case.  We
might want to resolve whatever to a string for some things.
(Specifically when used as hash keys and when someone tries
to match against them.)

One note.  A good deal of Ruby's current library is
designed after how Perl works.  For scripting I think that
this is an excellent choice.  So even though it should be
easy to imitate a built-in class, IMO the built-in classes
should continue to have rich interfaces.

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next