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