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: A couple of questions about goops method parameters Date: Sat, 06 Sep 2014 01:14:06 +0300 Message-ID: <87bnqtiukx.fsf@elektro.pacujo.net> References: <1409905923.9245.5.camel@Renee-desktop.suse> <871trpridm.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> <871trpkdbf.fsf@elektro.pacujo.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1409955277 29439 80.91.229.3 (5 Sep 2014 22:14:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 5 Sep 2014 22:14:37 +0000 (UTC) Cc: Carlos Pita , David Thompson , "guile-user@gnu.org" To: Panicz Maciej Godek Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sat Sep 06 00:14:28 2014 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 1XQ1lz-0001FI-Lc for guile-user@m.gmane.org; Sat, 06 Sep 2014 00:14:27 +0200 Original-Received: from localhost ([::1]:60418 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQ1lz-0000sS-6q for guile-user@m.gmane.org; Fri, 05 Sep 2014 18:14:27 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQ1lm-0000rM-6r for guile-user@gnu.org; Fri, 05 Sep 2014 18:14:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQ1lh-00020k-7p for guile-user@gnu.org; Fri, 05 Sep 2014 18:14:14 -0400 Original-Received: from pacujo.net ([83.150.83.132]:38175) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQ1lh-00020g-04 for guile-user@gnu.org; Fri, 05 Sep 2014 18:14:09 -0400 Original-Received: from elektro.pacujo.net (192.168.1.200) by elektro.pacujo.net; Sat, 6 Sep 2014 01:14:06 +0300 Original-Received: by elektro.pacujo.net (sSMTP sendmail emulation); Sat, 6 Sep 2014 01:14:06 +0300 In-Reply-To: (Panicz Maciej Godek's message of "Fri, 5 Sep 2014 23:08:43 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 83.150.83.132 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:11472 Archived-At: Panicz Maciej Godek : > 2014-09-05 22:44 GMT+02:00 Marko Rauhamaa : >> However, objects, in my opinion, are the antithesis of tuples. >> Objects are the focal points of methods. Whether the black box >> contains data and in what form is none of the rest of the world's >> concern. > > Apparently our views on the essence of OOP differ. I perceive an > object as an aggregation of properties, and a set of methods I would > call an interface. Perhaps to you doing OOP is about defining > interfaces, and to me it's more about aggregating properties. I > wouldn't say that anyone of us is more right than the other. There's no point arguing about terminology. All I want to say is that "my" OOP is desirable to me, "your" OOP is something I want to steer away from. I don't need interfaces as first-class entities in an object system. Ducktyping involves less clutter and is more generic. >> * [GOOPS] introduces a very strong, almost Linnaean, type system to >> Scheme, where it seems out of place. I see no principal reason for >> such classification. I don't declare my numbers in Scheme; why >> should I declare my object types? > > I don't think I understand. There is no strong type system, and > there's no need to declare object types. The types are mainly for > convinience -- to allow you to implement the same interfaces for > different objects. The types are a great inconvenience, syntactically and conceptually. Syntactically, your GOOPS method definitions make your Scheme code look like Pascal with the class names sprinkled among the parameters. Conceptually, the classes force me to put objects into buckets that don't correspond to my thought processes. Even Java offers anonymous classes for the purpose. Marko