Xref: utzoo comp.object:3397 comp.lang.misc:7661 comp.lang.eiffel:1551 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!udel!ee.udel.edu From: new@ee.udel.edu (Darren New) Newsgroups: comp.object,comp.lang.misc,comp.lang.eiffel Subject: Re: A Hard Problem for Static Type Systems Message-ID: <52166@nigel.ee.udel.edu> Date: 29 Apr 91 17:54:47 GMT References: <554@eiffel.UUCP> <1991Apr26.203642.17387@leland.Stanford.EDU> <556@eiffel.UUCP> Sender: usenet@ee.udel.edu Followup-To: comp.object Organization: University of Delaware Lines: 88 Nntp-Posting-Host: estelle.ee.udel.edu In article <556@eiffel.UUCP> bertrand@eiffel.UUCP (Bertrand Meyer) writes: > > Doesn't look like you've answered the question here. What's the > > type of `min'? > >Now let us repeat patiently: the type of `min' is `like Current'. >`like' is an Eiffel keyword whose meaning was explained in my message, >and the corresponding typing mechanism (declaration by association) >is makes static typing possible in practice. Thank you for your attention. Yup. I caught that. What's the type of Current? If "Current" might be an integer when the call is "min(4,6)" and "Current" may be a list when the call is "min(<<3,4>>,<<5,6>>)" then it looks to me like the single definition of "min" specifices that "min" shall return different types on different calls. Whether you call this "dynamic typing" or "static typing" or "automatic polymorphism" or "generics" or what is beside the point. In the definition most of us have been using, "dynamic typing" means that syntactic elements don't have types. Here, it seems to me that the syntactic element "min" has a type which changes depending on the arguments on the rest of the line of text representing the functional application. It looks to me as tho the *declaration* is dynamically typed and the *application* is statically typed. This is one of those inbetweens for which I have not heard a good buzzword. > > I don't even know Eiffel. Maybe the response would > > be obvious if I *did* know Eiffel. >It is generally considered preferable to know first and then criticize. What criticism? I merely asked you to clarify the type of "min". To define a type by saying it is "like current" and then define "like" but not "current" does not illuminate me to the point where I fully understand the ramifiations of why it *isn't* dynamic typing. I really don't care whether Eiffel is dynamically or statically typed. >But it is never too late to know. That is certainly true. >This forum has seen the same claims made time and again, and time and >again rebuked, but whenever you cut the dragon's head a new one >grows back. Rational debate is useless; dynamic typing is good, >and static typing is at once bad, useless, and impossible. You mean, debate that disagrees with you. I think that most of the discussion has been beneficial at least to me. Just beause you claim that static typing is all you ever need doesn't mean it is so. Just because somebody claims that dynamic typing is better doesn't make it so. "Rebukes" are generally ineffective when the pperson rebuking is in a different situation than the person whose beliefs are being rebuked. (See, for example, the "formal semantics" thread; people who communicate with others a lot tend to like formal semantics more than those who just try to get something out. Formalisms themselves are neither good nor bad in and of themselves.) Besides, I still haven't seen a good example of how to do hetrogeneous lists in a statically-typed language. >I have always felt sympathy towards the biologists who accept >to debate creationists. Now I also understand them better; >one can fight opinions, not articles of faith. >Not having the infinite amount of both time and patience which >it would take to continue, I quit, declaring total rhetorical >defeat. That's funny. I don't argue to "win". I argue to "learn", whether it be to learn what your faith is, or to learn how you came to a rational decision. Even when I finish an argument I've "won" or "lost" or didn't really finish at all, I usually manage to keep an open enough mind that I might admit that the other side *could* have *some* validity to their claims, and thereby expand my own horizons. By not assuming that since the other side doesn't agree then they must be working on blind faith, I find that I often manage to converse long enough to get something out of the conversation, if only a better understanding of how to deal with people stuck in a blind-faith trap. Of course, we are all busy. I have no time to learn Eiffel right now (especially as it does not seem to present any truely novel-to-me concepts), and you may not have time to continue this argument. I accept and respect that. Have fun! -- Darren -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, FDTs ----- +=+ Nails work better than screws, when both are driven with hammers +=+