在JAVA工作了很长一段时间后,我觉得还要学习其他语言只是为了改变。这次我想花一些时间学习和阅读其中一种动态语言。 哪个是最合适的,涵盖了动态语言提供的大多数功能以及可能很有趣的语法,也更接近大多数动态语言使用的语法。
BR, 凯沙夫
答案 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)
学习[其中之一]:
不要通过半动态半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,这样你就可以了; - )