
At Tue, 18 Mar 2008 09:41:15 -0700, Justin Bailey wrote:
From a recent interview[1] with the guy leading Ruby development on .NET at Microsoft:
"You spend less time writing software than you spend maintaining software. Optimizing for writing software versus maintaining software is probably the wrong thing to do. Static typing makes it harder to maintain software because it's harder to change it."
Two years ago I would have agreed with that statement. Now - no way.
I like to imagine it works like this: bad static type < dynamic typing < good static typing. Whenever someone says, dynamic typing is better than static typing -- just insert 'bad' in there and what they say actually makes a bit of sense ;) Since most programmers have never experienced a good static type system, it think it is fair to assume they are comparing dynamic typing to bad static typing -- unless they indicate otherwise. People also tend to mistake features commonly found in dynamically typed languages with things which could only be done in statically typed languages. For example, users of many popular dynamically typed languages like to be able to load code into an interpreter and run bits and pieces of it to test things out. This is obviously not a property of dynamically typed languages, since GHCi and hugs can do it as well. Many coverts to dynamic languages like to be able to just start coding with out having to first declare a bunch of stuff in .h files. But, of course, in Haskell you can just start writing code -- no type signatures or header files require. In this particular case, the ruby developer is attempting to attract attention and money to their project. The most likely converts are going to be Java, C++, and C# users. In that context, I suppose the claim that dynamic typing is better than (bad) static typing, could be true for some class of projects... j.