soc*_*soc 12

与具有自己的库的全功能语言不同,Mirrah更像是Java库的不同"前端".

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

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


Thi*_*ilo 9

根据对Mirah创作者采访,Mirah(在爪哇语中意为"ruby")的观点是创建一个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代码相同的执行速度的程序员提供一个选项.

  • Scala是静态类型的.Ruby/Groovy/Clojure增加了Scala没有的性能负担.为什么它在这个列表中? (7认同)
  • 执行摘要:"Mirah语言对JRuby,Groovy和Scala有什么影响?" 据他们说,表现. (3认同)
  • @El Gusto:嗯,当你在Scala中编写一个`Hello World`时,你会得到`6.496.110 scala-library.jar`(Scala 2.8.1),*plus*Java自己的库(授予,放置该文件)羞耻).Mirah没有带来任何新的库,确实很有趣. (3认同)
  • @pedrofurla实际上,我没有在他们的网站上读到关于"表现"的任何内容.他们所说的是_目前的JVM语言没有引入Mirah的美学目标,也没有引入运行时库,通常是一个令人望而却步的大小.除非Thilo有一个奇怪的性能定义. (3认同)
  • 性能方面,自Scala 2.8以来提供专业化支持,Scala能够在许多情况下生成*比Java更好的*执行代码 - 通过消除一些原始的装箱和拆箱.这样做的代价是编译的字节码的大小增加. (2认同)

Kev*_*ght 8

与Groovy

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

与JRuby相对

  • 静态打字

与斯卡拉

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

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

当依赖关系是一个考虑因素(例如开发一个Android应用程序)时,你不应该让这个指南成为你的语言选择.使用像Proguard这样的工具可以平衡比赛场地.

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

如果你以前唯一的经验是Java,那么你就会感到羞耻! - 你可能应该去Scala - 它正在迅速赢得作为Java明显的继承人的声誉,工具支持目前更强大,你将在一个大型社区中进行同样的过渡,因此有很多博客/教程已经可用.

和Groovy?Groovy现在几乎从来都不是正确的选择......

  • @seymour - James Strachan(Groovy的创建者)在他的博客中很好地总结了它:http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html (3认同)

hak*_*nin 5

我每天都在Google AppEngine上使用Mirah.

以下是我使用Mirah的原因:

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

将Java置于引擎盖下也非常有用:

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

我做了一些Groovy,很多JRuby,没有Scala.如果你知道这些,试试Mirah.如果没有,我会选择JRuby.