Ruby的概念
Ruby,一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在20世紀90年代由日本人松本行弘(YukihiroMatsumoto)開發,遵守GPL協議和RubyLicense。它的靈感與特性來自于Perl、Smalltalk、Eiffel、Ada以及Lisp語言。由Ruby語言本身還發展出了JRuby(Java平臺)、IronRuby(.NET平臺)等其他平臺的Ruby語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發布于fj(新聞組)。因為Perl發音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
Ruby語言特點
完全面向對象
在Ruby語言中,任何東西都是對象,包括其他語言中的基本數據類型,比如整數
變量沒有類型
Ruby的變量可以保存任何類型的數據。
任何東西都有值
不管是數學或者邏輯表達式還是一個語句,都會有值。
ruby語言很優雅,可以做到不需要注釋就可以讀懂。
Ruby的優點
語法簡單
普通的面向對象功能(類,方法調用等)
特殊的面向對象功能(Mixin,特殊方法等)
操作符重載
錯誤處理功能
迭代器和閉包
垃圾回收
動態載入(取決于系統架構)
可移植性高。不僅可以運行在多數UNIX上,還可以運行在DOS,Windows,Mac,BeOS等平臺上
適合于快速開發,一般開發效率是JAVA的5倍。
ruby發展前景分析
1、Ruby語言的虛擬化
這里所談及的虛擬機是特指程序虛擬機,即程序的虛擬運行環境,或者更確切地說,是在編譯器和運行層面的語言虛擬機。
一門計算機語言要能夠為企業所采用,其性能和速度是重要的因素。虛擬機就是解決這個問題的重要而實質的方法之一。
當前虛擬機正在從單一語言虛擬機向多語言虛擬機方向發展。例如,Java語言虛擬機已經從Java語言變成為多種語言共享的虛擬機。我們知道,JRuby語言是可以運行在該虛擬機上,另外Jython也在實現利用該虛擬機。又如Parrot是一款最成熟的面向動態語言的虛擬機。盡管該虛擬機是為Perl語言所設計的,但是它也是可以成為Ruby語言的虛擬機。盡管這是一種發展趨勢,但是作者認為,單一語言虛擬機的性能應該會更好。據悉,Ruby2.0可能會采用自己的單一語言虛擬機Rite。
盡管至今CRuby還沒有出現自己的虛擬機,但是Ruby語言虛擬機的商業需求是明顯的。這也是JRuby語言實現的目的之一。除了JRuby有自己的虛擬機外,Ruby語言的虛擬機也在不斷的出現,比如基于Smalltalk-80語言的Ruby語言虛擬機Shotgun。從該網站的主頁上可以看出,Shotgun的目標是十分明確的,就是為商業服務。它能夠支持運行編譯代碼,這樣就可以支持代碼的加密工作,以有效地保護軟件的知識產權問題,這是商業應用中的頭等大事。此外它的解釋器內核更簡單和更容易維護,既節省人力、物力又節省時間。尤其需要值得注意的是,Ruby語言虛擬機提供性能不是以硬件為代價的,而是以軟件本身的實現為前提的,這種實現的潛力還在不斷增加。
隨著Ruby語言虛擬機的不斷創新,可以肯定Ruby語言及其框架的應用軟件將會更加豐富。在其它Ruby語言虛擬機還尚未出現之前,JRuby語言將會借助于Java語言的力量和當前越來越多的多核電腦性能成為一種不可忽視的選擇。
2、Ruby語言的實現多元化
隨著Ruby語言的實現越來越多,Ruby語言一詞的概念也在發生著變化。在2000年或者再晚一些,Ruby語言一般都是指以C語言實現的官方版本Ruby,但是現在Ruby語言正在變成為一個通用的概念,或者說是該語言的技術規范。
我們可以從三個方面來分析Ruby語言的實現。一是面向CRuby的兼容性的實現;二是以Ruby語言風格的不兼容的實現,三是以Ruby語言為基礎的特定領域語言的實現。
下面我們列舉了一些重要的面向CRuby的兼容性的Ruby語言實現:
以C語言實現的Ruby語言=Ruby或者CRuby(非正式名稱)
以Java語言實現的Ruby語言=JRuby(由Sun公司出資所贊助)
以基于Smalltalk-80架構采用C語言實現的Ruby語言=Rubinius(由EnginYard公司出資所贊助的,該公司聚集大量Ruby語言高手)
以Objective-C語言實現的Ruby語言=MacRuby(由Apple公司出資所贊助的)
在上述的列舉中,除了官方版本Ruby之外,其它的實現都是由大公司出資所贊助的,大公司為什么要出資贊助這些開源的項目呢?其中的玄妙不得而知。但是,可以肯定的是他們對Ruby語言的發展前景的認可。
Ruby語言的實現多元化,應當說是Ruby語言發展過程中百花齊放的結果,這是好事。但由此可能帶來的問題是,Ruby語言的實現之間的兼容問題,就如Linux的發展過程。
Ruby一直到今天仍然是最重要的Ruby語言的實現,隨著項目YARV合并到Ruby,使得Ruby的性能得到一次比較大的飛躍,這個合并的結果就是已經發行的開發版本Ruby1.9。當JRuby語言的實現得到進一步完善時,與Ruby之間的兼容性問題將變得越來越明顯,盡管雙方之間在溝通和協調,但是兩者實現之間的不兼容性是始終存在的,比如線程問題,哪怕即使是一個小小的命令也存在著差異。而且從根本上說,所謂兼容也只是單向的,即JRuby兼容CRuby,反之則不然。這種情況本身就是一種相互之間的脫離。不兼容性給企業和開發人員帶來了巨大的麻煩和阻礙。
隨著以非兼容性的、Ruby語言風格的語言出現,也會沖擊和影響著Ruby語言的發展。如Sapphire語言,該語言聲稱,它具有Ruby語言語法風格并且更為簡單。它的最重要的設計思想是一致的、明確的和深度面向對象的。這門新興的似Ruby語言,盡管目前該語言本身的影響力很小,但它的出現至少是給了我們一種新的思維和啟示。
以Ruby語言實現的特定領域語言DSL(DomainSpecificLanguages),是Ruby語言的一個最重要的特性。它使得Ruby語言的應用更加廣泛而深入,在Rails框架中涌現出大量的DSL,這也是Rails成功的原因之一。模板系統Malline能夠使得代碼變得更為容易維護和管理,而且在代碼開發中可以只需要會Ruby語言就可以開發網絡的頁面,而不需要理會其它語言如HTML。還有基于桌面布局語言LEL能夠使得桌面軟件開發變得更加簡單和方便。
總而言之,Ruby語言的實現多元化是Ruby語言的發展的必然,我們只有打破框框才能尋找到Ruby語言的最佳實現,只有最佳才能帶來最大的回報,而Ruby語言的目前的發展方向正是沿著這條道路在前進。
-
ruby
+關注
關注
0文章
44瀏覽量
3643
發布評論請先 登錄
龍芯與Ruby的神奇之旅
嵌入式前景到底怎么樣?
Python和Ruby優缺點
Linux平臺的Ruby on Rails安裝配置
RockPi-S Ruby-HAT擴展板資料分享
SU RUBy控制臺如何使用?SU RUBy控制臺的一個應用實例說明
ruby中的類、單體、私有、protected的實例使用方法程序說明
ruby教程之學習ruby的實例詳細資料免費下載
Ruby編程語言PDF電子書免費下載
Ruby 3將于今年圣誕節發布,設計者松本行弘分享Ruby 3的部分細節

松本:今年Ruby 3真的要來了
Ruby HAT Radxa RockPi S的擴展板開源

慢的不是Ruby,而是你的數據庫

評論