Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!bu.edu!m2c!umvlsi!dime!yodaiken From: yodaiken@chelm.cs.umass.edu (victor yodaiken) Newsgroups: comp.lang.misc Subject: Re: Dynamic typing (part 3) Message-ID: <28673@dime.cs.umass.edu> Date: 2 Apr 91 13:17:19 GMT References: <1991Apr1.010526.26781@neon.Stanford.EDU> <1APR91.23564447@uc780.umd.edu> Sender: news@dime.cs.umass.edu Reply-To: yodaiken@chelm.cs.umass.edu (victor yodaiken) Organization: University of Massachusetts, Amherst Lines: 20 In article <1APR91.23564447@uc780.umd.edu> cs450a03@uc780.umd.edu writes: > >Ok, poof, no argument. And I almost hesitate to mention that static >language implentations have an efficiency advantage (as they better >model things like machine limits) while dynamic language >implementations have an efficiency advantage (they better model human >thought mechanisms as exemplified by thousands of years of >mathematical development). > People keep saying this, but it just ain't so. Type declarations are an integral part of mathematics. Abbreviations and conventions, which make declarations implicit are used extensively, but that's not the same as no type declarations. Type declarations are so common as to be cliches in mathematical speech: e.g. "let G be a group", "let P be a proposition", "let R be a ring", "(forall x in X)" .... Maybe I'm missing an essential difference between these type declarations, and the declarations of programming languages. If so, I'd be happy if someone could explain.