只用了短短的10年時間,卻似乎已經成長了35年,java已經迅速在廣泛的領域中找到了自己的位置:P2P、開放源代碼、無線應用、嵌入式應用程序以及將要命名的某些應用。很難追蹤Java的具體方向,因為它在每個領域都正處于領導地位。
現在,讓我們看看Java領域中日益增長的腳本語言的影響。
關于快速開發
毋庸置疑,腳本語言,比如Jython、Python、Ruby、Perl和php正越來越流行。Jython實際上是Python編程語言的一個完整實現。它由100%的純Java語言寫成,并且可以很方便地訪問Java類庫。
這種腳本趨勢正由于快速應用程序開發(RAD,Rapid application Development)的發展而越來越擴大化。RAD是一種開發風格,如今它正吸引著越來越多的擁護者。銷售部經理給IT部門施加了巨大的壓力以便加速生產,IT經理就不得不尋找更高效的方法來縮短研發生產時間。因此,RAD自然成了最好的推動力。
Infravio公司作為一個Java和Web服務的集成商,CTO Mukund Balasubramanian 說:“通過某些腳本語言,你可以變得非常聰明并且能夠完成常規Java無法完成的很多事情。假如你知道如何利用一個好的腳本語言,你可以在開發中節省大量的時間和金錢。”
腳本語言的優勢
快速開發。它們大大縮短了“開發、部署、測試、調試”周期。部署簡便。大多提供即時部署能力,而無需花費大量時間在編譯和打包周期上。與已有技術集成。它們大都構建在已有的組件技術,諸如Java或者COM上,以便有效重復利用現有代碼。易于學習和使用。技術門檻很低,可以輕松找到大量的使用者。動態代碼。腳本語言能夠被即時生成和執行,這在某些應用程序中是非常必要和有用的高級特性(比如說,javascript中的動態類型)。
當然,Java腳本語言也存在著一些缺點:凡事沒有十全十美。它假定存在著一個“現實”的編程語言,比如說,找到內建在腳本語言中的數據庫驅動器是件非常困難的事情。
對于軟件工程和代碼結構領域的熟練開發者來說,這不太有利。比如說面向對象和基于組件的開發環境。它們通常都不具有“一般性”,而是為某種特定的應用程序所產生,比如說PHP和互聯網?!氨M管如此,腳本語言可以加速軟件開發的進程,并且將其擴展到一個巨大的領域。但是必須要注重的是選擇特定的應用程序,比如說動態頁面或者完成一個‘真實’的編程語言(如對于Java而言就是Jython)?!盉alasubramanian如是說。
第三方實用程序
通過基本框架幫助網格腳本,IBM的 Bean Scripting Framework的應用程序使得將Tcl、Python、Perl和其他腳本語言嵌入Java應用程序相當簡單。Sun、Borland、BEA和其他廠商也提供類似應用程序。但是熟練的Java開發者,比如Mentro Graphics公司的David Kearns指出,支持一個腳本語言會有時間和費用上的風險,更不要說支持六個這樣的語言了。
在最近《Java World》的一篇文章中,Kearns描述了在Java應用程序中支持腳本會有的潛在風險。
“Jython具有最快的腳本解釋能力,同時具有強大的編程特性。”他說,“我最關注的其實是Jython的控制流語法,對你來說也許重要,也許不重要。因為有新的領域要涵蓋,為Jython編寫腳本或許比Javascript和BeanShell需要更長的學習周期。假如需要用Python編寫高級應用的腳本,我推薦去買本書。Python是一個很流行的編程語言,所以書店中會有大量的書籍可供選購?!?
其他Java腳本語言
這里簡單介紹一些其他被廣泛使用的、與Java相關的腳本語言。
Beanshell。Beanshell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性。
BeanShell執行標準Java語句和表達式,另外包括一些腳本命令和語法。它將腳本化對象看作簡單閉包方法(simple method closure)來支持,就如同在Perl和JavaScript中的一樣。
新聞熱點
疑難解答