2011-04-20 32 views
3

這可能是我最糟糕的問題了,但是我正在選擇Ruby vs.Jruby來處理一個處於技術研究階段的項目,所以語法同樣是對靈活性的一個小問題。Ruby和JRuby語法不同嗎?

它們是兩種不同的語法還是兩者看起來差不多?

回答

11

簡短回答:他們使用相同的語法。可用的對象和方法略有不同,但語法相同。

較長的答案:Ruby 1.9使用的語法與Ruby 1.8略有不同。 JRuby在1.9的支持下落後,但正在慢慢趕上。如果你正在談論Ruby 1.8與JRuby,它是一樣的。如果你正在談論Ruby 1.9與JRuby,那麼it is the same as long as you are using JRuby 1.6.0RC2 or later

編譯器處理所有1.9語法現在

+2

謝謝!順便說一句,你的長答案只比你的簡短答案長一行 - 必須是好設計;) – Genadinik 2011-04-20 18:56:02

1

相同的語法。只與數據庫連接紅寶石使用MYSQL2不同的數據庫連接和JRuby使用jdbcmsql進行數據庫連接

JRuby的數據庫連接所需的寶石是ActiveRecord的-jdbcmysql適配器

3

紅寶石是一種語言。它有多個實現,但有一個參考實現被稱爲MRI(Matz的ruby解釋器)或C-Ruby(因爲它是用C編寫的)。還有一個ruby規範項目正在進行,它試圖記錄ruby應該如何表現,而不僅僅是「做MRI做什麼」。

也有多個版本的紅寶石,1.8.7和1.9.1這些日子是最常見的。據說,所有實現(包括JRuby,Ironruby,Rubinius)的目標都要符合規範,因此是兼容的。所以你可以編寫你的「純粹的」ruby代碼,並在任何最好的實現上運行它。

當然,不同的實現有他們自己的錯誤,以及他們自己對規範的遵從程度。這就是你需要注意的。