Java优于Ruby/JRuby的优点

Rub*_*bee 13 ruby java jruby

我正在学习Java.我学习并使用过Ruby.Ruby书籍总是讲述Ruby优于Java的优势.但必须有一些优势,这就是为什么很多人(特别是公司)使用Java而不是Ruby.请告诉Java相对于Ruby的绝对(不是哲学!)优势.

Mne*_*nth 18

  • 许多开发人员使用Java而不是使用Ruby.
  • Java中的许多现有库(这也有助于JRuby).
  • 静态类型检查(可以看作是优势和劣势).
  • 必须维护的现有代码库.
  • 良好的工具支持.
  • 更多更深入的文档和教程.
  • 有关良好实践和陷阱的更多经验.
  • 更多的商业支持.这对公司来说很有意思.

其中许多优点都是Java生态系统比Ruby更加成熟的结果.其中许多点都是主观的,如静态与动态类型.

  • 您可以更准确地说,虽然语言大致相同,但Java生态系统比Ruby生态系统更成熟.而且我也不会单方面断言这也是一种优势; 成熟度经常带来乏味(参见:Java Community Process). (2认同)

dfa*_*dfa 12

我不太了解Ruby,但我可以猜到以下几点:

  • Java有更多文档(书籍,博客,教程等); 整体文档质量非常好
  • Java有更多的工具(IDE,构建工具,编译器等)
  • Java具有更好的重构功能(由于静态类型系统,我猜)
  • Java比Ruby更广泛采用
  • Java有一个明确指定的内存模型
  • 据我所知,Java对线程和unicode有更好的支持(JRuby可能会在这里提供帮助)
  • Java的整体性能最近很好(由于热点,G1新的垃圾收集器等)
  • 如今,Java拥有非常有吸引力和廉价的服务器托管:appengine


Kon*_*lph 7

请告诉我Java的绝对优势......

程序员应该很少处理绝对值.

我敢说,并且说通常,静态类型(Java)比动态类型(Ruby)更有优势,因为它有助于更​​快地识别错误,并且无需潜在的困难单元测试1).

智能地利用,具有静态类型检查的强类型系统可以节省时间.


1)反对单元测试!但良好的单元测试很难,编译器可以帮助减少必要测试用例的数量.

  • Ruby*有一个强类型系统,所以我认为你的意思是Java的时间节省来自静态类型检查.它确实发现了一些错误.不过,我想知道,如果你花在编写更多代码上的时间,那么节省的时间就会超过它.看到一些数据会很有趣. (3认同)

gbj*_*anb 5

原因#1.那里有很多遗留的Java代码.Ruby是新的,没有那么多的程序员知道它,甚至更少的人擅长它.同样,Java可用的库代码比Ruby多得多.

所以可能有技术原因Ruby比Java好,但如果你要求商业原因,Java仍然胜过它.

  • 实际上,Ruby几乎和Java一样古老.但是直到Rails,它只是一种晦涩难懂的语言,几乎没有人(尤其是日本以外的人)听说过. (5认同)