From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marko Rauhamaa Newsgroups: gmane.lisp.guile.user Subject: Re: Message Passing with GOOPS Date: Fri, 26 Jun 2015 15:21:48 +0300 Message-ID: <87r3oywtgj.fsf@elektro.pacujo.net> References: <558B1158.4020607@o2online.de> <20150626081827.GA12072@seid-online.de> <87zj3mx1km.fsf@elektro.pacujo.net> <877fqqracp.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1435321334 27019 80.91.229.3 (26 Jun 2015 12:22:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 26 Jun 2015 12:22:14 +0000 (UTC) Cc: guile-user@gnu.org To: "Pascal J. Bourguignon" Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Jun 26 14:22:09 2015 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Z8Sdx-0002Hx-2j for guile-user@m.gmane.org; Fri, 26 Jun 2015 14:22:05 +0200 Original-Received: from localhost ([::1]:59798 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8Sdw-0002ah-HQ for guile-user@m.gmane.org; Fri, 26 Jun 2015 08:22:04 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36595) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8Sdm-0002Zg-0p for guile-user@gnu.org; Fri, 26 Jun 2015 08:21:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z8Sdk-0001gr-Dw for guile-user@gnu.org; Fri, 26 Jun 2015 08:21:53 -0400 Original-Received: from [2001:1bc8:1a0:5384:7a2b:cbff:fe9f:e508] (port=45405 helo=pacujo.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8Sdk-0001gN-68 for guile-user@gnu.org; Fri, 26 Jun 2015 08:21:52 -0400 Original-Received: from elektro.pacujo.net (192.168.1.200) by elektro.pacujo.net; Fri, 26 Jun 2015 15:21:48 +0300 Original-Received: by elektro.pacujo.net (sSMTP sendmail emulation); Fri, 26 Jun 2015 15:21:48 +0300 In-Reply-To: <877fqqracp.fsf@kuiper.lan.informatimago.com> (Pascal J. Bourguignon's message of "Fri, 26 Jun 2015 13:13:26 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:1bc8:1a0:5384:7a2b:cbff:fe9f:e508 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:11878 Archived-At: "Pascal J. Bourguignon" : > Marko Rauhamaa writes: > >> Similarly, in my mind, objects don't have slots, they interact. > > You are right. Slots are an implementation detail. Notice that you > have them in all (common) OO systems. But the difference with CLOS, > with the MOP, (I don't know if GOOPS implements the MOP, Meta Object > Protocol), slots are reified as first class objects, and can be added > or removed from a class (therefore, to all its instances). > > This allows you to forget slots as features of classes, but instead, > as an implementation mechanism for certain kinds of relationships. So > you can define a macro define-associations and use it to describe how > your objects interrelate and interact with others, and this macro will > add slots as needed to implement those associations: > > https://github.com/informatimago/abnotation/blob/master/src/core/model.lisp > https://github.com/informatimago/lisp/blob/master/clext/association.lisp#L575 GOOPS seems to have much of that machinery. I don't know if I find it all that useful. I'm fine with the notion that the object itself decides what methods it offers. Amending classes or objects from the outside or after the fact might come in handy but is not high on my shopping list. However, GOOPS doesn't seem to allow me to control the object construction as simply as the "lesser" OO systems do. What's more, GOOPS programs don't look "Schemey" any more. That's why I have turned away from GOOPS and returned to the basics: The simpleton.scm object system I posted the other day adds only a thin sugar coating on this approach. Marko