Xref: utzoo comp.lang.objective-c:235 comp.lang.misc:7487 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!psuvax1!hsdndev!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.lang.objective-c,comp.lang.misc Subject: Re: Optional static typing limits Message-ID: <8493:Apr1719:30:0791@kramden.acf.nyu.edu> Date: 17 Apr 91 19:30:07 GMT References: Followup-To: comp.lang.misc Organization: IR Lines: 38 In article liberte@ncsa.uiuc.edu (Daniel LaLiberte) writes: > What are some other categories of problems that don't fit in existing > static typing systems? Is it possible to come up with a "fix" for > these problems in the ideal language, or will dynamic typing always be > "necessary", like goto is. Can we organize these and maybe learn > something about the problem? Amazing! Someone else is actually trying to solve problems and make programming easier, instead of arguing about exactly how hard it is! I like this guy's attitude. I propose we focus on just one problem: What should a type system look like in order to allow everything people want to do with types? In other words, what kinds of constraints should the programmer be able to express upon objects (in the general sense, not the OO sense) in order to achieve both safety and generality? Let's not argue whether dynamic typing is necessary. Let's just do what we have to so that it's obviously unnecessary. (Is that too upbeat for comp.lang.misc readers?) As a starting point: Ben, could you describe the Russell type system in more detail, or point us to references? I think the basic idea makes sense. If you apply certain operations to a value inside function f, then f should specify the value as anything subject to those operations. And, as a first sample problem to be solved by a typing system: How do we write a generic, type-safe sorting routine? What's the best that available languages can do to make this work? Remember, type-safe means that the sort routine will never tell you ``can't apply < to glorps'' at run-time, as a dynamically typed system would. We may have to separate the issues of typing for storage management and typing for typechecking/security/etc. Followups to comp.lang.misc. ---Dan