This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: No wonder it's called "Worthless Information"
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
The CLR is always a strongly-typed typesystem; it's built into the core of the runtime, and cannot be abridged or avoided in any way (except through some dangerous unmanaged code accessed through P/Invoke, requiring necessary CAS permissions). There is no notion of "weak typing" as in otherlanguages. But that doesn't stop the CLR (and JVM, among others) from providing the capability to interact with objects defined in this strongly-typed platform in a loosely-bound manner, through the Reflection APIs. Through Reflection, I can effectively defer all decisions about type-enforcement until runtime, gaining a certain measure of flexibility at the expense of compile-time assistance in proving program correctness.
Two things:
Dynamic Typiing != weak typing. For instance, C++ is statically, but weakly typed. Python and Smalltalk are dynamically, but strongly typed.
Flexibility at the expense of runtime correctness? You mean I've never seen a Null Pointer Exception in Java?