Viewing By Entry / Main
October 11, 2006
Vince Bonfanti often posts some interesting pieces on programming at large so I enjoy his blog (well, when he's not promoting BlueDragon :)

He has posted several pieces about dynamic programming vs static programming and his latest entry about the (lack of) scalability of dynamic programming is very poignant given the current buzz around duck typing.

I'm an advocate of dynamic languages but I am also an advocate of static analysis. Back in the early 90's, I worked for a software QA company that specialized in source code analysis. Our pitch was that we would go into any company and, in less than three hours of source code analysis, we'd find a bug they'd spent weeks (or even months) looking for. Studies back then showed that static analysis found 80% more bugs than dynamic analysis.

However, one thing that people seem to miss is that you can perform static analysis of any language, including dynamic ones. My PhD work involved creating static analysis tools for dynamic languages, including a Prolog program for deducing the type safety of programs written in a typeless functional language.

Now, that's not to say I disagree with Vince on his reasons for highlighting the quote he pulled for this article - it's a caution that dynamic languages are not a silver bullet. Just because one or two uber-programmers can build a site in a few weeks does not mean that the end result is a scalable, maintainable long-term solution.

There's a lot of buzz about Ruby on Rails but we, as ColdFusion developers, are used to building sites quickly using a dynamic language. Yet some people want to take pot-shots at that and try to convince us that ColdFusion needs to become a static language to move forward. Do we need to become Java Lite? Not in my book.

I've built large systems in dynamic lanaguages. I've built large systems in static languages too. Neither is necessarily better or worse than the other in terms of maintainability - if you know what you are doing.

Comments

i say that static typeing is bad for peple that know what they are doing. lets say in java pre 1.5 you had to cast stuff in and out of containers so do you see class cast exeptions. dynamic typeing combined with unit testing is better than static typeing even with unit testing; because of the power of dynamic typing!!


Post Your Comments
Name:
Email Address:
Comments
*** Please note that all comments require moderation so it may be some time before your comment posts to this blog! ***
Remember My Information:
 



Hosting provided by