Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcnc!unc!rentsch From: rentsch@unc.UUCP (Tim Rentsch) Newsgroups: comp.lang.misc Subject: Re: Object-Oriented vs. Abstract Data Types Message-ID: <672@unc.unc.UUCP> Date: Wed, 21-Jan-87 04:54:56 EST Article-I.D.: unc.672 Posted: Wed Jan 21 04:54:56 1987 Date-Received: Wed, 21-Jan-87 23:19:16 EST References: <4000001@nucsrl.UUCP> <3288@milano.UUCP> <147@m10ux.UUCP> <1023@cuuxb.UUCP> <776@watmum.UUCP> Reply-To: rentsch@unc.UUCP (Tim Rentsch) Organization: CS Dept, U. of N. Carolina, Chapel Hill Lines: 34 In article <776@watmum.UUCP> gvcormack@watmum.UUCP (Gordon V. Cormack) writes: > 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. Be careful not to confuse the two! Runtime binding need not require "runtime type checking" (not exactly type checking, since there are no explicit checks), and in fact can be staticly checked so that "message not understood" errors cannot occur. 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! I for one am tired of systems where the only way to produce a new version is to "compile and link overnight". Above all I want my computer systems to be responsive. If some people find that undesireable... -- well, to each his own. cheers, Tim