[#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:
matz@... (Yukihiro Matsumoto)
Date:
2003-08-22 02:33:52 UTC
List:
ruby-core #1452
Hi,
In message "Re: differences between Module and Class ?"
on 03/08/21, Mathieu Bouchard <matju@sympatico.ca> writes:
|Here are the main consequences I've found to that change:
|
|1. Module==Class returns true, and so no longer Module<Class returns true.
| Therefore, Module#include would work with Class arguments
| and class A<x would work for any Module x.
|
|2a. Class.new is moved to Object#new. A Class that does not have Object in
| its ancestor list does not inherit from Object#new and is thus
| uninstantiable.
| OR
|2b. Class.new stays where it is. Former Modules thus become instantiable
| (though not necessarily meaningfully).
(2a) breaks inheritance tree. It's not acceptable.
In summary, your point is the following, right?
|2. Pickaxe says "multiple inheritance [can be] dangerous, as the
|inheritance hierarchy can become ambiguous. [Mixins] provide a controlled
|multiple-inheritance-like capability with none of the drawbacks" (p.23).
|
|Pickaxe was the first printed English book on Ruby, which for me was an
|appropriate successor to ruby-man-1.4, and quite elegantly written.
|However the part I've cited above is, after close examination, a wild,
|bold opinion that I find very difficult to agree with.
I know mix-in is restricted MI as you state. So the question is why
restrict where MI _can_ do it.
* at the point of I designed Ruby, the concept of "mix-in" was not
known widely. So I wanted to advocate "mix-in" by prohibiting
multiple inheritance, and making it a language feature. I still
feel the need for advertise.
* you can (or forced to) distinguish is-a relation to has-a relation
with "single inheritance w/ mix-in". I believe this distinction is
a good thing, which make relations clear. I want to guide people
by preparing set of features.
* I love the model of single rooted class hierarchy, sharing
attributes by modules. But it's much simpler and easier to
understand than class network of multiple inheritance.
For sure, there are some people finding mixing-in more difficult to
understand, specially among those who have no trouble with multiple
inheritance and prefer simpler feature set. It's a matter of trade
off. I had to choose between (a) simpler language w/ multiple
inheritance, (b) language which is bit more complex, but encourages
good usage of class-class relationship. You are seeing the result of
my decision.
matz.