From: Mathieu Bouchard Date: 2005-04-24T12:36:02+09:00 Subject: Re: [ANN] Article: Seeing Metaclasses Clearly ---1077017559-813370389-1114313742=:17345 Content-Type: MULTIPART/MIXED; BOUNDARY="-1077017559-813370389-1114313742=:17345" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1077017559-813370389-1114313742=:17345 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Thu, 21 Apr 2005, ts wrote: > * a class is a module which can use inheritance Module#include qualifies as inheritance, no matter how one may try to hide= =20 it under a carpet. A dog with a leg missing is still a dog. It doesn't=20 matter how much the Java religion asserts that multiple inheritance is=20 bad. We merely have to assert that multiple inheritance is good, instead=20 of playing word games like what I've consistently heard in the Ruby=20 community in my five years of hanging around. The attempt to attract Java= =20 programmers to Ruby shouldn't have been done by compromising the=20 simplicity of Ruby; instead it should have been done by cult=20 deprogramming. The defining qualities of a Ruby class may be that: 1. a Ruby class is a direct-subclass-of a Ruby class using the "<"=20 notation (except the Object class). 2. the Object class just happens to be the place where .new() is defined;= =20 and this is no matter how many classes use undef_method(:new) to forbid=20 instantiation. > - "birth" class which can create instance > - "singleton" class which is always associated with only one object > and no, a "singleton" class is not a "birth" class. Btw, are TrueClass, FalseClass and NilClass considered "birth" or=20 "singleton", and then why would they be like that? ,-o---------o---------o---------o-. ,----. | | The Diagram is the Program (TM) | | ,-o----------------------------o-. `-o-----------------------------o-' | | Mathieu Bouchard (Montr=E9al QC)= | | |---' | http://artengine.ca/matju | | | `-o------------------------------' ---1077017559-813370389-1114313742=:17345-- ---1077017559-813370389-1114313742=:17345--