撼動IT界的10大程式語言!
撼動IT界的10大程式語言!
2012年01月10日
[b]導讀:[/b]開發者是否真的還需要一種新的程式語言呢?選擇已經有那麼多了,現有的語言都讓開發者應接不暇,可是各種新的程式語言還是在以驚人的速度產生!答案就是隨著多核CPU、雲端計算、移動及分散式結構的不斷髮展,簡單的語法已經不能適用,我們需要更加強大的語言!而以下10種程式語言,或正在走向成熟,或還在開發,可是它們都以全新的視角演繹著軟體開發的藝術,每一種語言,都有可能開啟程式設計世界的新大門!
[b]No.1:Dart[/b]
JavaScript在Web的互動性方面運用得很好,但是當Web應用程式的程式碼行過多時,它的弱點就會顯現出來,因此,Google推出了新的結構化Web程式語言Dart用以替代JavaScript。
與JavaScript標準的語法不同的是,Dart是通過類和介面來定義物件,並且允許程式設計者自由地定義靜態變數,這使得Dart既能如JavaScript般流暢,又能更快更容易地儲存且不易受干擾。此外,CSDN軟體研發頻道之前編譯的Dart比JavaScript更酷的10個理由會讓你瞭解到更多Dart的便捷性。
[b]No.2:Ceylon[/b]
Gavin King 稱Ceylon是由紅帽公司開發,被稱之為“Java 殺手”。King是一名Java愛好者,他認為Java還有很大的改進空間。比如,缺少優秀的高階函式,對超程式設計薄弱的支援,缺乏對結構資料定義的說明等等,Ceylon就是為了解決這些問題而產生的。現在Ceylon編譯器已經支援在JVM上執行輸出字串,當然Ceylon的目標不只這些,它的目標是開發出新的Ceylon SDK來代替Java SDK。
[b]No.3:Go[/b]
Go是一門從應用程式開發到系統程式設計都通用的程式設計語言。從某種程度上來說,它更像是C或者C++,但又像Java、C#一樣有垃圾回收機制,執行時間對映及並行支援諸如此類的先進特點。同時,Go很容易編寫,它像C卻又沒有C的冗長古板。
Go開發團隊想開發出一種愉快的程式語言,身為動態指令碼語言又兼具編譯語言的特性。不過,Go目前還是在繼續開發中,對於它的應用規則也隨時可能改變。此外,Google已經開發出相應的工具和編譯器。
[b]No.4:F#[/b]
雖然函式式程式設計在電腦科學家及學術界裡很流行,但是純函式式語言卻很難跟現實世界的軟體開發相結合。微軟開發的F#是包含函式式和實際應用的優秀語言,它和其他CLR(公共語言執行庫)語言使用相同的函式庫和特點。不過F#有自己的更有趣的語法特點,如豐富的資料型別會做科學的分類,還提供了一些設計有助於非同步I/O、CPU並行化、解除安裝GPU的處理等。
現在微軟已經在基於Apache開源許可證下開發了F#編譯器及核函式庫,大家可以免費使用,甚至可執行在MAC和Linux系統上。
[b]No.5:Opa[/b]
Opa提出了一項嶄新的Web程式設計規範,而這或將一舉消滅其他大部分的程式語言。在Opa應用程式中,客戶端的UI、伺服器端的邏輯,以及資料庫中的I/O都可以用簡單的程式語言Opa執行。它將客戶端和服務端的結構框架繫結在一起。當然,這還需要後臺特殊技術的支援。Opa的執行環境是繫結了它的Web伺服器和資料庫管理系統,其中任一部分都不能隨意取代。現在,Opa對64位的Linux和Mac OSX平臺是開源,以後會有更多的介面來使用。
[b]No.6:Fantom[/b]
Fantom是專門為跨平臺的移植而設計的。Fantom不僅包含了可以在JVM或者.NET CLI中執行的編譯器,也包括了一系列從Java和.NET API中抽象出來的API,從而建立了一個額外的可移植層。現在有更多的計劃要把Fantom 這種移植性蔓延開。不過可移植性並不是Fantom存在的唯一原因。它在繼承一些像C這樣的特性時,也提高了支援其它語言的質量。
Fantom在Academic 3.0下開源,支援在Windows和Unix平臺上使用。
[b]No.7:Zimbu[/b]
作為Bram Moolenaar的產物,Zimbu吸收了以前各種語言的特點,目標是成為一種快速、簡潔、輕便、易讀、可適用於從GUI應用程式到OS核心的語言。由於Zimbu具備多種特性,而語法本身是獨一無二的。它不僅有著像C一樣的表示式和運算子,也有自己的關鍵字、資料型別和分程式結構。此外,還支援記憶體管理、執行緒。良好的可移植性也是Zimbu的一個重要的特性。雖然Zimbu是編譯語言,但是它輸出的是ANSI C程式碼。
不幸的,Zimbu現還處於初期階段。但是如果你有興趣體驗的話,一些基本的工具在Apache 許可下已經可以使用了。
[b] No.8:X10[/b]
並行處理已經成為了軟體開發的趨勢。因此,IBM研究院開發了X10來順應這種趨勢,希望提高開發者10倍的效率。X10使用全域性地址空間分割槽(PGAS)的程式設計模式來進行並行管理。程式碼和資料以單位的形式被分開儲存,這有利於在處理器上高效能的將單執行緒轉為多執行緒。將來X10還會實現跟Java的互動使用。
現在X10還在改善當中,但是已經相當成熟了,在Linux、Mac OS X 及Windows等多種平臺上都可以使用。
[b]No.9:haXe[/b]
haXe不僅是一門便捷的語言,更是在不同的操作環境間使用的跨平臺語言,從Native binaries到直譯器再到虛擬機器。開發者可以在haXe裡編寫程式碼,然後將它們編譯成目的碼。haXe標準庫是這門核心語言的堅實後盾,它能在每個目標上分別執行,然後再使用特殊目標庫,從而來體現每個平臺的不同之處。haXe有一系列優點,而它最主要的優勢莫過於將目標平臺上所固有的問題給否定掉。雖然haXe現在還仍處於開發階段,但它的開發者已經將其用到商業上和遊戲工作室Motion Twin。在開源許可證下,它可適用於Linux,Mac OS X及Windows。
[b]No.10:Chapel[/b]
Chapel作為Cray的第一門獨創性的程式語言,是為超級計算和叢集而設計的。Chapel的語法吸收多方的精華,除了通常的語言(C,C++,JAVA),它還從科學程式設計語言中借鑑概念,它的並行處理的特點則是受ZPL及高效能的程式語言的影響。Chapel一個最吸引人的特點是支援“多重解析程式設計”。
Chapel的開發還在繼續。現在,它可以在Cray的超級計算機和多數高效能的叢集上使用,但它對大部分類似Unix系統來說也是相當便捷的。原始碼在BSD開源許可下可使用。
那麼,這些新語言中您關注過或用過的有多少呢?
2012年01月10日
[b]導讀:[/b]開發者是否真的還需要一種新的程式語言呢?選擇已經有那麼多了,現有的語言都讓開發者應接不暇,可是各種新的程式語言還是在以驚人的速度產生!答案就是隨著多核CPU、雲端計算、移動及分散式結構的不斷髮展,簡單的語法已經不能適用,我們需要更加強大的語言!而以下10種程式語言,或正在走向成熟,或還在開發,可是它們都以全新的視角演繹著軟體開發的藝術,每一種語言,都有可能開啟程式設計世界的新大門!
[b]No.1:Dart[/b]
JavaScript在Web的互動性方面運用得很好,但是當Web應用程式的程式碼行過多時,它的弱點就會顯現出來,因此,Google推出了新的結構化Web程式語言Dart用以替代JavaScript。
與JavaScript標準的語法不同的是,Dart是通過類和介面來定義物件,並且允許程式設計者自由地定義靜態變數,這使得Dart既能如JavaScript般流暢,又能更快更容易地儲存且不易受干擾。此外,CSDN軟體研發頻道之前編譯的Dart比JavaScript更酷的10個理由會讓你瞭解到更多Dart的便捷性。
[b]No.2:Ceylon[/b]
Gavin King 稱Ceylon是由紅帽公司開發,被稱之為“Java 殺手”。King是一名Java愛好者,他認為Java還有很大的改進空間。比如,缺少優秀的高階函式,對超程式設計薄弱的支援,缺乏對結構資料定義的說明等等,Ceylon就是為了解決這些問題而產生的。現在Ceylon編譯器已經支援在JVM上執行輸出字串,當然Ceylon的目標不只這些,它的目標是開發出新的Ceylon SDK來代替Java SDK。
[b]No.3:Go[/b]
Go是一門從應用程式開發到系統程式設計都通用的程式設計語言。從某種程度上來說,它更像是C或者C++,但又像Java、C#一樣有垃圾回收機制,執行時間對映及並行支援諸如此類的先進特點。同時,Go很容易編寫,它像C卻又沒有C的冗長古板。
Go開發團隊想開發出一種愉快的程式語言,身為動態指令碼語言又兼具編譯語言的特性。不過,Go目前還是在繼續開發中,對於它的應用規則也隨時可能改變。此外,Google已經開發出相應的工具和編譯器。
[b]No.4:F#[/b]
雖然函式式程式設計在電腦科學家及學術界裡很流行,但是純函式式語言卻很難跟現實世界的軟體開發相結合。微軟開發的F#是包含函式式和實際應用的優秀語言,它和其他CLR(公共語言執行庫)語言使用相同的函式庫和特點。不過F#有自己的更有趣的語法特點,如豐富的資料型別會做科學的分類,還提供了一些設計有助於非同步I/O、CPU並行化、解除安裝GPU的處理等。
現在微軟已經在基於Apache開源許可證下開發了F#編譯器及核函式庫,大家可以免費使用,甚至可執行在MAC和Linux系統上。
[b]No.5:Opa[/b]
Opa提出了一項嶄新的Web程式設計規範,而這或將一舉消滅其他大部分的程式語言。在Opa應用程式中,客戶端的UI、伺服器端的邏輯,以及資料庫中的I/O都可以用簡單的程式語言Opa執行。它將客戶端和服務端的結構框架繫結在一起。當然,這還需要後臺特殊技術的支援。Opa的執行環境是繫結了它的Web伺服器和資料庫管理系統,其中任一部分都不能隨意取代。現在,Opa對64位的Linux和Mac OSX平臺是開源,以後會有更多的介面來使用。
[b]No.6:Fantom[/b]
Fantom是專門為跨平臺的移植而設計的。Fantom不僅包含了可以在JVM或者.NET CLI中執行的編譯器,也包括了一系列從Java和.NET API中抽象出來的API,從而建立了一個額外的可移植層。現在有更多的計劃要把Fantom 這種移植性蔓延開。不過可移植性並不是Fantom存在的唯一原因。它在繼承一些像C這樣的特性時,也提高了支援其它語言的質量。
Fantom在Academic 3.0下開源,支援在Windows和Unix平臺上使用。
[b]No.7:Zimbu[/b]
作為Bram Moolenaar的產物,Zimbu吸收了以前各種語言的特點,目標是成為一種快速、簡潔、輕便、易讀、可適用於從GUI應用程式到OS核心的語言。由於Zimbu具備多種特性,而語法本身是獨一無二的。它不僅有著像C一樣的表示式和運算子,也有自己的關鍵字、資料型別和分程式結構。此外,還支援記憶體管理、執行緒。良好的可移植性也是Zimbu的一個重要的特性。雖然Zimbu是編譯語言,但是它輸出的是ANSI C程式碼。
不幸的,Zimbu現還處於初期階段。但是如果你有興趣體驗的話,一些基本的工具在Apache 許可下已經可以使用了。
[b] No.8:X10[/b]
並行處理已經成為了軟體開發的趨勢。因此,IBM研究院開發了X10來順應這種趨勢,希望提高開發者10倍的效率。X10使用全域性地址空間分割槽(PGAS)的程式設計模式來進行並行管理。程式碼和資料以單位的形式被分開儲存,這有利於在處理器上高效能的將單執行緒轉為多執行緒。將來X10還會實現跟Java的互動使用。
現在X10還在改善當中,但是已經相當成熟了,在Linux、Mac OS X 及Windows等多種平臺上都可以使用。
[b]No.9:haXe[/b]
haXe不僅是一門便捷的語言,更是在不同的操作環境間使用的跨平臺語言,從Native binaries到直譯器再到虛擬機器。開發者可以在haXe裡編寫程式碼,然後將它們編譯成目的碼。haXe標準庫是這門核心語言的堅實後盾,它能在每個目標上分別執行,然後再使用特殊目標庫,從而來體現每個平臺的不同之處。haXe有一系列優點,而它最主要的優勢莫過於將目標平臺上所固有的問題給否定掉。雖然haXe現在還仍處於開發階段,但它的開發者已經將其用到商業上和遊戲工作室Motion Twin。在開源許可證下,它可適用於Linux,Mac OS X及Windows。
[b]No.10:Chapel[/b]
Chapel作為Cray的第一門獨創性的程式語言,是為超級計算和叢集而設計的。Chapel的語法吸收多方的精華,除了通常的語言(C,C++,JAVA),它還從科學程式設計語言中借鑑概念,它的並行處理的特點則是受ZPL及高效能的程式語言的影響。Chapel一個最吸引人的特點是支援“多重解析程式設計”。
Chapel的開發還在繼續。現在,它可以在Cray的超級計算機和多數高效能的叢集上使用,但它對大部分類似Unix系統來說也是相當便捷的。原始碼在BSD開源許可下可使用。
那麼,這些新語言中您關注過或用過的有多少呢?
相關文章
- 時至今日,為何C語言在軟體開發領域的地位仍無法撼動C語言
- 哋它亢程式語言3.11版本深度解析:程式設計界的新革命程式設計
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言:一種高效、易學的程式語言C語言
- 程式語言的變遷
- 那些主流程式語言的知識,C語言(Ⅰ)C語言
- Python 語言特性:編譯+解釋、動態型別語言、動態語言Python編譯型別
- PLSQL程式語言SQL
- sql程式語言SQL
- 計算機程式語言的分類,解釋型語言、編譯型語言、指令碼語言的關係計算機編譯指令碼
- WPF多語言支援:簡單靈活的動態切換,讓你的程式支援多國語言
- 程式語言有哪些
- 在區塊鏈Web3世界中使用的幾種傳統程式語言 - mcgee區塊鏈Web
- 為什麼自制指令碼語言是程式語言的最高境界?指令碼
- ‘程式語言‘ ’程式設計工具’程式設計
- 20 種最奇怪的程式語言
- 圖:程式語言的建立者們
- 三句義的程式語言
- 常見的程式語言python怎麼樣?各程式語言有什麼區別?Python
- ABAP 程式語言裡的 Reference Semantic - 引用語義
- 各個程式語言語言的檔案/函式/變數的命名方法函式變數
- 什麼是程式語言?程式語言都有哪些?以及主要用途
- 計算機語言:編譯型/解釋型、動態語言/靜態語言、強型別語言/弱型別語言計算機編譯型別
- java 自動化與 python 自動化哪種程式語言吃香?JavaPython
- python程式語言基礎Python
- 程式語言概覽(90%)
- c語言程式環境C語言
- 程式語言註釋大法
- Julia語言程式基礎
- 何為程式語言?為什麼要學C語言?C語言
- C語言簡單程式碼程式C語言
- 中文程式語言——易語言,到底是用來幹什麼的?易語言值得學習嗎?易語言的優勢有什麼?
- RAC的函數語言程式設計函數程式設計
- 程式語言的“別樣”編年史
- Paul Graham:夢寐以求的程式語言
- 部署Go語言程式的N種方式Go
- Zig成為薪酬最高的程式語言
- 倉頡程式語言的一點期望
- 幾種常用程式語言的區別