From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.lisp.guile.user Subject: Re: Message Passing with GOOPS Date: Fri, 26 Jun 2015 13:13:26 +0200 Organization: Informatimago Message-ID: <877fqqracp.fsf@kuiper.lan.informatimago.com> References: <558B1158.4020607@o2online.de> <20150626081827.GA12072@seid-online.de> <87zj3mx1km.fsf@elektro.pacujo.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1435317255 24678 80.91.229.3 (26 Jun 2015 11:14:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 26 Jun 2015 11:14:15 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Jun 26 13:14:08 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 1Z8RaC-0008Q8-IL for guile-user@m.gmane.org; Fri, 26 Jun 2015 13:14:08 +0200 Original-Received: from localhost ([::1]:59468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8RaB-0001tC-JP for guile-user@m.gmane.org; Fri, 26 Jun 2015 07:14:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45827) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8Ra1-0001t1-3r for guile-user@gnu.org; Fri, 26 Jun 2015 07:13:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z8RZx-0002SG-U8 for guile-user@gnu.org; Fri, 26 Jun 2015 07:13:57 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:35507) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8RZx-0002S8-Mt for guile-user@gnu.org; Fri, 26 Jun 2015 07:13:53 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Z8RZr-0008Ag-RR for guile-user@gnu.org; Fri, 26 Jun 2015 13:13:47 +0200 Original-Received: from amontsouris-654-1-26-238.w90-2.abo.wanadoo.fr ([90.2.217.238]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 26 Jun 2015 13:13:47 +0200 Original-Received: from pjb by amontsouris-654-1-26-238.w90-2.abo.wanadoo.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 26 Jun 2015 13:13:47 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 33 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: amontsouris-654-1-26-238.w90-2.abo.wanadoo.fr Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:MzJiNWQ4OWQ0NDg5NDVjMzJhMjhiZDUwMTU4MzA3ZGRjNTRiMjZjNQ== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:11877 Archived-At: Marko Rauhamaa writes: > GOOPS also, surprisingly, seems to be decades behind in trying to > present objects as collections of slots. > > I once heard this story. The French king had a royal ball in honor of > the birthday of the French queen. When some lordly guests presented > their gift, a pair of fancy stockings, the king drew a fit, declaring: > "The Queen of France does not have legs!" > > 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 -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk