From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Panicz Maciej Godek Newsgroups: gmane.lisp.guile.user Subject: Re: A couple of questions about goops method parameters Date: Sat, 6 Sep 2014 10:53:58 +0200 Message-ID: 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> <87bnqtiukx.fsf@elektro.pacujo.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1409993656 29955 80.91.229.3 (6 Sep 2014 08:54:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 6 Sep 2014 08:54:16 +0000 (UTC) Cc: Carlos Pita , David Thompson , "guile-user@gnu.org" To: Marko Rauhamaa Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sat Sep 06 10:54:10 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 1XQBl4-0000NC-7g for guile-user@m.gmane.org; Sat, 06 Sep 2014 10:54:10 +0200 Original-Received: from localhost ([::1]:33832 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQBl3-0006rN-V3 for guile-user@m.gmane.org; Sat, 06 Sep 2014 04:54:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45409) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQBku-0006r6-Rv for guile-user@gnu.org; Sat, 06 Sep 2014 04:54:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQBkt-0000oQ-Lw for guile-user@gnu.org; Sat, 06 Sep 2014 04:54:00 -0400 Original-Received: from mail-vc0-x22c.google.com ([2607:f8b0:400c:c03::22c]:49124) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQBkt-0000oK-Hc for guile-user@gnu.org; Sat, 06 Sep 2014 04:53:59 -0400 Original-Received: by mail-vc0-f172.google.com with SMTP id hy10so49952vcb.17 for ; Sat, 06 Sep 2014 01:53:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=OlXNJGGKHjc8X9BZ0BsoPOEGWDJdWqA7y8Kt119gLrU=; b=vDzgWJJbzhy2YjaHfa1m/Wp+e4De/GXRyedASMb2GIqJc0TQ9uNh2z+YaBfUYJ05u2 ZbTTvBjAzk+sdrHIR1UCwi6UR3s7mf/EMGth726rC3/KSnkCxP07f/FmgcHH3zGzNyX4 58vTx7U0PlIdO8T+GaVsTWxhcnFXkYEer7o+8634mVPnuFifyQe7ZPl3VIHLSHJTW3E9 vouy8VYOKbX1nIU/4CXKMG6MbrPJO93OVIIAnlPkracWWCSB5YhZqjue6HzEMDkMGolb lyp9n6hcQ2gBPMugzXtxCO8ATUQx02d+634qYTvNagWPVq9xU5e+3Iop6+rz0f2WglBX T1mA== X-Received: by 10.52.97.233 with SMTP id ed9mr12445036vdb.16.1409993638889; Sat, 06 Sep 2014 01:53:58 -0700 (PDT) Original-Received: by 10.221.66.79 with HTTP; Sat, 6 Sep 2014 01:53:58 -0700 (PDT) In-Reply-To: <87bnqtiukx.fsf@elektro.pacujo.net> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400c:c03::22c 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:11474 Archived-At: 2014-09-06 0:14 GMT+02:00 Marko Rauhamaa : >>> * [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 de, it plainly extends the means of expression (and I think there's no problem in providing one's own syntax with a macro)finitions 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. Now I don't understand what you're saying to even bigger extent. GOOPS does not offer a type system, but a multiple method dispatch system. It doesn't take away any freedom of using GOOPS objects with regular Scheme functions, but allows to use one interface for different implementations. Whether one likes the syntax or not, it plainly extends the means of expression (and I think there's no problem in providing one's own syntax with a macro) However, I'd rather say that the lack of any type system in Guile is an inconvinience, because static type checking allows to avoid a huge class of software errors, and a good type system (like the one in Haskell) actually enhances language's expressiveness. It's an issue that's been talked over so many times, that it's already present in comic strips: http://ro-che.info/ccc/17