Article View: comp.lang.misc
Article #4607Re: Object-Oriented vs. Abstract Data Types
From: Gordon V. Cormack
Date: Thu, 22 Jan 1987 04:23
Date: Thu, 22 Jan 1987 04:23
47 lines
3006 bytes
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!gvcormackReferences:
<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