动态语言 - 我应该选择哪一个?

Tor*_*ten 4 ruby groovy scala dynamic-languages jython

动态语言正在兴起,其中有很多:例如Ruby,Groovy,Jython,Scala(静态,但具有动态语言的外观和感觉)等等.我的背景是Java SE和EE编程,我想要将我的知识扩展到这些动态语言之一,以便为将来做好更充分的准备.

但是我应该关注哪种动态语言学习?为什么?在不久的将来,哪些将成为首选语言?

Jon*_*eet 16

学习Ruby或Python(以及Scala在较小程度上)意味着您将拥有非常可转移的技能 - 您可以使用Java版本,本机版本或.NET版本(IronRuby/IronPython).Groovy很好但是特定于JVM.

除非你设想特定的场景,否则"为未来做好准备"是很棘手的.你想做什么样的事情?您是否有一个可以用动态语言实现的项目?它是否小到可以尝试其中几个,以了解它们的区别?


Hem*_*mar 10

Scala根本不是一种动态语言.类型推断并不意味着它的无类型.但是,它是一种非常好的语言,具有很好的OOP和函数式编程.唯一的问题是你在路上遇到的一些陷阱.

既然您已经是一名经验丰富的Java程序员,那么它将非常适合您的技能.现在,如果你想要一路动态,Ruby或Python都是很棒的语言.需要这两种语言.


Ray*_*yne 8

我个人推荐Clojure.Clojure是一种令人敬畏的新语言,它比我见过的任何东西都更快受欢迎.Clojure是一个在JVM上实现的功能强大,简单,快速的Lisp.它当然可以访问所有Java库,就像Scala一样.它已经有一本关于它的书,它已经成熟到版本1.0,它有三个IDE插件正在开发中,所有三个都非常实用.

  • 它的java访问不需要任何包装或杂乱的转换. (2认同)

Bri*_*new 5

我会看看Scala.为什么?

  1. 它是一种JVM语言,因此您可以利用当前的Java技能
  2. 它现在有很多工具/ IDE支持(例如Intellij将处理Scala项目)
  3. 它有一个功能方面.功能语言目前似乎获得了很大的吸引力,我认为这是一个值得学习未来的范例

我的(完全主观的)观点是,Scala似乎得到了Groovy在一两年前得到的很多关注.我并不想成为有争议这里,还是建议做一个更好的语言,但它似乎是新的JVM语言怨妇.

另外,具有一些动态属性的语言是Microsoft的F#.我目前正在考虑这个问题(忽略了我自己的建议,重点是上面的第1点和第2点!).它是一种基于.Net的对象的函数式语言,目前正引起很多关注.