如果您选择静态类型的语言,比如Scala (或者F#,Haskell,C#),而不是动态类型的语言,比如Ruby、Python、Clojure、Groovy (这些语言具有宏或运行时元编程功能),那么您在实践中会失去什么呢?请考虑最好的静态类型语言和最好的(在您看来)动态类型的语言,而不是最差的语言。
答案摘要:
与Scala等静态类型语言相比,Ruby这样的动态语言的主要优点是:
发布于 2010-04-02 14:27:40
原则上,当不清楚(在静态上下文中)应该做什么正确的事情时,您就放弃了忽略所使用的类型的能力,这就是它。
由于复杂的类型检查可能相当费时,您也可能被迫放弃快速的在线元编程。
实际上,对于Scala,您几乎没有放弃其他什么--也没有什么我特别关心的。不能注入新方法,但可以编译和运行新代码。您必须在函数参数中指定类型(以及带有递归函数的返回类型),如果您自己从未犯过类型错误,这会稍微有些烦人。因为它编译了每个命令,Scala并不像Python那样快。而且,由于它使用Java反射机制,所以您无法像使用Python那样轻松地进行在线检查(至少不构建自己的检查库)。
发布于 2010-04-02 12:53:47
选择哪种静态或动态语言比静态/动态选择本身更重要。一些动态语言具有良好的性能和良好的工具。一些静态语言可以是简洁的、有表现力的和增量的。有些语言几乎没有这些特性,但确实有大量经过验证的代码库。
发布于 2010-04-02 12:32:13
{ 'request':{'type':'GET', 'path':mypath}, 'oncomplete':function(response) { alert(response.result) } }。if语句中。eval是大多数动态语言的主流,很少是静态语言。
https://stackoverflow.com/questions/2566569
复制相似问题