
jgbailey:
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. Make the compiler work for you. I've done a lot of Ruby development and I would never use it for a project of more than 3 or 4 people. It's an awesome language but I don't think it would scale to programming "in the large." Any object can be modified at any time. Determining where a particular method comes from can be an exercise in Sherlockian deduction. Give an organization of 100 developers that much freedom and I can only imagine chaos would result.
Justin
Agreed, maintainability is all about restricting the damage people can do, and making refactoring safer :) The kind of havoc a new programmer can create in a pure, strongly typed, polymorphic chunk of code is tiny compared to an "anything goes" language scenario. -- Don