哪种语言最适合动态语言

时间:2010-07-31 17:43:42

标签: python ruby dynamic-languages

在JAVA工作了很长一段时间后,我觉得还要学习其他语言只是为了改变。这次我想花一些时间学习和阅读其中一种动态语言。 哪个是最合适的,涵盖了动态语言提供的大多数功能以及可能很有趣的语法,也更接近大多数动态语言使用的语法。

BR, 凯沙夫

7 个答案:

答案 0 :(得分:7)

Python总是很有趣。去吧。

答案 1 :(得分:4)

Javascript是迄今为止用于实际实际工作的动态语言中最有用的 - 不仅是用户浏览器上的“客户端”工作无法替代,而且Node.js正在迅速使服务器端工作变得非常有趣。当然,它有很多问题,但像Crockford的Javascript: the good parts这样的书可以帮助你避免许多问题。

JS的语法当然与动态语言(如Python或Ruby)完全不同,后者试图避免使用大括号和分号(在JS中你最好不要 避免使用它:它试图猜测代表你,但往往猜错了! - )。考虑到这些巨大的语法差异(如果你投入混合方案,Erlang,Perl,PHP,Tcl,......),实际上没有“大多数动态语言使用的语法”,所以你的部分规范是没有实际意义。

今天第二个最有用的可能就是Python - 正如Allison Randall(OSCON的程序主席和着名的Perl大师)所说,Python令人惊讶地成为许多领域的“默认语言”。例如,美国证券交易委员会正在考虑一项规定,要求公布股票交易中使用的算法,而他们最初提出的这种出版物的语言当然是“Python”。正如this post所解释的那样,

  

为何选择Python?美国证券交易委员会实际要求   评论是否应该   授权Perl,Java或其他东西   代替。我非常广泛地使用Perl,   但认为Perl是合适的   实施的语言   透明度要求是可笑的。   Perl是强大的模型但是   难以理解和神秘的代码。至于   Java和C-Sharp,很少   如果有开源代码的话   口译员也不公开   资源。我自己不使用Python,   但它似乎是一个不错的选择   手头的任务。

这就是Allison所说的“默认语言”,我认为:不一定是你选择实现给定任务的那个(例如上面帖子的作者更喜欢使用 Perl),但是每个人都应该能够阅读的语言,以便理解发布或以其他方式呈现的算法 - 正如Bruce Eckel(C ++和Java书籍当之无愧畅销的作者)所说的{ {3}},

  

Python是可执行的伪代码。

你可以将“可执行”部分视为奖励(它确保缺乏模糊性,非可执行伪代码可能缺乏;-)即使已经在其中实现了诸如reddit和youtube等大型系统。

在另一个极端,如果你不一定要寻找立即有用的知识,但为了扩大思维范围,Scheme或Erlang可能最适合你(但每种情况下的语法相当不同从大多数其他语言,请注意; - )。

然而,在这种情况下,我建议here,与Van Roy's和Haridi的Mozart(那本书是很多学习动机一起去的杰作莫扎特就像Concepts, Techniques, and Models of Computer Programming一样学习计划 - 事实上,我把CTMCP描述为“21世纪的SICP”! - )。

答案 2 :(得分:3)

学习[其中之一]:

  • 红宝石
  • 的Python
  • Clojure(现代Lisp)
  • JavaScript(是的,这是一种很棒的动态语言!)

不要通过半动态半Java语言进行转换。只需跳进去尝试一种动态语言。为了真正理解还有什么,你必须通过跳入而不是将你的脚趾插入水中来 out

是的,我知道Clojure在JVM上,而且Ruby和Python也在JVM上实现。但是语言的运行时实现并没有定义语言。学习该语言,您可以选择最喜欢的运行时。

答案 3 :(得分:2)

由于你有Java背景,Groovy可能值得一试。

这很有趣:)

答案 4 :(得分:2)

您可能希望从Groovy(http://groovy.codehaus.org/)开始,因为这是一种接近Java的语言,因此您可以使用您所知道的,但随后开始获得使用函数作为一流的经验对象,例如。

然后,一旦你理解了Groovy,你就可以开始尝试使用Ruby和Python了。

答案 5 :(得分:2)

Ahah,漂亮的巨魔:)(带有ruby和python标签)。

在我看来,经过尝试多种语言后,我最喜欢的是Ruby with Ruby on Rails。

答案 6 :(得分:0)

尝试 Jython ,如果你喜欢Java,这样你就可以了; - )