Mirah对JRuby,Groovy和Scala提供了什么?

Mirah语言比JRuby,Groovy和Scala提供了什么?

根据Mirah创作者的采访,Mirah的意思是创建一个Ruby的高性能变体。 有足够的类似于Ruby的语法来使其易于使用,但仍然足够接近Java和JVM语义,以便它可以在JVM顶部没有大运行时层的开销的情况下运行。

选择报价:

Mirah对类似语言的许多好处归结为轻量级。 在Groovy,Scala,JRuby,Clojure或Jython中,当你写“Hello,world”的时候,你已经把自己束缚到一个运行时库了。 在Mirah中,“Hello,world”和JRuby一样简洁,但还有一个好处,就是不会对你产生任何依赖。 源文件进来,类文件出来,就是这样。 我相信JVM需要一个新的无依赖关系的语言,Mirah是我的一个尝试。

虽然JRuby的性能可以与其他Ruby解释器相媲美,但最快的JRuby代码仍然会使Java性能达到一个数量级。 虽然您可以预期JRuby在1.6版本中的性能有所提高,但是Mirah试图突破性能上限,并为寻求与Java代码相媲美的执行速度的程序员提供了一个选择。

与自带库提供的全功能语言不同,Mirrah更像是Java库的“前端”。

Mirrah代码不依赖于它自己的环境(编译时Mirrah编译器除外)。

这是主要的好处:Java的语法不同。

对比Groovy

  • 现有Ruby / JRuby程序员更熟悉的语法
  • 静态类型

对JRuby

  • 静态类型

与斯卡拉

  • 现有Ruby / JRuby程序员更熟悉的语法

主要的优点是静态类型( 在JVM上更快的性能,更容易与现有的Java库互操作 )和熟悉的语法( 如果你来自Ruby )。

当依赖是一个考虑因素( 例如开发一个android应用程序 ),那么你不应该让这个指导你的语言选择。 使用像Proguard这样的工具将平整比赛场地。

如果你来自Ruby,Mirah是一个不错的选择。 如果你来自Erlang或Haskell,那么你会需要Scala。 如果你是一个LISPer,那么你会想看看Clojure。

如果你以前唯一的经验是Java,那么就羞愧了! – 你也许应该去Scala–它正在迅速获得Java的继承人的声誉,工具支持目前更强大,你将会在其他人进行相同转变的大型社区,所以有很多博客/教程已经可用。

和Groovy? Groovy现在几乎不是正确的选择…

我每天在Google AppEngine上使用Mirah。

这是我使用Mirah的理由:

  • 没有运行时库
  • 非常好的语法
  • 与Java一样快

使用Java引擎也非常有帮助:

  • 固体类型系统
  • 有据可查
  • 解决常见的问题

我做了一些Groovy,很多JRuby,没有Scala。 如果你知道这些,试试Mirah。 如果没有,我会和JRuby一起去。

Mirah是java的另一个rubyish语法。 恕我直言,一切都不好。 它对泛型一无所知,而且工具也很差。 更好地尝试锡兰,xtend,scala,kotlin等
Mirah编译为java类(不再是源代码)。 Xtend编译为java源代码,因此可以更简单地发现它在底层的功能。 锡兰和斯卡拉有他们自己的stdlibs(尽管如此java interop是接近完美的两个),不知道kotlin。 Kotlin是JetBrains的孩子,因此与IDEA联系在一起。
JRuby我也不喜欢。 它在Java互操作中有太多的错误。 而且它也有太多的改造车轮。 我的意思是编码(它不使用Java字符串和正则表达式,而是在原始字节缓冲区之上的自定义字符串),IO,异常处理,线程等。
jruby的唯一好处是它是红宝石。 许多ruby代码将正常工作。
Groovy OTOH不会重新发明轮子,它使用经过良好测试的Java库,并且只是添加语法糖。 另外groovy-java interop是伟大的。 它可以泛型。 线程,异常,字符串,集合 – 就像java中的java类一样。