Groovy其實(shí)不是一個(gè)新的腳本語言了。 之所以現(xiàn)在受到歡迎,主要的原因,我想還是因?yàn)镴ava的緣故。 從Rod Cope的技術(shù)講座的題目就可以看出了,Java技術(shù)加上Ruby和Python的腳本語言的威力。 Groovy的語法和Java幾乎一致(但是添加個(gè)一些新的功能,比如closure),而重要的是Groovy可以和Java互通:可以直接調(diào)用在Java .class中的提供的功能和函數(shù)(import那個(gè)Java package),而Groovy的腳本也可以被Java程序所應(yīng)用(Groovy腳本可以直接編譯為.class而進(jìn)入JVM)。 雖然JRuby(Java實(shí)現(xiàn)的Ruby)和JPython(Java實(shí)現(xiàn)的Python)也做到這些,但相比來說,特別是對(duì)一個(gè)Java程序員來說,不用更長(zhǎng)的學(xué)習(xí)曲線(也就是不用去學(xué)一門新的語言,比如Ruby),就可以很快體會(huì)到Groovy中腳本語言的威力,這就足夠吸引人了。
我在4-5個(gè)月前接觸到Groovy,那個(gè)時(shí)候好象還是0.7,0.8的beta版本。而且當(dāng)時(shí)Groovy正受到Groovy愛好者的“口誅筆伐”,原因是Groovy一直沒有更新版本,而Groovy的主要工程師似乎準(zhǔn)本放棄Groovy了。 然而,在眾多Groovy愛好者的支持下,Groovy還是重生了,JSR-241規(guī)范也得到了足夠的重視(之后,受到Groovy的影響,BeanShell Script很快也批準(zhǔn)成為JSR了,JSR-247)。 在這后面,也有Java大家的身影:Richard Monson-Haefel (O'Reilly的《Enterprise JavaBean》的作者),他應(yīng)該是最了解Groovy的歷史了,因?yàn)镴SR-241就是他提議的。
Blogjava.net中的emu,寫過4個(gè)Groovy的學(xué)習(xí)筆記(1,2,3,4),以及通過9皇后問題測(cè)試的Groovy的性能,不妨去看看。 真要學(xué)習(xí)Groovy的話,還是應(yīng)該去Groovy自己的家:CodHaus。
CodHaus:Groovy
Groovy: A bit of history on how it became a JSR
JSR-241: Groovy ? A New Standard Programming Language for the Java Platform
BeanShell: The 3rd Official Language of the Java Platform?