2009-10-17 60 views
12

Ruby是一門偉大的語言。它快速而靈活,並且讓我想起了很多我也很喜歡的Python。Ruby有什麼現實問題?

紅寶石也很受歡迎,並且已經有幾年了。現在有一些「真實世界」項目和「rails-app business」,我的問題是這樣的:Ruby有什麼問題?有什麼事情做得不是特別好?在集成時是否有其他產品或技術證明特別難以處理?在爲任務關鍵型應用程序採用Ruby之前,有哪些事情會導致開發人員暫停並謹慎使用?

此外,是否有人編寫了一些生產Ruby開發的主要陷阱列表(博客垃圾郵件或其他),以及如何減輕這些風險?

編輯:

通過「真實世界」我的意思是商業世界,而不是學術世界裏沒有預算和時間表。

+2

問題標題中的「現實世界」是什麼意思?你有什麼區別? Ruby有什麼問題嗎?有一些「幻想世界」嗎? 「現實世界」是什麼意思?請定義這個詞。 – 2009-10-17 14:22:24

+1

Ruby很快?根據我的經驗,它似乎明顯比python和tcl慢。 – 2009-10-17 15:15:15

+1

嗯。我在學術界工作,我們非常有真實的預算和時間表。我不確定你在哪裏得到這樣的想法,即學術界不這樣做。 – 2009-10-17 15:30:33

回答

0

Ruby是一種解釋型語言,因此它比Java和C#等實時編譯語言(基於我見過的測試)執行代碼的速度降低了50倍。這是否是一個問題取決於網站本身的運作情況,因爲大多數網站的帶寬和數據庫時間往往受限於CPU時間。

+0

即使在您發佈時,它也是不準確的。你似乎在描述MRI(Matz Ruby Interpreter),它被用作其他人的標準來創建一個兼容的實現。 JRuby和Rubinius在你發佈的時候都存在;並且都使用JIT編譯。 – bigtunacan 2013-06-28 13:27:17

2

Ruby不快。它確實有其他特性,但是如果你的CPU有任何瓶頸(在許多webapps中並不是這樣),那麼Ruby不是一個合適的工具。目前的「標準」Ruby甚至不會編譯成字節碼(比如Python就是這樣),但是會解釋AST,這可能會使放緩速度達到20-100。但是,這可能會改變(或至少變得更好)與Ruby 1.9。和JRuby一樣,你肯定知道它是基於JVM的。

1

如果Ruby的性能在您的特定情況下有所不足,我建議您查看JRuby。它允許您以JIT或AOT方式將vanilla Ruby代碼編譯爲JVM字節碼,並且可以訪問Java的併發性和優秀的應用程序服務器。

+0

提及併發 – DaveParillo 2009-10-17 15:20:36

1

Ruby的速度並不是真正的主要問題。最大的問題是它是單線程的。 Max A.的建議很好。 JRuby確實允許併發。

+0

或者,只使用一個處理器的一個內核。 – 2009-10-28 14:09:58