Mirah比JRuby、Groovy和Scala提供了什么?
与JRuby、Groovy和Scala相比,它提供了什么?根据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性能一个数量级。虽然您可以预期JRube的性能在1.6版本中得到改进,但Mirah是一个尝试突破性能上限的程序员,它提供了一个程序员可以选择的执行速度与java代码一致的选项。Mirah比JRuby、Groovy和Scala提供了什么?,scala,groovy,jruby,language-comparisons,mirah,Scala,Groovy,Jruby,Language Comparisons,Mirah,与JRuby、Groovy和Scala相比,它提供了什么?根据Mirah的观点(在爪哇语中是“ruby”的意思)是创建一个高性能的ruby变体。有足够的Ruby语法使其易于使用,但仍然足够接近Java和JVM语义,因此它可以运行,而不需要JVM上的大型运行时层的开销 选择报价: Mirah相对于类似语言的许多好处都归结为它的轻量级。在Groovy、Scala、JRuby、Clojure或Jython中,在您编写“Hello,world”的那一刻,您就将自己束缚在一个运行库中。在Mirah中,“H
与功能齐全的语言不同,Mirrah有自己的库,它更像是Java库的另一个“前端” Mirrah代码不依赖于它自己的环境(编译时的Mirrah编译器除外)
这是主要的好处:Java的语法不同。与Groovy相比
- 现有Ruby/JRuby程序员更熟悉的语法
- 静态类型
- 静态类型
- 现有Ruby/JRuby程序员更熟悉的语法
还有Groovy?Groovy现在几乎从来都不是正确的选择…我每天都在谷歌AppEngine上使用Mirah 以下是我使用Mirah的原因:
- 没有运行库
- 非常好的语法
- 和Java一样快
- 立体打印系统
- 有据可查
- 常见问题的已知解决方案
如果不是,我会选择JRuby。Mirah只是java的另一种rubyish语法。我一点也不好。它对泛型一无所知,而且工具也很差。最好试试锡兰、xtend、scala、kotlin等。
Mirah编译成java类(不再是源代码)。Xtend编译成java源代码,因此更容易了解它在幕后的作用。Ceylon和scala都有自己的stdlib(尽管java互操作在两者中都近乎完美),但对kotlin并不确定。科特林是JetBrains的孩子,因此与这个想法息息相关。
我也不喜欢JRuby。它在java互操作中有太多的bug。而且它也有太多重新发明的轮子。我指的是编码(它不使用java字符串和正则表达式,而是在原始字节缓冲区上使用自定义字符串)、IOs、异常处理、线程等
jruby的唯一优点是它是ruby。许多ruby代码将按原样工作。
Groovy OTOH并没有重新发明轮子,它使用经过良好测试的java库,只是在其中添加了语法糖。groovy java互操作也很棒。它可以是泛型。线程、异常、字符串、集合——和java中的一样,都是java类 @pst:你认为语言是动态的还是静态的是一个压倒一切的问题,其他任何语言都无法与之相比?@pst:没有时间学习四种语言:),更不用说我怀疑我能通过快速嗅闻每种语言的真正气味。@El Gusto我说“尝试”,而不是“学习”(彻底):-)根据我的经验,在一个小的“介绍”项目中,只需几天时间,我就能知道这是不是我想要学习的语言(例如,我给它打分)。这并不意味着细微差别是已知的或代码是惯用的,而是足以大致了解“大局”。@这是我的正确观点(很棒的名字,顺便说一下)-这些问题经常出现。苹果和桔子。不管是红色的美味还是血脐。@3lijandro:给出的答案缺少什么?我建议你要么提及IYHO目前还缺少的东西,要么接受一个答案,那就好了。执行摘要:“Mirah语言比JRuby、Groovy和Scala提供了什么?”根据他们的说法,性能。Scala是静态类型的。Ruby/Groovy/Clojure增加了Scala没有的性能负担。为什么它会出现在这个列表中?@El Gusto:好吧,当你在Scala中编写一个
Hello World
,你会得到6.496.110 Scala library.jar
(Scala 2.8.1),再加上Java自己的库(当然,这会让这个文件蒙羞)。米拉没有带来任何新的库,这确实很有趣。@pedrofurla事实上,我没有读过任何关于“性能”的书