我是一個完整的非程序員,他正在學習使用Ruby和Rails框架進行編程。我正在學習編程並選擇了Ruby。我應該升級到Ruby 1.9嗎?
我目前正在使用Ruby 1.8.7和Rails 3.0.3,但我想知道是否應該升級到Ruby 1.9,因爲我沒有任何「遺留」成本升級。
缺點是什麼?我是否會遇到一些常見問題的兼容性問題,甚至是其他問題,甚至我還不足以預測?
我是一個完整的非程序員,他正在學習使用Ruby和Rails框架進行編程。我正在學習編程並選擇了Ruby。我應該升級到Ruby 1.9嗎?
我目前正在使用Ruby 1.8.7和Rails 3.0.3,但我想知道是否應該升級到Ruby 1.9,因爲我沒有任何「遺留」成本升級。
缺點是什麼?我是否會遇到一些常見問題的兼容性問題,甚至是其他問題,甚至我還不足以預測?
你應該升級。不要緊貼1.8.7開始。如果你發現不支持1.9.2的寶石,避免它們(因爲它們很可能不被維護)。如果您對是否兼容1.9.2有任何疑問,可以查看:http://www.railsplugins.org/。如果您正在運行基於UNIX的系統,則可以使用http://rvm.beginrescueend.com/輕鬆升級。
Ruby-prof在1.9中有一些問題,我不會稱之爲一個無人維護的項目。 – 2011-03-16 23:24:48
@Andrew是的,我似乎記得SVN副本能夠在1.9以及幾個分支下編譯,但我確實看到他們在他們的GitHub頁面上有幾個未解決的問題。看起來像維護者應該修復的東西。 – 2011-03-16 23:33:11
您可能遇到一些兼容性問題,但最常見的寶石已移植到Ruby 1.9。如果我是你,我會堅持到1.8.7,特別是如果你正在學習。這樣你可以避免所有的困惑:「這是我的錯誤還是隻是紅寶石1.9不兼容」
順便說一句,如果你還沒有編程,我不認爲這是一個好主意,開始與軌道。先學習純ruby,在控制檯中實現一些算法,連接到沒有主動記錄的數據庫。我只是覺得用rails開始會隱藏太多的細節,當你最終缺乏基本的知識時,這會在你屁股後面踢你...
那麼只有1.9兼容的寶石呢?這似乎是避免升級的一個不好的理由,特別是考慮到1.9.2的改進超過1.8.7。 – 2011-03-16 18:36:49
我會同意你,如果它只是關於紅寶石或者如果布倫南有一些編程expierience ......我認爲他會做出足夠奇怪的錯誤,沒有兼容性問題;)但這只是我的意見 – 2011-03-16 18:42:57
我懷疑他'在開始時會碰到與寶石的兼容性問題。初學者很少尋找深奧/小生寶石,因爲他們的需求非常基礎。我在幾種Linux上運行1.9.2,加上Mac OS,只找到一個有問題的寶石。我用於企業和個人發展的其他一切都很好地工作了很長時間。 – 2011-03-16 18:55:15
對於初學者,Ruby 1.9具有卓越的性能,真正的線程和對不同字符編碼的支持。
很多事情都發生了變化,這會導致不兼容,但由於這對您來說不是問題,是的,您應該使用Ruby 1.9。
Ruby 1.9具有至關重要的新功能。例如,你可以在Ruby 1.9中編寫一個正則表達式,讓你找到平衡的括號。在紅寶石1.8中這很難做到。它也快得多。使用1.9也很方便;它在Array和Hash中有很多內置方法,你必須在1.8中自己寫。你不應該使用紅寶石1.8;使用紅寶石1.9。
是不是不可能檢查正則表達式中的平衡括號?我一直認爲這是正則表達式失敗的典型例子(即需要使用堆棧)。你有沒有在Ruby 1.9.2中做這個例子? – 2011-03-16 18:45:15
我沒有寫這是不可能的。我寫它很困難。請仔細閱讀我的評論。當我使用ruby1.8時,我實際上已經寫過。但是你不能用一個正則表達式來完成它。 – sawa 2011-03-16 18:49:37
@sawa你寫了'你可以寫一個正則表達式......讓你找到平衡的括號'。這在任何語言中都是不可能的。 – 2011-03-16 18:51:22
您應該升級。並不是因爲寶石(因爲在開始使用Rails之外的其他應用程序之前需要一些時間),也不是因爲1.9比1.8好(因爲它不是)。你應該升級,因爲在學習過程中,你將不可避免地碰到一些不適用於1.8的代碼(例如,這裏是SO),因爲1.9中引入了一些細微差別 - 簡單的例子是散列符號: {foo: 1, bar: 2}
(與傳統的{:foo => 1, :bar => 2}
相反)。
歡迎來到開發世界。這是一個永恆的謎題,但如果你喜歡精神上的挑戰,你會發現他們編寫代碼。 – 2011-03-16 18:56:50