From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: feldmand@erols.com (Damon Feldman) Subject: Re: Static vs. Dynamic typing again (was Re: OO, C++, and something much better!) Date: 1997/01/30 Message-ID: <5covaj$l0@boursy.news.erols.com>#1/1 X-Deja-AN: 213128543 references: <32E7E08A.3079@parcplace.com> <32E8BCE3.3029@calfp.com> <01bc0a1e$faed8ce0$c318b993@jarvisb> organization: Erol's Internet Services newsgroups: comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object Date: 1997-01-30T00:00:00+00:00 List-Id: >I think it's a bit misleading to say that Smalltalk is dynamically typed >versus Ada/C++/etc being statically typed. I mean, Smalltalk does not >check the type of an object when passing it as a parameter Statically typed means that types are *determined* at compile time. Dynamically typed means types are *determined* at runtime. Static type *checking* means checking done at compile time. Dynamic type *checking* means checking at run time, I suppose. "Checking" catches errors, "determining" types determines what class a variable is (and therefore how it handles messages and what data it has access to). To my knowledge all statically-typed languages do static type checking. Since the programmer was forced to commit to fixed types at compile time it would be dumb not to check for errors in this cheap and easy-to-debug way. But dynamically typed languages just generate errors rather than explicitly do dynamic type-checking. (This is a bit of a simplification, but that's the idea.) So Smalltalk is dynamically typed because objects can get different types at runtime depending on execution, even though it is not type checked explicitly beyond generating an error or automatically expanding collection sizes, etc. Damon