Lynn Greiner的文章《腳本世界現狀》遭到痛批一些人對文章明顯的疏漏表示出了不滿因為文章只涵蓋了PHP PerlPythonRubyTcl和JavaScriptLynn只選擇這些語言因為那她是為三年前的一篇文章做的後續報道此外大多數IT經理即使沒有親自編寫過代碼也都至少熟悉其中一種腳本語言
然而盡管我們已經深入了解上述五種語言但是開發人員使用語言的卻不僅限於這五種由於每種編程語言都是適合於解決某個具體問題的工具因此每個IT公司都能挑選一個最適合自己的語言在本文中我們會分享一些新興的腳本語言以提供些指導
Scala
Scala對開發人員而言是別具吸引力的按照其網站所說Scala既是對象面向型又是實用型的它混合了一些現代語言功能同時與Java保持著密切的兼容性
Object Mentor的高級顧問Wampler說Scala是我見到的最好的一體適用的語言Scala彌補了Java的不足比方Java為對象面向型編程提供的支持冗繁而有限此外Scala支持功能性編程——在學術計算機科學界已存在很長一段時間的一種方法但現在被證明用來編寫強效並行軟件非常有用並行技術對在大型網站和企業擴展軟件十分重要
Trampoline Systems開發人員David Ritchie Maclver認為Scala的主要好處是能避開Java他說就圖書庫的支持性能和易於部署而言我可以匹配Java許多Java工具也推到Scala他認為他的公司正為可視化軟件的軟件采用Scala隨著這一更新將減少Java和Ruby的使用
但是Maclver並不推崇Scala的一切他說為了發揮並行優勢人們會推動Scala的發展但請不要受制於這種誘惑因為它不能取代Java
Groovy
另一種語言就是Groovy根據其網站所稱Groovy是為Java虛擬機(JVM)而設計的一種靈活而動態的語言集Java之長但受Python Ruby和Smalltalk的啟發具備額外的功能和特點
Groovy令人信服之處在哪裡呢?首先提出這一問題的開源新聞平台批評家說我感到驚訝的是Groovy沒有出現在任何地方如果有一個動態語言能平衡企業的擁堵那它就是Groovy它能匯編進Java字節碼並直接利用龐大的Java庫卻省去了繁瑣的Java句法幾年的時間後Python和Ruby被Groovy取代將不會使我感到驚訝
Groovy讓Java開發的指令有效表達同時又與Java代碼保持相互兼容性
Closure
您的公司可能會采用最新的硬件但您的軟件可以充分利用其多線程功能嗎?您可能想看看Clojure它是一個以虛擬機為目標的動態編程語言其網站上解釋說 Clojure被設計成一個通用語言它是將高效和強勁的基礎設施同腳本語言的可接近性和互動發展相結合的多線程編程 Clojure是一種直接編輯JVM字節碼的語言卻保存了完整的動態特點每個由Clojure支持功能在運行時也獲得支持 Clojure提供對Java框架的輕松訪問通過可選類型提示和類型推斷確保調用的Java可避免映射
小?強大?Java?這三個能並存嗎? Clojure是一種體積小功能強大的語言它在虛擬機上編輯並運行因此不需要新的基礎設施此外它也可以讓您以更少的代碼處理更多事情這對發展進程和維護都是好事特別有益於在缺乏像Java那樣足夠多的程序員開銷時利用多核硬件
現在軟件開發中最緊迫的問題在於如何更好地利用多核CPU 以提高性能和降低能源成本就方便與安全性而言Clojure用於並行要比其他任何語言都要優越它繼承的Lisp極大地提高程序員的生產方式隨著時間的增長它能實現簡單的DSL創建以便商家驗證程序的正確性它能在模擬機上運行並能順利與數百萬行遺留的Java代碼融合還僅是其表面現象
Lua
正式點說Lua是一個強大快速輕量可嵌入的腳本語言Lua結合了簡單的程序句法並具備強大的基於關聯數組和可擴展的語義的數據描述Lua是動態型的它的運行通過為基於寄存器的虛擬機解釋字節碼來實現通過增量垃圾收集自動管理內存非常適合配置撰寫腳本和快速原型
通俗點說這只是一個非常小的語言工具用它辦事很快
開發人員RalphHempel將Lua描述為編程語言中最棒的小秘密他還說雖然它沒有一個正式認可的庫分配機制但卻有大量的標准庫供文件系統訪問網絡連接數據庫訪問等等對我來說該系統最好的部分是堅如磐石的語言核心和考慮周密的升級和補丁Lua的發布由從一開始就參與該語言的Three Amigos控制Hempel已向LEGO Mindstorms NXT移植Lua
Lua的優勢在於它的快速敏捷式開發超過了傳統的語言它給你所需要的積木您可以以任何方式建立你想要的任何東西驚人的小和快是Lua特點就技術層面而言它是傑作
F#
NET開發社區並非沒有一套腳本語言增強功能其中最突出的是F#它起先作為微軟的編程語言研究集安全簡潔性能表達和腳本於一身能高品質運行支持現代運行系統現在微軟把F#轉變成NET平台上的充分支援語言
F#促進編程的功能性不可改變類型而這適合並行和分布式程序的編寫此外它支持編程的陳述風格陳述風格可以讓你區分為解決問題開發一些智能庫的高級程序員和使用它來解決日常問題的初級程序員
許多編程語言可以很容易地寫一些小東西再擴展成一個較大的應用程序但當軟件需要變成一個真正的有強大邏輯結構的庫時問題就來了F#就可以讓你做得很好你可以從簡單的(就像使用動態類型語言如Python或Ruby那樣)開始最終完成一個非常強大的程序(如同C #或Java )F#的關鍵益處是做到過渡完全流利而無須經歷任何痛苦的步驟事實上你不需要重寫任何開始時的代碼
F#額外的好處是通過學習F#有助於你成為更好的C#程序員 F#有助於人們了解LINQ如果你未來想平行運行什麼東西它可能是很好的准備
Boo
Boo在其主頁上宣布它是為CLI(通用語言基礎設施)設計的一個新的面向對象的靜態類型的編程語言具備Pythoninspired句法並特別側重於語言和編譯器的可擴展性
這不是一種解釋語言因為它的編纂是為了CLI由於它在Net上運行您擁有Net的所有權力只有它更靈活而且您把它當作一個腳本或編好的程序Boo也有足夠的技術優勢如能在匯編過程中操縱編譯器輸出
計算機語言是制作軟件的一種工具Boo作為一種計算機語言與其他工具(Net 生態系統)一樣表現出色但Boo更具競爭力因它給予開發者空前的力量開發自己的語言工具大多數語言圍繞一套固定的概念工作Boo賦予開發者制作自己的語言概念的能力此外Boo句法也很奇妙並配備了各種口譯以加速發展
該語言在輕量特定領域子語言和微型格式中取得優勢它也是微小的自我控制和跨平台的所以在Windows編寫代碼和在Linux或Mac OS X是一樣的它有一個內置的GUI庫能夠發送電子郵件和訪問內內置的網絡資源沒有包含文件只有兩條簡單的線可執行程序也很小在Java做同樣的事情將有數以百計兆數據在C將有以噸計的包含文件和許多代碼
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25328.html