深度探討JRuby 你會選擇嗎?
作為MRI之外的另一個Ruby實現,JRuby正受到越來越多的關注,日前JRuby團隊核心成員Charles Nutter接受了一個訪談,深度探討了很多JRuby相關的話題。
首先,JVM是一個相當成熟的VM,在內存管理、性能、安全性等方面都表現出色,而且覆蓋幾乎所有平臺,同時擁有多個持續(xù)維護的實現可供選擇。JRuby基于JVM之上,天生擁有很多優(yōu)勢。例如MRI上經常被提及的垃圾回收性能問題,REE通過GC補丁大幅提升了性能,而JRuby則可充分利用JVM的垃圾回收機制。
在JRuby中,我們能充分利用JVM在GC方面多年努力的結果。以Hotspot為例,這是通常我們用來測試的JVM,你有不止1個,而是5個可供選擇的垃圾回收器。根據應用程序行為(或者你需要的行為)的不同,這些垃圾回收器能協同工作。而且你還能對它們進行調整和監(jiān)控。
在多種Ruby實現中,JRuby的啟動時間相對較長,而且啟動后還要經過一段“預熱”,JRuby才能發(fā)揮其最佳性能。這對服務器端應用來說不算什么,可客戶端程序就不行了。Charles在其近期的博客中也提供了一些建議,幫助縮短啟動時間。好在情況正在不斷改觀,新版JVM發(fā)布后,JRuby的啟動速度將會得到進一步提升。
Java在企業(yè)級應用方面有著大量的經驗,借助JRuby,我們能夠更好地融合Ruby與Java,為開發(fā)者提供更好地工具及環(huán)境(例如Torquebox):
Torquebox和GlassFish都是很好的例子,通過一點Ruby技巧,如何賦予Java/JVM生態(tài)環(huán)境中最好的那些部分新的力量。無論選擇誰,你都將獲得一個簡單的一站式部署方案,其中包含了設計良好的服務API和管理工具。
JRuby自1.2 RC1開始就支持Android平臺,ruboto已能很好地在手機上提供irb功能。Android Scripting Environment也提供了JRuby支持。隨著Android 1.6和2.0的更新,無需任何修改就能在Android平臺上運行JRuby的日子也不會遠了。
雖然自去年11月JRuby 1.4發(fā)布后,很長一段時間都沒有發(fā)布新版本,但JRuby的社區(qū)正在不斷發(fā)展,相信2010年里,JRuby將會有更好地表現。作為讀者,您對JRuby的看法是什么?您會在項目中使用JRuby嗎?
【編輯推薦】