Dynamic vs Weakly Typed Languages