8

这不会是一般比较的要求:

玩!框架是基于 Java 的,这意味着代码被解释为字节码,然后由 JVM 在运行时编译。另一方面,Ruby 是一种动态语言,这意味着每次请求都会解释代码。这对于每个程序员来说都是显而易见的。

另一个方面是开发过程和语言的易用性(强类型与弱类型)。

目前我正在使用 Play 开发一个新网站!
所以,对于问题:

  1. HTTP 服务器的性能(Play!在 JVM 上运行,Ruby 是动态的)——这对网站真的很重要吗?你会看到显着的差异吗?
  2. 我觉得 RoR 拥有更大的社区、资源、教程等,这对我来说有点打击。还是应该?
4

2 回答 2

6

这要看情况。

  1. Ruby 不是一门特别快的语言,但语言执行速度可能不是你的瓶颈——根据我的经验,Ruby 的相对缓慢通常只是外部服务调用(例如数据库)、算法问题(例如同步、阻塞)的沧海一粟子程序),以及通常不适合问题域的设计选择。保持您的整个技术堆栈的正确性。

  2. 社区很重要,Ruby/Rails 有一个非常活跃的社区。AFAIK Play 的规模较小,但根据我自己的经验,Java 和 Scala(以及无数其他具有 JVM 实现的语言(包括 Ruby))也有很好的社区。

所有这些都取决于您的应用程序(以及您!)的特定需求。如果 Ruby 太慢,那就太慢了。如果您绝对需要一些仅存在于 Java 中的库,请使用 Java。选择适合任务的工具。但要正确看待整个任务(以及您自己完成该任务的需求)。

于 2012-10-14T22:05:42.527 回答
4

这两个模型之间有很多差异。至于性能,我对基于 Java 和 RoR 的看法:

1、基于Java的网站(运行在多个Java应用服务器上),有其独特的优势,如多线程模型(读取本地数据的速度最快)、全局内存、易于资源池化、大量高效客户端连接各种第三部分 OSS 工具...

2、RoR(和Php)模型的HTTPServer连接,需要将请求“代理”到App层。多进程模型增加了进程间通信。而作为“动态语言”,性能较低。

但是,如今,Web 编程依赖于其他工具来提升。缓存、NoSQL(Memcached、Redis、TT/TC)、IPC/RPC 框架(netty、akka、)的广泛使用……转移了瓶颈。我知道以上两种模式都被用于大型网络社交游戏。

于 2012-10-15T02:19:17.560 回答