Loosely typed / weakly languages are amazing! But… for myself, coming to this conclusion was like an acquired taste.
I was suffering from Software Ethnocentrism.
Software Ethnocentrism often entails the belief that one’s programming language or development environment is the most important and/or … are superior to those of other software developers. Within this ideology, software developers will judge other groups in relation to their own particular development environment or culture, especially with concern to programming language, methodologies, behaviour, customs, and religion. - the derived definition (above) is based on Wikipedia’s article on Ethnocentrism.
I had the tell tale signs of Software Ethnocentrism:
- I thought strictly typed language were “the bomb” – the only viable solution :)
- I thought Test Driven Development (TDD) and Unit Testing was the panacea
- I was completely obsessed with refactoring tools like ReSharper and Refactoring
- I thought my Compiler and IDE were superior
- and I had complete faith in multipurpose strictly typed languages like C#
Do you too suffer from Software Ethnocentrism? Try staving off this programming language tunnel vision, learn a new type of programming language. It might be a better investment in your time than becoming obsessed over a microcosm (like say unit testing and TDD).
Steve Yegge makes some humorous jabs at the static type culture:
… I think we can conclude that people who rely too much on static types, people who really love the static modeling process, are n00bs. … Hee hee. – Steve Yegge: Portrait of a N00b
… I think there’s some mystical relationship between the personality traits of “wakes up before dawn”, “likes static typing but not type inference”, “is organized to the point of being anal”, “likes team meetings”, and “likes Bad Agile”. I’m not quite sure what it is, but I see it a lot. – Steve Yegge: Good Agile, Bad Agile
Cartoon Notes: I took this cartoon from Steve Yegge’s blog titled Egomania Itself. It represents the irony of static type languages where everything is a named type – presumably the owner of the property is naming all his objects so he can remember what they are, but in loosely type languages, If it walks like a dog and barks like a dog, I would call it a dog. Read more about Dog Typing er… Duck Typing.