🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #4607

Re: Object-Oriented vs. Abstract Data Types

#4607
From: Gordon V. Cormack
Date: Thu, 22 Jan 1987 04:23
47 lines
3006 bytes
> > Object-oriented programming is a religion that is currently in vogue.
> > It adds little to the original class ideas of Simula 67, and the
> > abstract data type ideas of Clu (which was inspired by Simula 67).
> > 
> > Really the only thing that Smalltalk and its imitators
> > add is dynamic procedure binding and dynamic type checking, which I 
> > regard as highly undesirable.
> Dynamic binding yields considerable advantages over Simula,
> including more polymorphic procedures and incremental compilation.
> (Those of you out there who have used Smalltalk and/or Lisp systems
> know what I'm talking about.)  Basically, the only reason *not* to
> have dynamic binding is the belief that "it costs too much".  With
> all the work that has been (successfully) done at making that fast
> (method caches, class guessing, etc.) I hope we have put THAT myth
> to bed.  Method lookup consumes not very much (I remember it as 10%)
> of Smalltalk execution time.  10% is a very small price to pay for
> the benefits of being able to recompile and relink any procedure into
> a running system (~1.5 MB source code) in only a few seconds!

1.  The original point is that O-O adds nothing new.  Certainly 
    dynamic binding and polymorphism weren't new in O-O.

2.  It is highly questionable that dynamic binding and static type
    checking are compatible.  For a turing-machine equivalent language,
    it is undecidable what messages are sent to what objects.

3.  Because of 2., there is a great deal to be gained by static
    binding/ type checking - namely some verification that the 
    program does something reasonable.

4.  Even Lisp programmers, etc., are discovering types - read 
    Milner's paper on ML.

5.  It is true that most strongly typed languages are straightjackets;
    some have great expressive power, flexibility, and polymorphism.

6.  Class hierarchies (as in Simula67) give polymorphism without
    resorting to dynamic anything.

7.  I still have not seen a satisfactory definition of O-O.  I am not
    at all sure that one exists.  I think it *is* essentially the
    Simula programming methodology invented 20 years ago by Dahl
    et al.
-- 
Gordon V. Cormack     CS Dept, University of Waterloo, Canada N2L 3G1
                      gvcormack@mum.waterloo  { .CSNET or .CDN }
                      gvcormack@water         { UUCP or BITNET }
Technical Details
Message-ID: <786@watmum.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!columbia!rutgers!clyde!watmath!watnot!watmum!gvcormack
References: <4000001@nucsrl.UUCP> <3288@milano.UUCP> <147@m10ux.UUCP> <672@unc.unc.UUCP>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!columbia!rutgers!clyde!watmath!watnot!watmum!gvcormack
From: gvcormack@watmum.UUCP (Gordon V. Cormack)
Newsgroups: comp.lang.misc
Subject: Re: Object-Oriented vs. Abstract Data Types
Message-ID: <786@watmum.UUCP>
Date: Wed, 21-Jan-87 23:23:54 EST
Article-I.D.: watmum.786
Posted: Wed Jan 21 23:23:54 1987
Date-Received: Thu, 22-Jan-87 06:26:12 EST
References: <4000001@nucsrl.UUCP> <3288@milano.UUCP> <147@m10ux.UUCP> <672@unc.unc.UUCP>
Organization: U of Waterloo, Ontario
Lines: 47