Mirah语言 相对于JRuby、Groovy和Scala有什么优势?
Mirah语言 相对于JRuby、Groovy和Scala有什么优势?
与自带库的完整功能语言不同,Mirrah更像是Java库的另一种“前端”。
Mirrah代码不依赖于自己的环境(除了编译时需要Mirrah编译器)。
这是它的主要优点:提供了一种不同的Java语法。
与Groovy相比
与JRuby相比
与Scala相比
主要优势在于静态类型(在JVM上性能更快,与现有的Java库交互更容易),而且语法熟悉(如果你来自Ruby)。
当考虑到依赖关系时(例如开发Android应用程序),则不应让此指导您的语言选择。使用像Proguard这样的工具将平衡竞争力。
如果您来自Ruby,则Mirah是一个不错的选择。如果您来自Erlang或Haskell,则需要Scala。如果您是LISPer,则应查看Clojure。
如果您唯一的先前经验是Java,则应该为之感到羞愧! - 您应该选择Scala - 它正在迅速获得取代Java的声誉,工具支持目前更加强大,并且您将进入一个由其他进行同样转换的人组成的大社区,因此已经有很多博客/教程可用。
那么Groovy呢?现在几乎从来不是正确的选择...
Mirah是Java的另一种类似于Ruby的语法。我个人认为不太好用。它对泛型一无所知,而且工具支持也很差。更好的选择是尝试Ceylon、Xtend、Scala、Kotlin等。
Mirah可以编译成Java类(不再是源代码)。Xtend编译成Java源代码,因此更容易了解其底层实现。Ceylon和Scala有自己的标准库(尽管在这两种语言中与Java的互操作性接近完美),但我不确定Kotlin。Kotlin是JetBrains的产品,因此与IDEA紧密相连。
我也不喜欢JRuby。它在Java互操作性方面存在太多错误。它还有太多重新发明轮子的问题。我的意思是编码(它不使用Java字符串和正则表达式,而是在裸字节缓冲区上使用自定义字符串),IO,异常处理,线程等等。
JRuby唯一的优点是它是Ruby。许多Ruby代码只需原封不动地运行即可。
另一方面,Groovy没有重新发明轮子,它使用经过充分测试的Java库,并仅为其添加语法糖。此外,Groovy-Java互操作性非常好。它可以使用泛型。线程,异常,字符串,集合-都是作为Java类在Java中存在的。