在为 JAVA 工作了很长时间后,我觉得也学习一些其他语言只是为了改变。这次我想花一些时间学习和阅读其中一种动态语言。这是最合适的一种,它涵盖了动态语言提供的大部分功能和可能很有趣的语法,也更接近大多数动态语言使用的语法。
BR,凯沙夫
在为 JAVA 工作了很长时间后,我觉得也学习一些其他语言只是为了改变。这次我想花一些时间学习和阅读其中一种动态语言。这是最合适的一种,它涵盖了动态语言提供的大部分功能和可能很有趣的语法,也更接近大多数动态语言使用的语法。
BR,凯沙夫
Python 总是很有趣。去吧。
Javascript 是迄今为止对现实世界的实际工作最有用的动态语言——它不仅对于用户浏览器上的“客户端”工作是不可替代的,而且Node.js正在迅速使其对服务器端工作变得非常有趣,也。当然,它有很多问题,但是像 Crockford's Javascript 这样的书:好的部分将帮助您避免其中的许多问题。
当然,JS 的语法与 Python 或 Ruby 等动态语言的语法有很大不同,后者会尽量避免使用大括号和分号(在 JS 中最好不要避免:它试图代表你猜测,但它经常猜错! -)。考虑到这些巨大的语法差异(如果你混合使用 Scheme、Erlang、Perl、PHP、Tcl ......),实际上没有“大多数动态语言使用的语法”,所以你的部分规范是没有实际意义。
今天第二个最有用的可能是 Python——正如 Allison Randall(OSCON 的程序主席和著名的 Perl 大师)所说,Python 出人意料地成为许多领域的“默认语言”。例如,美国证券交易委员会正在考虑制定一项法规,强制发布用于股票交易的算法,而他们最初为此类出版物提议的语言“当然”是 Python。正如这篇文章所解释的,
为什么是 Python?SEC 实际上要求就他们是否应该强制使用 Perl、Java 或其他东西发表评论。我非常广泛地使用 Perl,但是认为 Perl 是一种适合实现透明度要求的语言的想法是可笑的。Perl 是一个强大但不可读和神秘代码的模型。至于 Java 和 C-Sharp,如果解释器不是开源的,那么开源代码就没有什么意义了。我自己不使用 Python,但它似乎是手头任务的不错选择。
这就是 Allison 所说的“默认语言”的意思,我认为:不一定是您选择实现给定任务的语言(例如,上述帖子的作者更喜欢使用Perl),而是一种每个人都应该能够阅读的语言为了理解已发布或以其他方式呈现的算法——正如 Bruce Eckel(当之无愧的 C++ 和 Java 书籍畅销书作者)所说的那样,
Python 是可执行的伪代码。
您可以将“可执行”部分视为奖励(它确实保证没有歧义,这是不可执行的伪代码可能缺少的;-)即使已经在其中实现了诸如 reddit 和 youtube 之类的大型系统。
在另一个极端,如果您不一定要寻找立即有用的知识,而是为了拓宽思维,Scheme 或 Erlang 可能最适合您(但每种情况下的语法与大多数其他语言完全不同,请注意;-) .
但是,在这种情况下,我建议Mozart与 Van Roy 和 Haridi 的《计算机编程的概念、技术和模型》的杰作一起使用(这本书是学习 Mozart 的充足动力,就像SICP是学习 Scheme 一样 - - 事实上,我已经将 CTMCP 描述为“21 世纪的 SICP”!-)。
学习[其中之一]:
不要通过半动态、半 Java 语言进行转换。只需跳入并尝试动态语言。为了真正了解正在发生的其他事情,您必须跳进去,而不是把脚趾伸进水里,才能离开Java 世界。
是的,我知道 Clojure 在 JVM 上,并且 Ruby 和 Python 在 JVM 上也有实现。但是一种语言的运行时实现并没有定义该语言。学习语言,您可以选择最喜欢的运行时。
由于您有 Java 背景,Groovy可能值得一试。
其乐无穷 :)
您可能想从 Groovy ( http://groovy.codehaus.org/ ) 开始,因为它是一种接近 Java 的语言,因此您可以使用您所知道的,然后开始获得使用函数的经验类对象,例如。
然后,一旦您了解了 Groovy,您就可以开始尝试 Ruby 和 Python。
啊,漂亮的巨魔 :)(带有 ruby 和 python 标签)。
以我的拙见,在尝试了多种语言之后,我最喜欢的是 Ruby 和 Ruby on Rails。
试试Jython,如果你喜欢 Java,这样你就可以了 ;-)