Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!mips!pacbell.com!pacbell!osc!tma From: tma@osc.COM (Tim Atkins) Newsgroups: comp.object Subject: Re: Do we really need types in OOPL's? Message-ID: <3862@osc.COM> Date: 5 Oct 90 05:55:17 GMT References: <3832@osc.COM> <3851@m5.COM> <1990Oct3.203122.21273@Neon.Stanford.EDU> Reply-To: tma@osc.UUCP (Tim Atkins) Organization: Versant Object Technology, Menlo Park, CA Lines: 39 It appears I stuck my foot in it when I claimed that C++ virtual functions are not an example of dynamic binding. That is of course wrong as they are. However, we need another term whose meaning is the overly restrictive one I previously gave dynamic binding. This term applies to languages that have a mechanism for fully run-time binding of function to message, receiver pair where no information was necessarily available for either member of the pair at compile time. Apparently we are stuck with the somewhat perjorative (in some camps) term, late (or more descriptively, run-time ) binding. This type of binding is extremely useful in situations such as: - distributed object networks - ODBMS query servers - prototyping environments - any system whose actions (messages to send) are speci- fied by the user at run-time and more generally where the target receiver is also user specified. Particular- ly in systems where the number of combinations possible is too large to precompute - creating highly reuseable classes whose functionality is user extendible. An example would be the pluggable views of Smalltalk. While it is possible to accomplish subsets of these types of systems in statically typed, dynamically bound languages it is excruciatingly difficult, IMHO, and I believe impossible in the most general cases. Yet such a capability is a logical extension of reuse techniques which predate OO technology. My beef is not with the more limited dynamic binding generally available but with languages that provide no support for late binding. - Tim Atkins