Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!caen!kuhub.cc.ukans.edu!hawk!billk From: billk@hawk.cs.ukans.edu (Bill Kinnersley) Newsgroups: comp.lang.misc Subject: Re: Runtime Polymorphism -- To Have and Have Not (Par Message-ID: <1991Mar5.214727.8630@hawk.cs.ukans.edu> Date: 5 Mar 91 21:47:27 GMT References: <559@coatimundi.cs.arizona.edu> Organization: University of Kansas Computer Science Dept Lines: 20 In article <559@coatimundi.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes: : Runtime polymorphism (or runtime typing, or dynamic typing) means that : identifiers in a language do not have types that are fixed at compile : time, they can reference values of different types at different times : in the program. Languages with runtime polymorphism include Lisp, : Smalltalk, Icon, and Prolog. : Runtime polymorphism is one of the worst features of Smalltalk and Icon. In Smalltalk, people miss the typing so much that they name all of their variables "anObject" or aNumber" to make up for it, thus forgoing the opportunity to use meaningful names. And in Icon, the absence of typing has led to an incredible proliferation of operators. Since the variables are polymorphic, the operators must all be monomorphic. It's entirely the operator's responsibility to decide whether to compare two variables as numbers (=) as strings (==) or as values (===). Thus we get monstrous operations like >>=:= and --:= and |||:= and ~===:= that no one can remember.