熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Groovy: 沉睡的巨人

2013-11-23 19:13:41  來源: Java核心技術 

  像Ruby Python 甚至Java/ECMAScript這樣的動態編程語言正在受到創新開發者們的親睐這種趨勢已變得很明顯Ruby on Rails為提高Ruby編程語言做出了很大貢獻 Ajax 正將更多的興趣集中在JavaScript 上Python 盡管還沒有找到它的發展方向 但它現在也在受到更多的關注動態編程語言的時代即將到來我的意思是當動態編程語言成為一種標准而不是異類例外)的時代即將到來

  在今後的五年當中絕大多數機構將在一些企業開發中運用動態語言程序當然不是說在所有的開發中都會用到因為對於傳統編程語言的需求總是存在的傳統編程語言可以讓你在編譯時就發現(程序)錯誤而不是在運行時才發現但是動態語言擺脫被稱為危險物玩具的日子指日可待

  當創新開發者蜂擁向像Ruby這樣的動態語言程序時主流的開發群體卻不太傾向於采用這種語言程序這是因為兩個原因FUD和生產率恐懼(Fear)不確定(Uncertainty)及懷疑(Doubt)即FUD 不斷得阻礙著開發者試圖體驗和使用動態語言程序的行動聽到人們說動態語言程序是玩具並且有危險的話也是稀松平常的事但我所發現的是說這些話的人通常都很少有或根本沒有使用過動態程序語言的經歷FUD的出現通常只是因為無知然而對於動態程序語言為什麼沒有被大眾采用還有一個更實際的原因就是生產率學習一個新的編程語言平台可不是一件輕松的事雖然學習一種語言的語法不是很難但學習一整個新的程序庫卻是一項巨大的工程例如Java 程序師花在學習如何使用標准enterprise 專利權及打開APIs (應用編程接口)的時間要比花在學習語法上的時間比例大很多事實上 依我看這種時間的比例在第一年可能是:而在往後會是:

  如果你花費了所有腦力去學習如何合理的使用Java 程序包以及APIs(而不是學習語法)那麼丟掉以前所學的一切而去學習一個全新平台的想法可能……似乎……有點愚蠢或者更准確一點說在這個全新平台的優勢不是很明顯的時候這種選擇是不實際的從本質上來講這種選擇會使一個java 開發者所了解的有關訪問數據庫控制信息串輸入及輸出等一切知識變得毫無用處另外新平台的生態系統也沒有Java的堅固

  對於主流Java 開發者來說把平台改為Ruby 那樣的看起來似乎不是很理想不要誤解我的意思我不是說Ruby不好我也是Ruby 的一個忠實粉絲 但是將Java 平台與 Ruby 平台做個很真實的對比就會看到Ruby確實有所欠缺Ruby 生態系統的規模以及APIs(庫)的數量與Java 平台相比較顯然遜色不少全世界大概有萬或更多的Java開發者而如果Ruby開發者的數量能超過萬我都會感到很驚訝大概僅有萬人每天在生產代碼中用到Ruby程序當然這僅僅是一種推測ruby開發者的真實數量也許會與推測的有所出入但是很少有人會說ruby 開發團體的規模能與Java開發團體的規模相比

  動態程序語言(如RubyPython JavaScript)總體來說要比傳統的編程語言多產(效率高)在我為期三年的研究中我總是發現開發者在同一環境中使用動態語言要比使用傳統語言多產近這也就是說一旦你能熟練操作一種動態語言那你在產量和維護方面會有巨大收益只要是清潔代碼那麼代碼越少越容易維護少量的清晰的代碼更容易維護

  因此這就創造了類似於條軍規一樣的東西(So this creates a Catch of sorts)雖然動態編程語言相比而言更多產(更高效)但是學習一種新的平台要花費開發者很多時間事實上就短期內而言轉而學習Python或是Ruby是很不劃算的(學習它們花費的時間要比要比因為它們高效而節約的時間多很多)另外真的沒有一種動態語言有與java一樣的生態系統及基礎結構因此要采用動態語言程序就要接受資源工具及技術人員數量較少的狀況

  因此解決這個問題的方案似乎是找到一種以Java 開發團體已熟知的平台為基礎的動態語言雖然很多動態語言是為java平台而創造其中包括Jython JRuby BeanShell Pnut 還有其它一些動態語言但我堅信groovy是其中最有潛力的動態編程語言我這麼說最主要的原因是groovy在java團體中正在被標准化雖然標准化從來都不是衡量質量的量度器但無奈的事實是技術不是僅靠著自身的優點而取勝的(也就說還要符合一定標准)不難理解企業都會認為采用一種通過了標准化過程(類似於JSE 和 JEE標准化的過程)的語言要比采用沒有標准化的語言舒心的多不管是對是錯 權威們決定將標准化作為接受和使用一種技術的前提

  除了正在被標准化Groovy 還有一個作為動態語言的優點即從它被創造之初就考慮到了java開發者們它保留了很多為Java開發者所熟知的語法和語義同時又具備了動態語言的特征如動態鍵入mixins 以及閉包正是這些特征使得動態語言比傳統語言更多產(更有效率)還有最後一點就是你現在所用的所有Java APIs 在Grooy中可以用完全相同的方式被使用Groovy可以匯編成字節代碼因此任何你能夠在java中輸入和訪問的字節代碼同樣也能在Groovy中輸入和訪問

  Groovy 標准化(JSR )是在三年前開始的而現在正在取得成果 對一些人來說這似乎是很長的一段時間但有這種想法的人是不了解相關的歷史即不了解一種語言要走向成熟需要花費多長時間例如Ruby這個剛剛受到很多關注的編程語言已經在 open source團體中發展了JavaScript 發展了Python 事實上Groovy 編程語言標准的發展只用了三年時間已經算是取得了很顯著的成績

  前景看起來似乎很明朗動態語言正逐步流行起來它們的多產性(高效率)及廣泛的適用性是不容忽視的要知道Java 平台被多萬開發者的龐大系統以及成千的工具和APIs 支持著如果任何一個動態編程語言要成功它就得a) 被標准化b) 受到Java 開發者的親睐c) 容易學習以及d) 能利用現有的Java 系統現在只有一種動態語言程序能滿足這些要求那就是Groovy

  Groovy 周遭的大肆宣傳已經平息對於這個項目的嘈雜的評論也銷聲匿跡了我認為這是再好不過的事情了因為這樣的結果是一種語言得以有時間發展成為一種真正有用的語言在很多方面Groovy是Java平台和動態語言設計的完美結合Groovy 一直都很安靜像一個沉睡的巨人但是在它成為 JCP 標准後這個巨人必將蘇醒過來並且成為最重要的動態編程語言


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26478.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.