0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

ruby到底前景怎么樣_ruby前景分析

姚小熊27 ? 來源:網(wǎng)絡整理 ? 2018-03-07 18:46 ? 次閱讀

Ruby的概念

Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O計)腳本語言,在20世紀90年代由日本人松本行弘(YukihiroMatsumoto)開發(fā),遵守GPL協(xié)議和RubyLicense。它的靈感與特性來自于Perl、Smalltalk、Eiffel、Ada以及Lisp語言。由Ruby語言本身還發(fā)展出了JRuby(Java平臺)、IronRuby(.NET平臺)等其他平臺的Ruby語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發(fā)布于fj(新聞組)。因為Perl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。

Ruby語言特點

完全面向?qū)ο?/p>

在Ruby語言中,任何東西都是對象,包括其他語言中的基本數(shù)據(jù)類型,比如整數(shù)

變量沒有類型

Ruby的變量可以保存任何類型的數(shù)據(jù)。

任何東西都有值

不管是數(shù)學或者邏輯表達式還是一個語句,都會有值。

ruby語言很優(yōu)雅,可以做到不需要注釋就可以讀懂。

Ruby的優(yōu)點

語法簡單

普通的面向?qū)ο蠊δ埽?,方法調(diào)用等)

特殊的面向?qū)ο蠊δ埽∕ixin,特殊方法等)

操作符重載

錯誤處理功能

迭代器和閉包

垃圾回收

動態(tài)載入(取決于系統(tǒng)架構(gòu))

可移植性高。不僅可以運行在多數(shù)UNIX上,還可以運行在DOS,Windows,Mac,BeOS等平臺上

適合于快速開發(fā),一般開發(fā)效率是JAVA的5倍。

ruby發(fā)展前景分析

1、Ruby語言的虛擬化

這里所談及的虛擬機是特指程序虛擬機,即程序的虛擬運行環(huán)境,或者更確切地說,是在編譯器和運行層面的語言虛擬機。

一門計算機語言要能夠為企業(yè)所采用,其性能和速度是重要的因素。虛擬機就是解決這個問題的重要而實質(zhì)的方法之一。

當前虛擬機正在從單一語言虛擬機向多語言虛擬機方向發(fā)展。例如,Java語言虛擬機已經(jīng)從Java語言變成為多種語言共享的虛擬機。我們知道,JRuby語言是可以運行在該虛擬機上,另外Jython也在實現(xiàn)利用該虛擬機。又如Parrot是一款最成熟的面向動態(tài)語言的虛擬機。盡管該虛擬機是為Perl語言所設計的,但是它也是可以成為Ruby語言的虛擬機。盡管這是一種發(fā)展趨勢,但是作者認為,單一語言虛擬機的性能應該會更好。據(jù)悉,Ruby2.0可能會采用自己的單一語言虛擬機Rite。

盡管至今CRuby還沒有出現(xiàn)自己的虛擬機,但是Ruby語言虛擬機的商業(yè)需求是明顯的。這也是JRuby語言實現(xiàn)的目的之一。除了JRuby有自己的虛擬機外,Ruby語言的虛擬機也在不斷的出現(xiàn),比如基于Smalltalk-80語言的Ruby語言虛擬機Shotgun。從該網(wǎng)站的主頁上可以看出,Shotgun的目標是十分明確的,就是為商業(yè)服務。它能夠支持運行編譯代碼,這樣就可以支持代碼的加密工作,以有效地保護軟件的知識產(chǎn)權(quán)問題,這是商業(yè)應用中的頭等大事。此外它的解釋器內(nèi)核更簡單和更容易維護,既節(jié)省人力、物力又節(jié)省時間。尤其需要值得注意的是,Ruby語言虛擬機提供性能不是以硬件為代價的,而是以軟件本身的實現(xiàn)為前提的,這種實現(xiàn)的潛力還在不斷增加。

隨著Ruby語言虛擬機的不斷創(chuàng)新,可以肯定Ruby語言及其框架的應用軟件將會更加豐富。在其它Ruby語言虛擬機還尚未出現(xiàn)之前,JRuby語言將會借助于Java語言的力量和當前越來越多的多核電腦性能成為一種不可忽視的選擇。

2、Ruby語言的實現(xiàn)多元化

隨著Ruby語言的實現(xiàn)越來越多,Ruby語言一詞的概念也在發(fā)生著變化。在2000年或者再晚一些,Ruby語言一般都是指以C語言實現(xiàn)的官方版本Ruby,但是現(xiàn)在Ruby語言正在變成為一個通用的概念,或者說是該語言的技術(shù)規(guī)范。

我們可以從三個方面來分析Ruby語言的實現(xiàn)。一是面向CRuby的兼容性的實現(xiàn);二是以Ruby語言風格的不兼容的實現(xiàn),三是以Ruby語言為基礎的特定領域語言的實現(xiàn)。

下面我們列舉了一些重要的面向CRuby的兼容性的Ruby語言實現(xiàn):

以C語言實現(xiàn)的Ruby語言=Ruby或者CRuby(非正式名稱)

以Java語言實現(xiàn)的Ruby語言=JRuby(由Sun公司出資所贊助)

以基于Smalltalk-80架構(gòu)采用C語言實現(xiàn)的Ruby語言=Rubinius(由EnginYard公司出資所贊助的,該公司聚集大量Ruby語言高手)

以Objective-C語言實現(xiàn)的Ruby語言=MacRuby(由Apple公司出資所贊助的)

在上述的列舉中,除了官方版本Ruby之外,其它的實現(xiàn)都是由大公司出資所贊助的,大公司為什么要出資贊助這些開源的項目呢?其中的玄妙不得而知。但是,可以肯定的是他們對Ruby語言的發(fā)展前景的認可。

Ruby語言的實現(xiàn)多元化,應當說是Ruby語言發(fā)展過程中百花齊放的結(jié)果,這是好事。但由此可能帶來的問題是,Ruby語言的實現(xiàn)之間的兼容問題,就如Linux的發(fā)展過程。

Ruby一直到今天仍然是最重要的Ruby語言的實現(xiàn),隨著項目YARV合并到Ruby,使得Ruby的性能得到一次比較大的飛躍,這個合并的結(jié)果就是已經(jīng)發(fā)行的開發(fā)版本Ruby1.9。當JRuby語言的實現(xiàn)得到進一步完善時,與Ruby之間的兼容性問題將變得越來越明顯,盡管雙方之間在溝通和協(xié)調(diào),但是兩者實現(xiàn)之間的不兼容性是始終存在的,比如線程問題,哪怕即使是一個小小的命令也存在著差異。而且從根本上說,所謂兼容也只是單向的,即JRuby兼容CRuby,反之則不然。這種情況本身就是一種相互之間的脫離。不兼容性給企業(yè)和開發(fā)人員帶來了巨大的麻煩和阻礙。

隨著以非兼容性的、Ruby語言風格的語言出現(xiàn),也會沖擊和影響著Ruby語言的發(fā)展。如Sapphire語言,該語言聲稱,它具有Ruby語言語法風格并且更為簡單。它的最重要的設計思想是一致的、明確的和深度面向?qū)ο蟮摹_@門新興的似Ruby語言,盡管目前該語言本身的影響力很小,但它的出現(xiàn)至少是給了我們一種新的思維和啟示。

以Ruby語言實現(xiàn)的特定領域語言DSL(DomainSpecificLanguages),是Ruby語言的一個最重要的特性。它使得Ruby語言的應用更加廣泛而深入,在Rails框架中涌現(xiàn)出大量的DSL,這也是Rails成功的原因之一。模板系統(tǒng)Malline能夠使得代碼變得更為容易維護和管理,而且在代碼開發(fā)中可以只需要會Ruby語言就可以開發(fā)網(wǎng)絡的頁面,而不需要理會其它語言如HTML。還有基于桌面布局語言LEL能夠使得桌面軟件開發(fā)變得更加簡單和方便。

總而言之,Ruby語言的實現(xiàn)多元化是Ruby語言的發(fā)展的必然,我們只有打破框框才能尋找到Ruby語言的最佳實現(xiàn),只有最佳才能帶來最大的回報,而Ruby語言的目前的發(fā)展方向正是沿著這條道路在前進。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ruby
    +關注

    關注

    0

    文章

    44

    瀏覽量

    3624
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ruby學習

    學習ruby基礎,看看吧!?。。。。。。。。。。。。。。?!
    發(fā)表于 08-29 22:44

    龍芯與Ruby的神奇之旅

    `Ruby形象標識對于這樣一個使用廣泛的語言,龍芯平臺能不能方便的支持呢?今天我們就從頭開始搭建Ruby的環(huán)境,試驗一下龍芯電腦好不好用。2016年1月TIOBE編程語言排行榜二、龍芯3B機器亮相
    發(fā)表于 05-03 14:06

    嵌入式前景到底怎么?

    嵌入式前景到底怎么?是很多想要從事嵌入式行業(yè)的人有的疑問?而作為未出校門的大學生們來講,嵌入式就如同一個全新未知的領域,充滿著迷茫與疑惑?那么嵌入式行業(yè)到底發(fā)展怎么
    發(fā)表于 01-08 14:56

    Python和Ruby優(yōu)缺點

    了世界上最大的和最受歡迎的項目。對于Python和Ruby編程的使用,要根據(jù)其特點進行選擇,就其發(fā)展和就業(yè)前景而言,Python相對更好,對于想從事IT編程的人員來說,是一個好選擇!
    發(fā)表于 05-14 17:15

    Linux平臺的Ruby on Rails安裝配置

    ruby on rails推薦的生產(chǎn)運行環(huán)境是Linux/FreeBSD/Unix,即Unix系列的操作系統(tǒng),采用lighttpd+FCGI的解決方案。以下我將以Linux操作系統(tǒng),lighttpd+FCGI,MySQL數(shù)據(jù)庫為例,從源代碼編譯安裝開始講解。
    發(fā)表于 07-26 07:57

    RockPi-S Ruby-HAT擴展板資料分享

    描述RockPi-S Ruby-HAT項目描述Ruby-HAT 是 Radxa RockPi-S的擴展板。它的設計旨在與 RockPi-S 一起裝入緊湊的體積中。眼鏡Ruby-HAT 由以下外圍設備
    發(fā)表于 08-04 06:14

    SU RUBy控制臺如何使用?SU RUBy控制臺的一個應用實例說明

    本文檔的主要內(nèi)容詳細介紹的是SU RUBy控制臺如何使用?SU RUBy控制臺的一個應用實例說明。
    發(fā)表于 09-27 16:04 ?0次下載

    ruby中的類、單體、私有、protected的實例使用方法程序說明

    Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性
    發(fā)表于 09-27 16:04 ?0次下載

    ruby教程之學習ruby的實例詳細資料免費下載

    Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性
    發(fā)表于 10-30 18:30 ?5次下載

    Ruby編程語言PDF電子書免費下載

    Ruby編程語言》詳細介紹了Ruby 1.8和1.9版本各方面的內(nèi)容。在對Ruby進行了簡要的綜述之后,《Ruby編程語言》詳細介紹了以下內(nèi)容:R
    發(fā)表于 06-12 08:00 ?0次下載

    Ruby 3將于今年圣誕節(jié)發(fā)布,設計者松本行弘分享Ruby 3的部分細節(jié)

    Ruby 編程語言的創(chuàng)建者和首席設計師 Yukihiro Matsumoto(松本行弘)近期在某演講中分享了 Ruby 3 的一些情況。
    的頭像 發(fā)表于 09-07 09:54 ?1568次閱讀
    <b class='flag-5'>Ruby</b> 3將于今年圣誕節(jié)發(fā)布,設計者松本行弘分享<b class='flag-5'>Ruby</b> 3的部分細節(jié)

    松本:今年Ruby 3真的要來了

    設計一款編程語言有多難?Ruby 創(chuàng)始人揭秘 最近,Ruby編程語言的創(chuàng)始人兼主設計師、云平臺即服務公司Heroku的Ruby首席架構(gòu)師松本行弘在一次演講中表示,由松本行弘領導的Ruby
    的頭像 發(fā)表于 09-15 15:43 ?1785次閱讀

    Ruby HAT Radxa RockPi S的擴展板開源

    電子發(fā)燒友網(wǎng)站提供《Ruby HAT Radxa RockPi S的擴展板開源.zip》資料免費下載
    發(fā)表于 08-24 10:13 ?0次下載
    <b class='flag-5'>Ruby</b> HAT Radxa RockPi S的擴展板開源

    慢的不是Ruby,而是你的數(shù)據(jù)庫

    為了進行對比,我嘗試用 Rust 和 Ruby 創(chuàng)建了一個內(nèi)部盡可能相似的版本。結(jié)果令人失望,Ruby 和 Rust 的性能都很差勁,甚至存在一些錯誤,而且都沒有進行性能優(yōu)化。我確信 Ruby
    的頭像 發(fā)表于 10-10 16:10 ?619次閱讀
    慢的不是<b class='flag-5'>Ruby</b>,而是你的數(shù)據(jù)庫

    Ruby 與 Python之間的差異

    Ruby 與 Python 之間的差異在很大程度上可通過 for 循環(huán)看出本質(zhì)。 Python 擁有 for 語句。對象告訴 for 如何進行協(xié)作,而 for 的循環(huán)體會處理對象返回的內(nèi)容
    的頭像 發(fā)表于 10-30 11:50 ?806次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品