Re: [問題] 學習ruby只能邁向rail嗎?

作者: dragonyy (dragon)   2015-06-11 19:57:35
原文恕刪。提供一下經驗談。
寫了滿久的Ruby,雖然效能很糟(我是在做文字處理的),但是人的生產力很高,
所以拿來做產品的prototype(不限於網頁),或是將產品分成好幾個部分,處理
效能要求沒有那麼高的地方是很合適的。
另一方面,假如人的進用沒那麼容易的話,訓練一個合格的Ruby碼農成本其實是比
較低的(和Java比;和C++那就不用比了)。如果你考慮幫公司雇人的話,這也算是
一個考量點。
第三,如果你不用Rails,那麼在用MRI寫一段時間,嫌效能不好的時候,可以在幾乎
沒什麼改源碼的狀況下改用JRuby來執行你的程式,是強在沒有GIL,所以可以真的平
行處理。雖然Ruby的Thread控制還滿原始的,但是有人幫忙寫出 concurrent-ruby,
Celluloid, EventMachine 等等套件(都在Github上),實質上地幫助寫出好的多緒
程式,什麼Executors, Future, Actor Model 等等都已經有人幫忙做好了,最近試
用的結果是一直後悔為什麼不早點看到這些套件。
再來,寫程式大概都在「整合」,後端是什麼,有沒有對應的套件很重要。在我工作
上碰到的,不管是 Redis, MongoDB, MySQL/PostgreSQL, 甚至現在最依頼的
ElasticSearch (已改名叫做 Elastic),Ruby的相關套件都出得很快,回報有臭
蟲解的速度也快。至於XML, JSON, protobuf 等等資料格式,在嫌不夠快的時候就
已經有人用C, C++, Java(JRuby) 幫忙加速了,這是Ruby生態圈的一個很大的優點。
再來,如果你對「測試」有興趣,不管是單元測試、整合測試、非功能測試,Ruby
生態圈下的功夫很深,像RSpec, Cucumber這種測試用的專門套件都已發展得相當成
熟,就算只拿來研究都很有成就感,更別說開發產品的時候離不開它們了。
最後想提一點,如果是認真的開發Ruby程式的話,最有效率的方式是趕快學會、學
好一個 Ruby gem 要怎麼包起來,要怎麼用來符合開發程式的總體需求。你不一定
需要放在Github上,自用也是相當好用的。
目前在積極地學習Java,不過也只會用在某個效能瓶頸上而已,不會全部改寫。
希望這對於學Ruby的人有點幫助。不過還是建議有空的話要學一下Python啦,就
業市場上應該是有用的,哈哈。
作者: Neisseria (Neisseria)   2015-06-11 21:31:00
推大大的經驗談
作者: LaPass (LaPass)   2015-06-12 00:39:00
ruby連自己人都嫌效能差啊...
作者: dragonyy (dragon)   2015-06-12 08:28:00
New MacBook vs MacBook Pro, just like that
作者: david50407 (Davy)   2015-06-12 15:18:00
Ruby效能有在改善了,經驗推
作者: danny8376 (釣到一隻猴子@_@)   2015-06-12 17:54:00
當然嫌效能差啊 這點python也一樣啊XD 直譯語言常態www
作者: dragonyy (dragon)   2015-06-12 23:45:00
還有GIL,說起來難以見人啊
作者: mars90226 (火星人)   2015-06-13 11:38:00
到底甚麼時候MRI才要拿掉GIL阿QQ
作者: ireullin (raison detre)   2015-06-15 13:42:00
效能的好壞有一大部分來自於你程式的寫法而不是程式語言本身
作者: semicoma (後勤人力足 前進災區吧)   2015-06-16 17:13:00
根據xdite的說法 ruby夠好了 要做的是改善寫法

Links booklink

Contact Us: admin [ a t ] ucptt.com