開發者應該了解的五種全新編程語言
譯文從全面并發到可執行文件部署,這些新型語言絕對值得大家加以關注。為什么要創造一種新語言?這倒并不是說我們就一定需要這種語言。
但新的編程語言確實會從新的角度審視開發者、IT管理員以及其他相關人員所面臨的問題。因此,我們也有必要關注那些希望以新的視角解決固有障礙的新型語言。
另外,新語言的誕生也未必只關注語言本身,有時候其關注重點在于語言所提供的環境。谷歌的Go與Mozilla的Rust語言并不提供新語法,但卻帶來了新的工作鏈與項目管理策略。
下面來看編程語言領域的五位后起之秀,它們都在以創造性的方式試圖解決實際或者理論層面中的難題。
Stanza 0.8.22
要點: 亦被稱為L.B. Stanza,此項目由加州大學伯克利分校開發,在語言當中高度強烈拆分這一理念。
Stanza可編譯為本地代碼,但并不要求特定類型。在添加之后,該語言能夠自動執行極為強大的代碼檢查機制。另外,它還利用一套不涉及類的對象系統——其實際使用方法與函數——并能夠顯著降低協同例程的并發難度。
類似語言: Python、Ruby且在某種程度上類似于函數語言
當前平臺: Linux, Mac, Windows
Nim 0.13
要點: Nim繼承了Python的設計思路——簡潔的語法、便捷性、訪問該語言自己的語法樹——并使其可在靜態類型語言中起效,同時可以執行自己的垃圾回收與內存管理方案。其它出色特性還包括:手動定義運算符(大家無需重載現有運算符)、宏并將Nim應用編譯為無依賴性的獨立二進制文件。
類似語言: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon (該語言的設計師們自己也承認這一點)
當前平臺: 在理論上支持任何具備C編譯器的平臺,但二進制文件目前僅適用于Windows。
Crystal 0.17.4
要點: 其語法與Ruby屬同一模式——因此Ruby開發者能夠快速上手。但與Ruby不同,Crystal能夠編譯為本地代碼。它還擁有靜態類型檢查機制,而不需要在變量或者方法參數中進行類型指定。另外,它能夠直接綁定至C代碼。Crystal語言目前尚不支持并發——所有任務都在單一線程內執行——不過其擁有并發控制機制,而且并發與軟件包管理器都已經被納入開發議程。
類似語言: Ruby
當前平臺: Linux, OS X
Nit 0.8
要點: 作為另一款脫胎于Python的語言,Nit的開發初衷在于更為簡單地同現有C/C++、Java以及Objective-C代碼協作與接入。同樣耐人尋味的是,盡管尚處于早期開發階段,但Nit語言已經將Android作為受支持編譯目標,因此其很有可能成為Android平臺上的應用開發語言。
類似語言: Python, Pascal, Ruby
當前平臺: Linux, OS X,可通過Cygwin運行在Windows上,但性能表現較差。
Pony 0.2.1
要點: Pony的目標是解決軟件開發中經常出現的一項難題:如何在不影響競爭狀況、內存安全或者造成死鎖問題的情況下,對對象等抽象機制進行處理。Pony嘗試使用靜態類型與“actor”對象類型解決該問題,這樣我們就能更輕松地了解各條目究竟是什么、其以何種順序執行。
類似語言: Python (語法類似), Erlang (強大的并發系統)
當前平臺: Linux, OS X, Windows
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】