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