[#1338] 1.8.0: possible socket problem with mswin32 builds — Jos Backus <jos@...>
Fyi: I tried the following command with two Ruby distributions on Windows 2003
5 messages
2003/08/05
[#1342] SEGV in GC under Linux — Dave Thomas <dave@...>
A while back I was getting double free()s reported on my MAC box when
5 messages
2003/08/05
[#1364] Broken REXML in Ruby 1.8 — Alexander Bokovoy <a.bokovoy@...>
Greetings!
1 message
2003/08/06
[#1378] differences between Module and Class ? — Mathieu Bouchard <matju@...>
25 messages
2003/08/11
[#1387] Re: differences between Module and Class ?
— matz@... (Yukihiro Matsumoto)
2003/08/12
Hi,
[#1442] Re: differences between Module and Class ?
— Mathieu Bouchard <matju@...>
2003/08/21
[#1452] Re: differences between Module and Class ?
— matz@... (Yukihiro Matsumoto)
2003/08/22
Hi,
[#1469] Re: differences between Module and Class ?
— Mathieu Bouchard <matju@...>
2003/08/23
[#1470] Re: differences between Module and Class ?
— matz@... (Yukihiro Matsumoto)
2003/08/24
Hi,
[#1472] Re: differences between Module and Class ?
— Mathieu Bouchard <matju@...>
2003/08/24
[#1444] Re: differences between Module and Class ?
— ts <decoux@...>
2003/08/21
>>>>> "M" == Mathieu Bouchard <matju@sympatico.ca> writes:
[#1381] proc/block with return — Mathieu Bouchard <matju@...>
9 messages
2003/08/11
[#1394] Std lib and updating PickAxe (was Re: proc/block with return) — "Gavin Sinclair" <gsinclair@...>
> [Dave wrote:]
5 messages
2003/08/13
[#1400] subclassing Structs — Eugene Scripnik <Eugene.Scripnik@...>
I'm trying to create class which behaves as struct (almost) and has some
5 messages
2003/08/13
[#1406] _id2ref bug? — Ryan Pavlik <rpav@...>
While debugging some caching code, I've come across a segfault related
22 messages
2003/08/14
[#1407] Re: _id2ref bug?
— matz@... (Yukihiro Matsumoto)
2003/08/14
Hi,
[#1413] Re: _id2ref bug? (REPRODUCED, short)
— Ryan Pavlik <rpav@...>
2003/08/14
On Fri, 15 Aug 2003 01:57:18 +0900
[#1415] Re: _id2ref bug? (REPRODUCED, short)
— matz@... (Yukihiro Matsumoto)
2003/08/15
Hi,
[#1416] Re: _id2ref bug? (another break)
— Ryan Pavlik <rpav@...>
2003/08/15
On Fri, 15 Aug 2003 09:21:39 +0900
[#1417] Re: _id2ref bug? (another break)
— nobu.nokada@...
2003/08/15
Hi,
[#1418] Re: _id2ref bug? (another break)
— Ryan Pavlik <rpav@...>
2003/08/15
On Fri, 15 Aug 2003 12:35:32 +0900
[#1424] Re: _id2ref bug? (another break)
— ts <decoux@...>
2003/08/15
>>>>> "n" == nobu nokada <nobu.nokada@softhome.net> writes:
[#1447] ruby-mode.el — Ryan Pavlik <rpav@...>
Attached is a patch for ruby-mode.el that adds font hilighting for
7 messages
2003/08/21
[#1450] Re: [PATCH] ruby-mode.el
— Ryan Pavlik <rpav@...>
2003/08/21
Crud, my mail has been slow, and I just got this back, but I realize I
[#1454] NODE_DSTR and NODE_EVSTR? — Robert Feldt <feldt@...>
How are "dynamic" strings represented internally?
7 messages
2003/08/22
Re: differences between Module and Class ?
From:
"Sean E. Russell" <ser@...>
Date:
2003-08-24 18:16:10 UTC
List:
ruby-core #1473
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sunday 24 August 2003 13:05, Mathieu Bouchard wrote: > > inheritance can be "is-a" relation. This combination is indeed a > > restricted multiple inheritance. By this restriction, we won't have > > diamond inheritance problem, > > module A; end > module B; include A; end > module C; include A; end > class D; include C,B; end > > This is a diamond inheritance pattern. I know that this is just a semantic difference, and lord knows I'm not John McCarthy, but I've always found the separation and difference between mixins and inheritance in Ruby to be intuitive and clear. When I think of Ruby mixins, I think of adding methods to an object (or class) - -- a function-oriented procedure. In Ruby, commonly, these mixins aren't object oriented -- that is, they don't generally operate on the object they're attached to. They don't affect the state of an object, and they don't make any assumptions about the object context.(1). For example, the Enumerable module is a namespace for methods which assume nothing more than the presence of some #each method (and, optionally #min and #max) also being defined in the same name space at execution time. Inheritance is, in my mind, a different beast altogether. OO inheritance implies state and context. Inherited methods are *expected* to modify the state of the object, or report on the state of the object based on some intimate knowledge of the object. If they don't, good OO design suggests that they probably shouldn't be object methods in the first place. So, IMO, there is a very clear difference between multiple inheritance and multiple mixins from modules. Matz originally characterized inheritance as "is-a" and mixins as "has-a", although he retracted that. Both of these are noun-oriented designations. I'd say a more useful way of looking at Ruby mixins is "can". Mixins are verbs; inheritance is nouns. I'm sorry if I'm not being clear, and I'm not particularly interested in getting involved in an argument over what "is-a" or "has-a" means, or whether it applies to method signatures. I'm merely saying that Ruby's distinction between mixins and inheritance makes a lot of sense to me. (1) Ruby mixins *can* modify the state of an object, but most of the core Ruby modules don't. Therefore, I speak not of what Ruby "can do", but what Ruby "does", in a "best practices" sort of way. - -- ### SER ### Deutsch|Esperanto|Francaise|Linux|XML|Java|Ruby|Aikido|Dirigibles ### http://www.germane-software.com/~ser jabber.com:ser ICQ:83578737 ### GPG: http://www.germane-software.com/~ser/Security/ser_public.gpg -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE/SQDJP0KxygnleI8RAvt/AJ9TOaiO2CaFy2LczJ0YrUUTQ7yipACcCIO2 xjmxmBg47g3UijeRqRVhcAc= =O7tk -----END PGP SIGNATURE-----