与静态类型语言相比,动态类型语言的优点和局限是什么?
另请参阅:对动态语言的热爱(更具争议性的话题......)
似乎每个人最近都在跳跃着充满活力,没有编辑的潮流.我大多只使用编译的静态类型语言(C,Java,.Net).我对动态语言的体验是ASP(Vb Script),JavaScript和PHP.在考虑动态语言时,使用这些技术在我的嘴里留下了不好的味道.通常会被编译器捕获的事情(例如拼写错误的变量名称以及将错误类型的值分配给变量)直到运行时才会发生.即便如此,您可能也不会注意到错误,因为它只是创建一个新变量,并分配一些默认值.我也从未见过intellisense在动态语言中运行良好,因为变量没有任何明确的类型.
我想知道的是,人们对动态语言有何吸引力?动态语言允许您执行的操作无法完成或在编译语言中难以完成的主要优点是什么.在我看来,我们很久以前就决定,像未编译的asp页面抛出运行时异常这样的事情是个坏主意.为什么这类代码会重新出现?为什么至少在我看来,Ruby on Rails看起来并不像10年前你用ASP做过的任何东西?