婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 編程界主流腳本編程語言的比較和選擇

編程界主流腳本編程語言的比較和選擇

熱門標簽:熱血傳奇沃瑪森林地圖標注 揭陽外呼系統公司 地圖標注植物名稱 福建ai電銷機器人加盟公司 鄭州中國移動400電話申請 去哪里辦卡 南召400電話辦理資費 無錫電銷機器人銷售 招聘信息 地圖標注審核工作怎么樣注冊

 過去這一年的時間里,我買了不少書,查了很多資料,可以算是認真的學習了幾種主流的腳本語言,因為我一直想搞一個好用的自動化工具,來方便我們的系統維護。雖然這個愿望還沒有達成,但是在這個過程中,還是學到了很多東西。今天下午,跟同事們聊天時,說到了腳本語言,這是比較難得的,也正好借這個契機,把我的一些看法說一說,有不妥和錯誤的地方,請大家多指正。

為什么選擇腳本語言

       為什么選擇腳本語言,可能每個人面對的實際情況都不一樣。語言本身沒有好壞之分,只有合適或者不合適。因此,我所謂的選擇主要是根據應用需要來選擇,并非根據語言的好壞或者使用者的習慣。就我自己的情況來說,很長一段時間里,如果需要程序來輔助完成工作時,我都會選擇Java。

       先簡單說說Java,Java是企業應用當之無愧的統治者。但是,近幾年隨著大家對開發語言認識的轉變,Java已經讓越來越多的人感到不滿,取而代之的是腳本語言的迅速崛起。一個例子是,Java 7在最初的功能規劃時,呼聲最高的是“閉包”,而“閉包”恰恰是腳本語言最具特色的功能之一。在使用諸如Java,C之類的語言時,我們不得不面對各種復雜的數據類型、設計模式和大量看起來沒用但又不能缺少的代碼。而對腳本語言來說,這些問題都是天生就不存在的。現在,開發講究敏捷,注重效率,對于一個企業來說,開發工作首先要考慮的就是成本,敏捷開發正是降低成本最有效的手段之一,而腳本語言,又是實現敏捷開發的一條可行之路。

       有人說Java已經out了,但我并不這么覺得,我個人認為Java仍然是最好的跨平臺方案。現在我們已經不能單純把Java看做一門語言,它已經成為一個事實上的平臺。構建在Java平臺之上的優秀的Java替代產品,也已經得到大家的廣泛支持和認可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于腳本語言。

       說了半天廢話,還是要回到我選擇腳本語言的話題上。我的初衷很簡單,我要找一個非Java平臺的,C語言的替代品。為什么?第一,Java不是萬能的,比如它做不了ICMP Ping;第二,C語言學習曲線過長,C程序的部署難度較高;第三,上述的腳本語言的所有優勢。

       本著以上幾個原則,我學了幾個流行的腳本語言,他們是:Perl、Python、Ruby,當然后來我也學習Java平臺上的腳本語言,如Jython(Python的Java實現)、JRuby(Ruby的java實現)、Groovy。下面我想就這幾個腳本語言,來做一個簡單的比較,希望大家在選擇腳本語言時,能有更多的參考。

腳本語言的比較

腳本語言的比較,可能比較凌亂,但我想側重以下幾個方面:學習曲線,語言本身的特色、跨平臺的能力、國際化的能力,以及它在應用領域的份額。

Unix/Linux Shell

        首選還是要提一提Unix/Linux Shell(包括awk、sed),它也是腳本語言,并且可能是我們日常使用最多的。我個人感覺,shell更適合做流程化的系統管理工作,而對于邏輯較為復雜的應用級產品,shell的開發和維護難度都相當高。帶有個人情感的說,shell的學習難度大于大多數主流腳本語言,這和它的語法特點,調試、運行環境等等都有關系。因此,日常流程化的系統管理工作,shell仍然是一個不錯的工具,除此之外,相信大家還有更好的選擇。

Python/Jython

       Python最大的魅力之一,就是簡單易學,一個新手可以短期內(有人說是十分鐘,我認為幾天是完全可能的)就寫出高質量并且實用的程序,它甚至被稱為非計算機專業人士學習編程的最好選擇。Python的功能強大,標準庫的豐富程度,估計連Java也望塵莫及。Python適合做系統管理,但這并不是說它不能做大型應用程序。Python應用的成功案例,已經數不勝數,尤其是在科學計算領域更是獨樹一幟。Python是一門優秀的面向對象語言,但更多的Python程序員,喜歡Python面向過程的部分。我個人感覺,Python的OO不如Ruby,因為不夠徹底,但這也正是Python支持者更愛它的地方。

        可惜的是,Python在企業應用領域沒能有更大的突破,近幾年更有被后起之秀Rails(Ruby的WEB框架)拋在身后的意思。但這并不說明Python在企業應用方面不成熟(豆瓣網是離我們最近的Python案例),如果有興趣,大家可以了解Python社區最具人氣的WEB框架Django,也可以去看看簡單到讓人難以置信的WEB框架webpy。Python在短短幾年內就成為六大主流開發語言之一,絕對不是蓋的!

       Jython是Python的Java實現,它是IBM WebSphere服務器官方指定的管理語言。我選擇jython是看重了jdbc訪問數據庫的便捷。但可惜的是,jython對中文支持非常不好,可能是python本身的復雜度較高,jython團隊的活躍度也比較低,總之Jython要走的路還很漫長,至少我認為當前版本,還不具備投入生產開發的能力。

Ruby/JRuby

       Ruby是腳本語言的后起之秀,它的成功要得益于殺手級框架Rails,Rails社區早就喊出了干掉Java的口號,雖然這種口號沒有什么實際意義,但Rails的確已經成為眼下最為炙手可熱的企業應用框架。我個人花了幾個月的時間學習Rails,雖然沒有實際的開發經驗,但Rails敏捷開發上的突出表現,的確是當仁不讓的,這也是它能迅速竄紅的主要原因吧。

       拋開Rails框架,還是來說Ruby。Ruby的語言特色是純面向對象,語法以魔幻著稱(它吸收了Perl、Python等腳本語言的大量優秀元素)。因此它的學習曲線要高于Python,但是學成以后可能會寫出非常優雅的代碼。美中不足是Ruby還年輕,它的標準庫還不夠豐富,成熟的第三方庫也相對較少,但這些情況會隨著時間的推進逐漸改變。

       Ruby完全可以勝任系統管理的需要,當然,如果開發WEB程序,Rails更是不二的選擇。

       JRuby是Ruby的Java實現,也是最早被Sun官方接收的Java平臺腳本語言(后來還有Jython)。JRuby與Ruby的兼容性非常高,團隊也非常活躍。如果想在Java平臺上使用腳本語言,除了Java原生的Groovy,我推薦JRuby,這也是我的選擇。

Perl
       提到Perl可能很多人會想到CGI,我個人可能更多的會聯想到文本處理,事實上,Perl設計之初的主要用途的確是在文本中提取信息。Perl像Python一樣,是目前最久經考驗,且成熟度最高的腳本語言之一,它有著大量的用戶群和忠實的粉絲,因此我說Perl的壞話就比較心虛一點:)

       坦白的說,我不太喜歡Perl,可能像大多數不喜歡Perl的人一樣,Perl語法讓人不太習慣,有人說Perl的語法丑陋,可能有些夸張,但這能說明一些問題。Perl社區至少也應該承認一點:Perl是一門比較難上手的語言。這并不是說,你短期內掌握不了Perl,而是你短期內寫不出真正像樣的東西。另外,Perl不是面向對象語言,當然,很多人并不看重這一點,但這并不是什么優點。

       Perl適合做系統管理,我覺得它跟shell很像。在其他應用領域,尤其是internet方面,

       Perl都有不俗的表現。Perl非常優秀,還是那句話,語言沒有好壞,只有合適不合適。

Groovy

       如果你正在為“熱愛Java平臺”和“厭惡Java語法”的事情糾結,Groovy可能就是最好的選擇。Groovy可以說是Java平臺的原生腳本語言,與Java完美結合,它本身不提供標準庫,完全使用Java的API庫。在Rails成功之后,Groovy社區也出現了Grails框架,用來抗衡Rails。Groovy本身也吸收了Ruby大量的經典語法,熱愛Java的人,可以選擇Groovy。

腳本語言的缺點和未來

      目前大家公認的,腳本語言的主要缺陷還是性能問題,當然這可能取決于很多因素,問題是有多少情況下,性能問題才是致命的。從EJB的崩潰,Spring的興起到Java遭受質疑,Rails取得成功,都說明,大家在面對不同規模的應用時,已經非常理智了。我相信能夠真正服務于我們的技術,才能有好的前景,腳本語言的明天是無限光明的!

標簽:鹽城 東莞 南昌 文山 黔南 宣城 景德鎮 桂林

巨人網絡通訊聲明:本文標題《編程界主流腳本編程語言的比較和選擇》,本文關鍵詞  編程,界,主流,腳本,編程語言,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《編程界主流腳本編程語言的比較和選擇》相關的同類信息!
  • 本頁收集關于編程界主流腳本編程語言的比較和選擇的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 西吉县| 夹江县| 任丘市| 包头市| 桓台县| 惠安县| 迁西县| 东乡| 峡江县| 方正县| 临潭县| 娄底市| 安西县| 同江市| 宜君县| 新津县| 蓝田县| 尤溪县| 额济纳旗| 深泽县| 奉化市| 邯郸市| 清远市| 朝阳市| 白朗县| 台湾省| 双柏县| 胶南市| 西青区| 禹州市| 泸定县| 治多县| 穆棱市| 墨玉县| 诏安县| 永春县| 西贡区| 延川县| 景泰县| 新宾| 循化|