This post originated from an RSS feed registered with .NET Buzz
by Sam Gentile.
Original Post: A Key Python/Dynamically Typed Language Observation
Feed Title: Sam Gentile's Blog
Feed URL: http://samgentile.com/blog/Rss.aspx
Feed Description: .NET and Software Development from an experienced perspective - .NET/CLR, Rotor, Interop, MC+/C++, COM+, ES, Mac OS X, Extreme Programming and More!
As predicted, the more I look at Python, the more I like and discover. I think I now know why I had an (unfair) bias against late-binding languages. This may be even more important than my “Smalltalk and My Late Binding Revelation” that I had in 1992. In chapter 1 of his excellent book, Mark goes into a subsection entitled “How Python's Data-types Compare to Other Programming Languages,” where he talks about Statically typed language, Dynamically typed language, Strongly typed language and Weakly Typed Language. By his definition VBScript and Python are dynamically typed languages but Python is both dynamically typed (because it doesn't use explicit data-type declarations) and strongly typed (because once it has a data-type it actually matters). VBScript, on the other hand, is a weakly typed language because you can concatenate the string '12' and the integer 3 to get the string '123', and then treat that as the integer 123, all without any explicit conversion. Also, unlike VBScript, Python will not allow you to reference a variable that has never been assigned a value. Then it hit me. I have been (naively) biased against late/dynamically bound languages because of the crap that is VBScript. This is coupled with Everything Is An Object. This is the kind of type system that has flexibility but certain safety at the same time and I can deal with that. It may not mean much to others but it unlocks a huge door for me.