Newsgroups: comp.lang.perl,comp.lang.tcl,comp.lang.python,comp.lang.scheme,comp.lang.misc,co
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!EU.net!julienas!news.fnet.fr!ilog!news
From: davis@ilog.fr (Harley Davis)
Subject: Re: "magic"  instance variables (was: Comparing syntaxes (was: What
In-Reply-To: smcl@sytex.com's message of Tue, 8 Nov 1994 12:52:20 GMT
Message-ID: <DAVIS.94Nov8165148@passy.ilog.fr>
Lines: 52
Sender: news@ilog.fr
Nntp-Posting-Host: passy
Organization: Ilog SA, Gentilly, France
References: <Pine.A32.3.90.941108012326.18486B-100000@elvis.med.Virginia.EDU>
	<XX3gVc1w165w@sytex.com>
Date: 08 Nov 1994 15:51:46 GMT
Xref: glinda.oz.cs.cmu.edu comp.lang.perl:38321 comp.lang.tcl:21545 comp.lang.python:2492 comp.lang.scheme:11056 comp.lang.misc:18910


In article <XX3gVc1w165w@sytex.com> smcl@sytex.com (Scott McLoughlin) writes:

   "Steven D. Majewski" <sdm7g@Virginia.EDU> writes:

   > This appears to be a OO vs a procedural oriented POV difference.
   > From the OO POV, there is nothing at all wrong with abstracting
   > OUT the presence or absence of procedure calls to implement
   > side effects. Assignment is just a change of state. If a prodecure
   > call is required to implement that change of state, then that is
   > just an implementation detail. 
   > 

   Howdy,
	   Hmmmm.... For lack of a better phrase, this is a 
   "bunch of hooey", IMHO.  There is no "abstracting out the
   presence or absence of procedure calls" -- they are
   either there or they aren't there.
	   What you're talking about is stricly a syntactical
   perversion that _obscures_ the semantics of variable update.
	   It reminds me of dummies who think that anything
   in a standard library is "built in" and therefore faster than
   anything they could write themselves; all you get is a sort
   of "feel good" quotient since "g := foo" _looks_ faster than
   "(g foo)" or "g(foo)".
	   And of course, you can't _tell_ what the hell is
   going on anymore.  What looks like constant time access to
   a chunk of memory ends up being some ridiculous file/io
   procedure, or side effects causing bugs can't easily be
   chased down, etc. etc.

Tell me, does your Lisp implement generic functions?  What do you
think of them?  Should they have a different calling syntax?  What is
your stand on generic arithmetic?  What about operator overloading in
C++?

The issue of abstraction vs performance is pretty complicated, and I
don't think it's so easy to call people who have different views
full of "hooey".  As Jeff Dalton is fond of saying, this is one of the
issues where reasonable people can reasonably disagree.

-- Harley Davis
-- 

------------------------------------------------------------------------------
motto: Use an integrated object-oriented dynamic language today.
       Write to info@ilog.com and ask about Ilog Talk.
------------------------------------------------------------------------------
Harley Davis                            net: davis@ilog.fr
ILOG S.A.                               tel: +33 1 46 63 66 66
2 Avenue Gallini, BP 85                fax: +33 1 46 63 15 82
94253 Gentilly Cedex, France            url: http://www.ilog.fr/
