Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!xanth!cs.odu.edu!zeil From: zeil@cs.odu.edu (Steven J. Zeil) Newsgroups: comp.object Subject: Re: CHALLENGE: heterogeneous collections Message-ID: <1991Apr1.142425.18373@cs.odu.edu> Date: 1 Apr 91 14:24:25 GMT References: <26714:Mar2602:52:1891@kramden.acf.nyu.edu> <27F11E1D.6354@tct.uucp> <49413@nigel.ee.udel.edu> Sender: usenet@cs.odu.edu (Usenet News Poster) Reply-To: zeil@cs.odu.edu (Steven J. Zeil) Organization: Old Dominion University, Norfolk, VA Lines: 28 Nntp-Posting-Host: dolphin.cs.odu.edu In article <49413@nigel.ee.udel.edu> carroll@cis.udel.edu (Mark Carroll) writes: >This article and its replies made me a bit angry. There's a rather huge >degree of ignorance in them. > >All effective programming systems are equivalent. Anything that I can do >in ANY language, I can do in any other language. > >There is absolutely no way that I can make an argument that a dynamic >type system can do something that can't be done in a static system - >because anything that I can do in language A, I can do in language B. > The "all languages are equivalent power" argument applies only within the context of a single program execution. It does not apply when we begin to discuss the evolution of a set of programs as code is re-used and especially as as new programs manipulating previously-defined objects are conceived and implemented. The original poster was discussing the ability of a dynamically typed language to support a common I/O protocol. Yes, I can support his protocol easily in a static type system --IF-- I know all of the object classes ahead of time or am willing to rewrite portions of the I/O protocol each time that I define a new class. Otherwise, the original poster is correct in claiming that it "can't be done" over the history of the development of a related set of programs. Steve Z