成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十種可能改變IT行業(yè)走向的編程語言

譯文
開發(fā) 開發(fā)工具 新聞
作為開發(fā)人員,我們真的還需要學(xué)習(xí)那么多的新型編程語言嗎?現(xiàn)在所擁有的選擇已經(jīng)是相當?shù)呢S富,命令語言、函數(shù)語言、面向?qū)ο笮驼Z言、動態(tài)語言、編譯語言、解釋型語言以及腳本語言等等。這些身處業(yè)界前沿的編程語言為軟件開發(fā)工作的未來提供了獨到的解析視角。

【51CTO 1月5日 外電頭條】我們真的還需要那么多新型編程語言嗎?當前開發(fā)人員們所擁有的選擇無疑已經(jīng)相當豐富。命令型語言、函數(shù)型語言、面向?qū)ο笮驼Z言、動態(tài)語言、編譯語言解釋型語言以及腳本語言等等似乎已經(jīng)完全罩得住我們可能面對的一切任務(wù),而且時至今日也幾乎沒有哪位專業(yè)人士能夠通曉上述全部語言。

然而,新型語言仍然在以驚人的速度不斷涌現(xiàn)。有些是學(xué)生或者愛好者以個人項目的形式所設(shè)計,另一些則是來自大型IT供應(yīng)商的產(chǎn)品。甚至連中小型企業(yè)也不甘勢弱,積極針對其所在行業(yè)的需要開發(fā)出服務(wù)用語言。為什么人們?nèi)绱藷嶂杂谶@種重復(fù)性勞動呢?

答案其實很簡單,盡管目前大家手頭的語言在功能性與通用性方面已經(jīng)相當強大,但仍然沒有哪種單獨的語法規(guī)則能夠最大程度迎合任何一種實際需求。更重要的是,編程行為自身也處于不斷的發(fā)展變化當中。多核CPU的崛起、云計算的升溫、高流動性與分布式體系結(jié)構(gòu),這一切的一切都向開發(fā)人員提出了新的技術(shù)性挑戰(zhàn)。要為現(xiàn)有語言——尤其是當下流行的語言——添加最新功能、范例以及模式可以說比登天還難。有時候直接搞一套新語言往往是最佳解決方案。

那么在這里,我將帶大家一同縱覽十種位居業(yè)界前沿的編程語言;其中每種方案都從全新的視角詮釋了軟件開發(fā)工作的藝術(shù)性,并以各自不同的特色解決了某些具體問題或是彌補了當下某款主流語言的獨有缺憾。它們中有些是已經(jīng)頗為成熟的項目,而有些則尚處于自身發(fā)展的初級階段。有些可能對于大家來說還相當陌生且顯得晦澀但懂,但毋庸置疑的是,它們很可能在未來給開發(fā)業(yè)界帶來顛覆性的突破,并徹底改變今年數(shù)年的編程工具發(fā)展趨勢——至少在新一代語言面世前,它們就是未來的生力軍。

實驗性編程語言第一位: Dart

JavaScript在為網(wǎng)絡(luò)頁面添加基本交互功能方面表現(xiàn)拔群,但當網(wǎng)頁應(yīng)用程序的體積達到數(shù)千行代碼時,該語言的局限性就將暴露無遺。谷歌正是基于這種缺憾而推出了Dart,而這種語言也承載了谷歌為網(wǎng)頁編程帶來全新標準的雄心壯志。

[[55197]]

與JavaScript相似,Dart采用了與C語言相似的語法及關(guān)鍵字。然而Dart與JavaScript最為顯著的區(qū)別在于,前者中的對象明確指向類及接口,這與C++及Java頗有異曲同工之妙。Dart還允許程序員們利用靜態(tài)式有選擇地聲明變量。追溯設(shè)計者的思路,他們應(yīng)該是希望Dart與JavaScript一樣更易于學(xué)習(xí)、保有動態(tài)特色以及流暢的執(zhí)行效果,這樣一來開發(fā)人員就能夠在編寫代碼方面投入較少的時間,產(chǎn)品維護也將更為便捷,同時細小的錯誤帶來的影響也將被降至最低程度。

目前我們還不能用Dart解決太多實際問題。其設(shè)計理念是希望該語言能夠同時運行于客戶機與服務(wù)器之上(與Node.js差不多),但現(xiàn)在惟一能夠讓Dart代碼在客戶端上運行的辦法是將其通過編譯轉(zhuǎn)換為JavaScript。甚至它還不能正確作用于每一款瀏覽器。不過由于Dart以BSD類開源許可方式進行發(fā)布,因此任何購買了谷歌版本的廠商都可以隨意將其構(gòu)建于自己的產(chǎn)品當中。谷歌要做的只是說服業(yè)界接受這個編程領(lǐng)域的新生兒即可。

實驗性編程語言第二位: Ceylon

Gavin King并不承認Ceylon這款他在紅帽公司中創(chuàng)造出來的語言肩負著“Java終結(jié)者”的歷史使命。在King的從業(yè)經(jīng)歷中,最為耀眼的一頁正是他作為Hibernate——Java對象關(guān)系映射框架的創(chuàng)建者所贏得的贊譽。他喜歡Java,但他仍然認為Java還有很多提升空間。

King對于Java的抱怨主要集中在冗長的語法結(jié)構(gòu),這種語言缺乏一級與高端功能,而且對元編程的支持也相當薄弱。而更令他感到沮喪的是,Java中對于結(jié)構(gòu)化數(shù)據(jù)定義的聲明性語法極為欠缺,用他的話來說這使得Java“與XML根本無法分割。”Ceylon的目標就是解決上述疑難雜癥。

King與他的團隊并不打算完全從零做起。Ceylon虛擬機就不會出現(xiàn),此類功能將通過Ceylon編譯器將內(nèi)容轉(zhuǎn)換為Java字節(jié)代碼,進而運行于JVM當中。不過Ceylon絕不會止步于一款編譯器這么簡單。該項目的一大雄心是打造一套全新的Ceylon SDK體系來取代Java SDK,引用King對于后者的評價——結(jié)構(gòu)臃腫、笨拙,且從來沒有得到“適當?shù)摹⑴c時俱進的調(diào)整。”

這是一項艱巨的任務(wù),因為紅帽公司到目前為止還沒有發(fā)布過任何一款Ceylon工具。King表示自己期待著能在年內(nèi)看到一款編譯器出現(xiàn),但不會指望短時間內(nèi)會有“百分之百由Ceylon編寫”的軟件問世。

實驗性編程語言第三位: Go

解釋程序、虛擬機以及托管代碼如今正風(fēng)靡一時。我們真的需要另一款用于將目標內(nèi)容編譯為本地二進制文件的老式語言嗎?來自谷歌工程師團隊的小組——由Robert Griesemer以及貝爾實驗室的傳奇式人物Ken Thompson與Rob Pike共同執(zhí)掌——給出的答案是肯定的。

[[55198]]

Go是一種通用型編程語言,且適用于從應(yīng)用程序開發(fā)到系統(tǒng)編程等各種工作需求。從這種意義上來說,它更接近于C語言或C++,而不是Java或是C#。但與后兩者一樣,Go中也包含著各類現(xiàn)代化功能,包括垃圾收集、運行時間映象以及對并行性的支持。

同樣重要的是,Go在設(shè)計上有意降低了編程難度。其基礎(chǔ)語法與C語言非常相近,但卻消除了多余的語法及樣板文件,同時簡化了對象定義等常用功能的操作。Go項目小組的目標是打造出了一款像動態(tài)腳本語言那樣擁有親切代碼的語言,并且能夠像編譯語言那樣提供強大的功能性。

Go尚處于創(chuàng)建過程之中,而且其語言規(guī)范也仍可能發(fā)生變動。也就是說,我們目前已經(jīng)可以開始嘗試使用了。谷歌已經(jīng)為其打造了對應(yīng)的可用工具與編譯器,說明文檔之類也相當豐富;舉例來說,Effective Go教程就是大家了解Go與其它早期語言不同之處的上佳起點。

實驗性編程語言第四位: F#

函數(shù)型程序設(shè)計在計算機科學(xué)家以及學(xué)術(shù)界一直都相當流行,但像Lisp以及Haskell這樣的純函數(shù)型語言通常被人們認為無法作用于實際應(yīng)用中的軟件開發(fā)工作。對于函數(shù)型代碼,大家抱怨最多的是它們很難與由C++及Java等命令型語言所寫成的代碼與庫相整合。

說起F#(發(fā)音為“F=sharp”),這款微軟推出的語言在設(shè)計上可謂兼顧了功能性與實用性。由于F#在.Net公共語言運行(簡稱CLR)中屬于一級語言,因此能夠訪問其它CLR語言的所有同類庫及功能,包括C#及Visual Basic等。

F#代碼與OCaml多少有些類似,但它同時擁有不少相當有趣的特色語法。例如,F(xiàn)#中的數(shù)字型數(shù)據(jù)可以通過分配獲得計量單位,進而為科學(xué)類計算服務(wù)。F#還為異步式I/O、CPU并行處理以及GPU負載分擔等功能提供了必要的理論支持。

在度過了微軟研究中心中漫長的醞釀期后,F(xiàn)#現(xiàn)在終于同Visual Studio 2010一同面世了。更妙的是,微軟這一次不按常理出牌,將F#編譯器與代碼庫通過Apache開源許可呈現(xiàn)在我們面前;大家不僅能夠免費使用這款語言,更可以將其引入Mac及Linux系統(tǒng)(通過Mono運行工具)。

實驗性語言第五位: Opa

Web開發(fā)工作是公認的繁雜無比。就算是最簡單的一款Web應(yīng)用程序也需要不計其數(shù)的代碼行與多種語言交替使用:HTML與JavaScript處理客戶端、Java或PHP應(yīng)對服務(wù)器、SQL負責數(shù)據(jù)庫等等。

Opa其實并不打算單獨取代上述任何一種語言。相反,它存在的目的是希望通過為Web編程設(shè)定一套全新規(guī)范的方式一次性將各類方案直接抹殺。在Opa應(yīng)用程序中,客戶端UI、服務(wù)器端邏輯以及數(shù)據(jù)庫I/O都由同一種語言負責實施——也就是Opa本身。

而要完成這一目標,Opa需要將客戶端與服務(wù)器端框架進行整合。由Opa編譯器來決定某個特定程序是否應(yīng)該運行于客戶端、服務(wù)器端或是同時運行于二者之上,其后該編譯器將輸出運行所必需的代碼。對于客戶端型程序而言,編譯器會將Opa的代碼內(nèi)容轉(zhuǎn)換為相應(yīng)的JavaScript代碼,包括其中的AJAX調(diào)用。

當然,這樣規(guī)模的整合型系統(tǒng)也暗藏著一些后臺機關(guān)。Opa的運行環(huán)境將其Web服務(wù)器與數(shù)據(jù)庫管理系統(tǒng)捆綁在一起,也就是說我們無法用其它獨立的備選方案取代它們的位置。這當然可以算是一點缺憾,但為了保持標準的細致化與完整性,并使得數(shù)據(jù)驅(qū)動的Web應(yīng)用程序能夠以短短數(shù)十行代碼得以表達,這一切都是值得的。Opa項目完全開源,并且目前已經(jīng)支持64位Linux以及Mac OS X平臺;今后隨著工作的深入還將有更多端口得以開放。

#p#

實驗性編程語言第六位: Fantom

我們是否應(yīng)該在開發(fā)自己的應(yīng)用程序時考慮對java及.Net的支持?如果使用Fantom來編寫代碼,那么一切都不必擔心,甚至連交換機平臺也不在話下。這是因為Fantom在設(shè)計上兼顧到了跨平臺的可移植特性。Fantom項目中不僅包括能夠為JVM或者.Net CLI輸出字節(jié)代碼的編譯器,同時也擁有一組能夠容納Java及.Net接口的抽象化API,也就是創(chuàng)建了一套額外的可移植層。

Fanrom的可移植性還有著進一步的擴展規(guī)劃。目前由Fantom到JavaScript編譯器已經(jīng)可以使用,而接下來我們還可以期望看到包括LLVM編譯器、Parrot虛擬機以及iOS版Objective-C在內(nèi)的各類延展型項目。

不過千萬別把可移植性當作Fantom語言惟一的存在理由。雖然它在本質(zhì)上仍然是以C語言為基礎(chǔ),但它同時也對該原始模型進行了充分改良。Fantom語言試圖在某些頗具爭議的語法討論——例如牢固與動態(tài)或者接口與類——之中獲取中立身份。它不僅增加了對數(shù)據(jù)結(jié)構(gòu)說明及序列化對象的簡化說明,還囊括了對函數(shù)型程序設(shè)計及并行性創(chuàng)建工作的有力支持。

Fantom是基于Academic免費許可3.0版本的開源項目,并且現(xiàn)在在Windows以及Unix類平臺(包括Mac OS X)上已經(jīng)可以付諸使用。

實驗性編程語言第七位: Zimbu

大多數(shù)編程語言都從其它早期語言中借用到了某些功能或是語法。而Zimbu則把這種拿來主義精神發(fā)揮到了極致。作為Vim文本編輯器作者Bram Moolenaar的另一款得意之作,Zimbu的目標是成為一款速度快、語法簡潔、適應(yīng)移植需求且便于閱讀的語言,并最終使得來自任何圖形用戶界面的應(yīng)用程序代碼得以運行于目標操作系統(tǒng)內(nèi)核當中。

由于Zimbu與生俱來的雜交血統(tǒng),其語法也相當獨特,但同時卻又功能豐富。它采用與C語言相似的表達式及運算符,但卻使用自己的一套關(guān)鍵字、數(shù)據(jù)類型及塊狀結(jié)構(gòu)體系。另外,它還支持內(nèi)存管理、線程及通道等功能。

可移植性一直是個關(guān)鍵問題。盡管Zimbu是一款編譯型語言,但其編譯器輸出的是ANSI C碼,這就使得文件只能由具備本地C編譯器的平臺來生成。

遺憾的是,Zimbu項目如今尚處于起步階段。而其編譯器雖然已經(jīng)能夠為自身及其它程序創(chuàng)建一些演示范例,但并不是全部Zimbu有效代碼都能夠正確運行。不過預(yù)期功能目前還不完善,其中一些還只是加以草草設(shè)置,因此我相信只要假以時日,這些問題都能得到妥善解決。另外語言規(guī)范也很可能隨著時間的推移而產(chǎn)生變化,例如在必要時添加新的關(guān)鍵字、類型以及語法等。所以說明文檔等材料目前還沒有統(tǒng)一的結(jié)論。不過如果大家對這種語言有興趣的話,其初始工具已經(jīng)在Apache許可基礎(chǔ)上得以公布。

實驗性編程語言第八位: X10

并行處理一度作為軟件開發(fā)領(lǐng)域中的獨特生態(tài)圈存在,但隨著多核心CPU及分布式計算技術(shù)的日益普及,并行化也崛起成為未來發(fā)展的主流方向。遺憾的是,時至今日,編程語言仍然沒能跟上時代的步伐。而這正是IBM研究中心苦心開發(fā)X10的原因,這是一種以提高開發(fā)人員生產(chǎn)效率為主旨的實用型語言,希望在現(xiàn)有基礎(chǔ)上將開發(fā)效率提高“十倍”。

X10利用劃分式全局地址空間(簡稱)編程模型來解決并行類任務(wù)。代碼與數(shù)據(jù)作為各自獨立的單位,分別位于一個或多個“空間”當中,這就使得將單線程字節(jié)代碼(單獨空間)向高性能集群中單核心或多核心處理器(多個空間)的多線程處理能力轉(zhuǎn)化的過程更為簡便。

X10代碼總體來說與Java比較相近;事實上,X10運行環(huán)境可以直接作為本地可執(zhí)行文件以及類文件應(yīng)用于JVM當中。X10編譯器能夠輸出C++或是Java類型的源代碼。達成與Java語言之間的直接操作性是該項目的努力方向。

就目前而言,這種語言雖然還處于發(fā)展變化中,但也已經(jīng)算得上相當成熟。其編譯器與運行環(huán)境支持一系列平臺,包括Linux、Mac OS X以及Windows。包括基于Eclipse的IDE及調(diào)試工具等都已經(jīng)以Eclipse公共許可為基礎(chǔ)進行發(fā)布。

實驗性編程語言第九位: haXe

大多數(shù)語言都可以用來編寫可移植代碼。C語言編譯器能夠作用于幾乎每一種CPU架構(gòu),而Java字節(jié)代碼則能夠在一切具備JVM的環(huán)境中發(fā)揮功效。但haXe(讀音為“hex”)能做的則比可移植性更多。它是一款跨平臺語言,能夠適應(yīng)各種不同類型的運行環(huán)境——包括本地二進制解釋程序及虛擬機。

開發(fā)人員可以利用haXe編寫程序,然后將結(jié)果編譯為對象代碼,例如時下流行的JavaScript、PHP、Flash/ActionScript或者NekoVM等等;而像C#、Java等其它輸出模塊目前仍處于研發(fā)階段。在核心語言之外有haXe標準庫作為補充,其指向各類目標的功能也同樣齊全,而且還為目標平臺的獨特功能配備了專用的函數(shù)庫。

haXe在語法上與C語言相似,函數(shù)集合相當豐富。它的主要優(yōu)勢在于規(guī)避了目標平臺自身固有的缺陷。舉例來說,haXe具備JavaScript所欠缺的嚴謹歸類;它在ActionScript的基礎(chǔ)上增加了通用語句及類型推導(dǎo);它還完全消除了PHP語言在語法方面的設(shè)計疏漏與雜亂無序。

雖然仍處于開發(fā)階段,但haXe在其創(chuàng)造者Motion Twin游戲工作室的推動下已經(jīng)進入商業(yè)化運營,因此我們已經(jīng)應(yīng)該用嚴肅的眼光看待它。它支持Linux、Mac OS X以及Windows平臺,并采用數(shù)款開源類許可相結(jié)合的分布模式。

實驗性編程語言第十位: Chapel

在高性能計算領(lǐng)域,很少有哪家企業(yè)的風(fēng)頭能夠蓋過Cray,因此Cray公司的原始編程語言Chapel能夠上榜也就毫不奇怪了。這是一款在設(shè)計上主要考慮到超級計算機及集群實際需求的語言。

Chapel是Cray公司Cascade Program項目的一部分,該項目可謂野心勃勃,其部分計劃內(nèi)資金甚至是由美國國防部高級研究計劃局(簡稱DARPA)所提供。其目標主要是從底層硬件中提取抽象并行算法,進而提高現(xiàn)有架構(gòu)的性能表現(xiàn),并使得并行類程序具備更好的可移植性。

Chapel的語法脫胎自許多來源。除了幾款我們常見的主流語言(例如C、C++以及Java),它還從像Fortran及Matlab這樣的科學(xué)類編程語言中借鑒了不少概念型內(nèi)容。它的并行處理能力在一定程度上與ZPL及高性能Fortran密切相關(guān),另一些Cray早期項目也是它的學(xué)習(xí)目標。

Chapel最引人注目的特色之一是其“多分辨率編程”功能,這項功能使得開發(fā)人員能夠在應(yīng)用程序中引入更多抽象化代碼,并在實施中添加更多細節(jié)闡述以使得定義本身更加明確。

Chapel仍處于開發(fā)階段。目前它能夠運行于Cray超級計算機及各類高性能集群之上,并且可以移植到大多數(shù)Unix類系統(tǒng)(包括Mac OS X以及安裝了Cygwin的Windows系統(tǒng))當中。該語言源代碼采用BSD型開源許可。

原文鏈接:http://www.infoworld.com/d/application-development/10-programming-languages-could-shake-it-181548?page=0,0

【編輯推薦】

  1. JavaScript將成為計算機學(xué)習(xí)第一語言
  2. 學(xué)習(xí)一門新語言的二三事
  3. 軟件開發(fā)工具推薦:Eclipse Color Themes
  4. 多態(tài)在 Java 和 C++ 編程語言中的實現(xiàn)比較
  5. 提交中的罵聲:哪種編程語言最遭罵?
責任編輯:林師授 來源: 51CTO.com
相關(guān)推薦

2012-01-10 15:40:10

開發(fā)技術(shù)周刊

2013-10-08 17:01:40

開發(fā)技術(shù)周刊

2021-07-02 21:53:23

物聯(lián)網(wǎng)開發(fā)編程語言開發(fā)

2022-07-20 14:26:01

人工智能數(shù)字教育

2022-10-08 07:30:17

網(wǎng)絡(luò)安全編程語言C++

2011-12-21 21:16:58

2020-07-10 10:48:51

編程語言JavaPython

2016-03-18 07:21:56

網(wǎng)站體驗設(shè)計錯誤

2024-02-19 23:10:46

TIOBE編程語言

2023-04-26 21:09:59

2024-02-19 15:59:56

2011-05-25 13:29:20

數(shù)據(jù)庫備份

2015-08-19 13:40:58

編程編程更有效

2024-11-13 13:20:44

2018-09-06 15:37:09

區(qū)塊鏈無人駕駛汽車共享

2021-10-27 10:50:14

人工智能AI機器學(xué)習(xí)

2013-11-05 15:24:39

開發(fā)技術(shù)周刊

2016-12-08 10:53:46

程序員編程

2020-01-10 09:00:00

開發(fā)者編程習(xí)慣編程方式

2023-05-15 15:29:13

設(shè)計模式JavaScript
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区三区在线播放视频 | 狠狠色综合网站久久久久久久 | 欧美在线成人影院 | 99久热 | 国产精品一级 | 亚洲一区二区三区视频在线 | 91精品在线播放 | 日韩成人免费中文字幕 | 久久久免费电影 | 国外成人在线视频网站 | 国产福利在线播放麻豆 | 久一久| avmans最新导航地址 | 一本色道久久综合亚洲精品高清 | 欧美一区精品 | 91欧美| 国产一区二区三区久久久久久久久 | 中文字幕在线观看第一页 | 久久中文字幕一区 | 国产美女精品 | 亚洲狠狠 | 国产一区二区三区在线看 | 成人h视频在线 | 一区二区国产在线 | 久久国产欧美日韩精品 | 国产一级片 | 日韩在线免费看 | 日韩网站免费观看 | 国产一区二区三区在线视频 | 久久久精品综合 | 亚洲高清一区二区三区 | 国产一区二区在线视频 | 欧洲一区在线观看 | 亚洲男女视频在线观看 | 国产精品久久久久久吹潮 | 亚洲福利av | 中国一级特黄真人毛片免费观看 | 一级片av| 国产一区二区三区久久久久久久久 | 精品三级在线观看 | 99久久久久国产精品免费 |