主流腳本編程語言大比拼 優(yōu)缺點(diǎn)_第1頁
主流腳本編程語言大比拼 優(yōu)缺點(diǎn)_第2頁
主流腳本編程語言大比拼 優(yōu)缺點(diǎn)_第3頁
主流腳本編程語言大比拼 優(yōu)缺點(diǎn)_第4頁
主流腳本編程語言大比拼 優(yōu)缺點(diǎn)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

為什么選擇腳本語言為什么選擇腳本語言,可能每個(gè)人面對的實(shí)際情況都不一樣。語言本身沒有好壞之分,只有合適或者不合適。因此,我所謂的選擇主要是根據(jù)應(yīng)用需要來選擇,并非根據(jù)語言的好壞或者使用者的習(xí)慣。就我自己的情況來說,很長一段時(shí)間里,如果需要程序來輔助完成工作時(shí),我都會選擇Java。先簡單說說Java,Java是企業(yè)應(yīng)用當(dāng)之無愧的統(tǒng)治者。但是,近幾年隨著大家對開發(fā)語言認(rèn)識的轉(zhuǎn)變,Java已經(jīng)讓越來越多的人感到不滿,取而代之的是腳本語言的迅速崛起。一個(gè)例子是,Java7在最初的功能規(guī)劃時(shí),呼聲最高的是“閉包”,而“閉包”恰恰是腳本語言最具特色的功能之一。在使用諸如Java,C之類的語言時(shí),我們不得不面對各種復(fù)雜的數(shù)據(jù)類型、設(shè)計(jì)模式和大量看起來沒用但又不能缺少的代碼。而對腳本語言來說,這些問題都是天生就不存在的?,F(xiàn)在,開發(fā)講究敏捷,注重效率,對于一個(gè)企業(yè)來說,開發(fā)工作首先要考慮的就是成本,敏捷開發(fā)正是降低成本最有效的手段之一,而腳本語言,又是實(shí)現(xiàn)敏捷開發(fā)的一條可行之路。有人說Java已經(jīng)out了,但我并不這么覺得,我個(gè)人認(rèn)為Java仍然是最好的跨平臺方案?,F(xiàn)在我們已經(jīng)不能單純把Java看做一門語言,它已經(jīng)成為一個(gè)事實(shí)上的平臺。構(gòu)建在Java平臺之上的優(yōu)秀的Java替代產(chǎn)品,也已經(jīng)得到大家的廣泛支持和認(rèn)可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于腳本語言。說了半天廢話,還是要回到我選擇腳本語言的話題上。我的初衷很簡單,我要找一個(gè)非Java平臺的,C語言的替代品。為什么?第一,Java不是萬能的,比如它做不了ICMPPing;第二,C語言學(xué)習(xí)曲線過長,C程序的部署難度較高;第三,上述的腳本語言的所有優(yōu)勢。本著以上幾個(gè)原則,我學(xué)了幾個(gè)流行的腳本語言,他們是:Perl、Python、Ruby,當(dāng)然后來我也學(xué)習(xí)Java平臺上的腳本語言,如Jython(Python的Java實(shí)現(xiàn))、JRuby(Ruby的java實(shí)現(xiàn))、Groovy。下面我想就這幾個(gè)腳本語言,來做一個(gè)簡單的比較,希望大家在選擇腳本語言時(shí),能有更多的參考。腳本語言的比較腳本語言的比較,可能比較凌亂,但我想側(cè)重以下幾個(gè)方面:學(xué)習(xí)曲線,語言本身的特色、跨平臺的能力、國際化的能力,以及它在應(yīng)用領(lǐng)域的份額。Unix/LinuxShell首選還是要提一提Unix/LinuxShell(包括awk、sed),它也是腳本語言,并且可能是我們?nèi)粘J褂米疃嗟?。我個(gè)人感覺,shell更適合做流程化的系統(tǒng)管理工作,而對于邏輯較為復(fù)雜的應(yīng)用級產(chǎn)品,shell的開發(fā)和維護(hù)難度都相當(dāng)高。帶有個(gè)人情感的說,shell的學(xué)習(xí)難度大于大多數(shù)主流腳本語言,這和它的語法特點(diǎn),調(diào)試、運(yùn)行環(huán)境等等都有關(guān)系。因此,日常流程化的系統(tǒng)管理工作,shell仍然是一個(gè)不錯(cuò)的工具,除此之外,相信大家還有更好的選擇。

Python/JythonPython最大的魅力之一,就是簡單易學(xué),一個(gè)新手可以短期內(nèi)(有人說是十分鐘,我認(rèn)為幾天是完全可能的)就寫出高質(zhì)量并且實(shí)用的程序,它甚至被稱為非計(jì)算機(jī)專業(yè)人士學(xué)習(xí)編程的最好選擇°Python的功能強(qiáng)大,標(biāo)準(zhǔn)庫的豐富程度,估計(jì)連Java也望塵莫及°Python適合做系統(tǒng)管理,但這并不是說它不能做大型應(yīng)用程序。Python應(yīng)用的成功案例,已經(jīng)數(shù)不勝數(shù),尤其是在科學(xué)計(jì)算領(lǐng)域更是獨(dú)樹一幟。Python是一門優(yōu)秀的面向?qū)ο笳Z言,但更多的Python程序員,喜歡Python面向過程的部分。我個(gè)人感覺,Python的OO不如Ruby,因?yàn)椴粔驈氐?,但這也正是Python支持者更愛它的地方??上У氖?,Python在企業(yè)應(yīng)用領(lǐng)域沒能有更大的突破,近幾年更有被后起之秀Rails(Ruby的WEB框架)拋在身后的意思。但這并不說明Python在企業(yè)應(yīng)用方面不成熟(豆瓣網(wǎng)是離我們最近的Python案例),如果有興趣,大家可以了解Python社區(qū)最具人氣的WEB框架Django,也可以去看看簡單到讓人難以置信的WEB框架webpy。Python在短短幾年內(nèi)就成為六大主流開發(fā)語言之一,絕對不是蓋的!Jython是Python的Java實(shí)現(xiàn),它是IBMWebSphere服務(wù)器官方指定的管理語言。我選擇jython是看重了jdbc訪問數(shù)據(jù)庫的便捷。但可惜的是,jython對中文支持非常不好,可能是python本身的復(fù)雜度較高,jython團(tuán)隊(duì)的活躍度也比較低,總之Jython要走的路還很漫長,至少我認(rèn)為當(dāng)前版本,還不具備投入生產(chǎn)開發(fā)的能力。Ruby/JRubyRuby是腳本語言的后起之秀,它的成功要得益于殺手級框架Rails,Rails社區(qū)早就喊出了干掉Java的口號,雖然這種口號沒有什么實(shí)際意義,但Rails的確已經(jīng)成為眼下最為炙手可熱的企業(yè)應(yīng)用框架。我個(gè)人花了幾個(gè)月的時(shí)間學(xué)習(xí)Rails,雖然沒有實(shí)際的開發(fā)經(jīng)驗(yàn),但Rails敏捷開發(fā)上的突出表現(xiàn),的確是當(dāng)仁不讓的,這也是它能迅速竄紅的主要原因吧。拋開Rails框架,還是來說Ruby。Ruby的語言特色是純面向?qū)ο?,語法以魔幻著稱(它吸收了Perl、Python等腳本語言的大量優(yōu)秀元素)。因此它的學(xué)習(xí)曲線要高于Python,但是學(xué)成以后可能會寫出非常優(yōu)雅的代碼。美中不足是Ruby還年輕,它的標(biāo)準(zhǔn)庫還不夠豐富,成熟的第三方庫也相對較少,但這些情況會隨著時(shí)間的推進(jìn)逐漸改變。Ruby完全可以勝任系統(tǒng)管理的需要,當(dāng)然,如果開發(fā)WEB程序,Rails更是不二的選擇。JRuby是Ruby的Java實(shí)現(xiàn),也是最早被Sun官方接收的Java平臺腳本語言(后來還有Jython)。JRuby與Ruby的兼容性非常高,團(tuán)隊(duì)也非?;钴S。如果想在Java平臺上使用腳本語言,除了Java原生的Groovy,我推薦JRuby,這也是我的選擇。Perl提到Perl可能很多人會想到CGI,我個(gè)人可能更多的會聯(lián)想到文本處理,事實(shí)上,Perl設(shè)計(jì)之初的主要用途的確是在文本中提取信息。Perl像Python一樣,是目前最久經(jīng)考驗(yàn),且成熟度最高的腳本語言之一,它有著大量的用戶群和忠實(shí)的粉絲,因此我說Perl的壞話就比較心虛一點(diǎn):)

坦白的說,我不太喜歡Perl,可能像大多數(shù)不喜歡Perl的人一樣,Perl語法讓人不太習(xí)慣,有人說Perl的語法丑陋,可能有些夸張,但這能說明一些問題。Perl社區(qū)至少也應(yīng)該承認(rèn)一點(diǎn):Perl是一門比較難上手的語言。這并不是說,你短期內(nèi)掌握不了Perl,而是你短期內(nèi)寫不出真正像樣的東西。另夕卜,Perl不是面向?qū)ο笳Z言,當(dāng)然,很多人并不看重這一點(diǎn),但這并不是什么優(yōu)點(diǎn)。Perl適合做系統(tǒng)管理,我覺得它跟shell很像。在其他應(yīng)用領(lǐng)域,尤其是internet方面,Perl都有不俗的表現(xiàn)。Perl非常優(yōu)秀,還是那句話,語言沒有好壞,只有合適不合適。Groovy如果你正在為“熱愛Java平臺”和“厭惡Java語法”的事情糾結(jié),Groovy可能就是最好的選擇。Groovy可以說是Java平臺的原生腳本語言,與Java完美結(jié)合,它本身不提供標(biāo)準(zhǔn)庫,完全使用Java的API庫。在Rails成功之后,Groovy社區(qū)也出現(xiàn)了Grails框架,用來抗衡RailsoGroovy本身也吸收了Ruby大量的經(jīng)典語法,熱愛Java的人,可以選擇Groovy。腳本語言的缺點(diǎn)和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論