當前位置:成語大全網 - 書法字典 - Ruby、Perl、Python和Lua的異同?

Ruby、Perl、Python和Lua的異同?

本文從RoR對Ruby的影響和Ruby的優勢兩個角度分析了Ruby比Python成功的原因。隨著RoR的流行,Ruby語言吸引了越來越多開發者的關註。作為腳本語言,Python的地位略顯尷尬。是什麽原因造成了這種情況?筆者認為有以下幾個方面:第壹,RoR對火的貢獻。我認為Ruby的成功很大程度上是由RoR推動的。幾年前,如果妳沒有聽說過RoR,這是可以理解的,但如果今天RoR對妳來說仍然是壹個陌生的詞,那麽妳就有點危險了。:)什麽是RoR?全名,RubyonRails,簡稱,RoR或者Rails。它是壹個全棧)的web應用框架,為開發者搭建壹個web應用提供了完整的基礎設施,並且嚴格按照MVC(模型-視圖-控制器)架構進行開發。RoR致力於提高開發者的開發效率,希望用盡可能少的代碼完成盡可能多的功能。基於這種考慮,RoR有兩大設計原則。首先,不要“trepea yourself);;第二,約定就是約定勝於配置。有了RoR,妳甚至可以用幾行簡單的命令行和代碼就完成壹個強大的web應用,大大提高了開發者的開發效率。RoR於2004年7月發布,在很短的時間內,就受到了眾多開發者的追捧。如今,RoR吸引了全世界開發者的目光,它給開發者帶來的效率是前所未有的。它帶來了業界對軟件開發的思考,也具有深遠的意義。在RoR大行其道的背景下,RubyonRails這種需要用Ruby開發的web框架,自然促進了Ruby語言的發展。在下面的“Ruby語言受關註的趨勢圖”中,可以清楚地看到,在2004年7月RoR發布之後,Ruby語言進入了壹個快速發展的時期。Ruby因為像RoR這樣的“殺手級”應用而變得繁榮。Python呢?在《談Python語言》壹文中,我們提到Python有豐富的API庫,在web開發方面,也有Django、Turbogears等壹些框架。在運行速度上,Python比Ruby快。就社區而言,Python比Ruby更成熟,但為什麽Python沒有產生像RoR這樣的“殺手級”應用呢?Python語言的創始人Guido在接受InfoQ采訪時是這樣解釋的:“我不喜歡KillerApplication,因為它會讓大多數人或社區集中在壹個地方。Python是壹門應用廣泛的語言,基於Python產生了很多有用的Web框架,比如Django。但是Python並沒有殺死應用,至少目前是這樣,而且我相信隨著Python社區的發展,自然會出現很多KillerApplication。我喜歡多樣化的應用。”由此可見,Python在發展道路上追求的是壹種平衡,壹種“大而全”。“會有很多殺手級應用自然出現”,這個我覺得需要拭目以待。就“平衡”而言,我認為是非常危險的。作為壹門腳本語言,試圖去做Java等傳統語言所做的事情是不可取的。以Java為例。web應用中可供選擇的框架太多了。是的,“在不同的場景下使用不同的框架”是個好主意。但是在實際應用中,有多少開發人員能夠根據項目的特點正確合理的選擇框架呢?與其最後不知道如何選擇,不如壹開始就為用戶做出選擇。作為Python的用戶,我希望看到Python的壹個“殺手級”應用出現,推動Python更快發展。妳可以說RoR制造了Ruby,但是Rails為什麽要選擇Ruby呢?!Ruby的優點是什麽?第二,Ruby的優勢是1。它比Perl更強大,比Python更面向對象。“比Perl更強大,比Python更面向對象”,這是Ruby創始人Matz設計Ruby的初衷。Python支持面向過程和面向對象的編程,而Ruby是完全面向對象的。在Ruby中,壹切都是對象,包括Python中的基本數據類型;每個過程或函數都是壹個方法。比如取-3的絕對值,Python中是這樣的:abs(-3)。在Ruby中是這樣的:-3.abs .這種OO方式更直觀。2.強大的語法功能Ruby在語法方面沒有Python那麽簡單。但是要解決壹些復雜的問題,Ruby強大的語法功能有助於降低問題的復雜度。例如,Ruby以“塊”的方式實現了列表中的條件和循環語句,比Python更靈活、更通用。Ruby有條件,循環語句等。類似於Lisp的徹底函數模式。Ruby的叠代器函數可以抽象出流程控制結構。3.強大的字符串處理和正則表達式函數Matz認為:Ruby >;(Smalltalk+Perl)/2 .Ruby類庫是對Perl語言函數的面向對象方式的重組,因為它借鑒了很多Perl的東西,使得字符串處理和正則表達式像Ruby壹樣強大。4.不會凍結的“膠水語言”也是“膠水語言”,Ruby比Python靈活。使用Python壹段時間後,妳會發現Python更依賴第三方的東西。相比之下,Ruby更加自力更生。例如,Ruby可以使用大部分的系統調用(UNIX的),而只有Ruby可以用於系統編程。如果妳有優勢,Ruby壹定會成功?Python也有很多優點!可以,要看當時的環境。第三,有必要回到RoR的崛起,在當前形勢下創造英雄。Ruby,1995 12正式發布,2000年進入美國;2004年7月,RoR正式獲釋。RoR的出場時間值得玩味。從下面的“Java語言關註度趨勢圖”可以看出,在2004年7月左右,Java處於相對的“衰退期”。說到爪哇,每個人都會想到J2EE。J2EE應用的廣泛實施是從1999和2000開始的,它帶來了事務管理等核心中間層概念的標準化,但由於其開發效率、學習難度和實際性能問題,在實踐中並不完全成功。作為J2EE的核心技術,EJB(2.x)壹直被詬病學習成本高、開發效率極低、資源消耗極高。在這樣的背景下,2003年,Spring框架誕生了。Spring的設計理念在於“讓J2EE開發更簡單”。這種設計思想在包括Java領域在內的許多軟件開發領域引起了廣泛關註。軟件開發人員開始思考如何讓開發往更簡單的方向發展。RoR的出現無疑順應了這壹趨勢。可以說,歷史選擇了RoR,當然還有魯比。僅僅遇到合適的機會是不夠的。俗話說“眾人拾柴火焰高”。第四,眾多明星支持的Ruby的出現,受到了Java和兩大主流平臺的大力追捧。網。2006年9月,孫聘請了CharlesNutter和ThomasEnebo,JRuby的主要開發者。不到壹年後,2007年6月,JRuby 14正式發布。SUN在其javaidentebeans 6.0m 10中集成了對Ruby/JRuby的支持。另壹方面,Python的Java實現Jython就沒那麽幸運了。至今未得到孫的支持。微軟在2007年7月推出了預覽版——IronRuby,它是Ruby的. NET實現。我相信,SUN和微軟對Ruby的競相推崇,必然會推動Ruby的進壹步發展。基於以上幾點,筆者認為Ruby的成功不是偶然的,並且相信這樣的成功會繼續下去。對於Python的未來,我們也拭目以待。