2011年11月編程語言排行榜:Google新利器Dart
原創(chuàng)【51CTO獨家特稿】***的編程語言排行榜已經公布,離2012年只有兩個月了,從目前市場占有趨勢來看,Objective-C已經脫穎而出成為***編程語言獎項的最有力競爭者,本月更是上升到排行榜第六位,TIOBE編程語言排行榜每年初都將統(tǒng)計評出上年度的***編程語言大獎,獲獎的編程語言被認為在該年度市場份額增長及用戶認可度方面獲得了最為突出的成績。另外C# , JavaScript也有所上升,2010年和2007年兩次獲得年度編程語言獎項的Python排名卻有所下滑,不過仍然排行第8位。
下面是前20名的編程語言排行
本月51CTO為您介紹Google新結構化編程語言Dart。早在九月份Google就已著手注冊了一系列與Dart相關的域名,當時也引發(fā)了沸沸揚揚的猜測。只到10月10日在丹麥舉行的Goto會議上,谷歌Dart語言項目的領導人Lars Bak才正式宣布推出編程語言Dart。Lars Bak——這位來自谷歌的工程師曾經憑借其V8 JavaScript解釋程序顛覆了火狐瀏覽器的速度神話。
什么是Dart?
Dart是一種基于類的可選類型化編程語言,設計用于創(chuàng)建Web應用程序。Dart的設計目標是為Web編程創(chuàng)造結構化但又富有靈活性的語言;編程方法一目了然,符合程序員的自然習慣,易于學習;能在所有瀏覽器 和不同環(huán)境中實現高性能。谷歌推出的全新Web開發(fā)語言Dart很可能與Smalltalk存在著種種相似之處。它將Web發(fā)展引向一條與此前截然不同的另類道路。參考51CTO外電:Dart之于JavaScript正如C#之于C++
Dart語言“Hello world”
- class HelloDartTest {
- static testMain() {
- print("Hello, world!");
- }
- }
- main() {
- HelloDartTest.testMain();
- }
Dart如何執(zhí)行代碼
dart主要有兩種執(zhí)行方式:
1.在瀏覽器中執(zhí)行。
a)在 Dartboard 中,在線編輯、執(zhí)行,嘗試和演示目的。這是目前最簡單的方法。
b)使用轉換工具將dart轉換為javascript后在瀏覽器執(zhí)行。
c)使用script標簽在瀏覽器中直接執(zhí)行, 。當然瀏覽器要支持才行,目前還沒有,估計只有Chrome將會支持。
2.虛擬機直接執(zhí)行。dart源文件的后綴一般是 .dart ,就像其它語言一樣: dart_bin yourcode.dart 。
默認執(zhí)行不啟用類型檢查,可以使用 --enable_type_checks 選項啟用類型檢查。
目前官方還沒提供個平臺的二進制構建版本,需要自行獲取代碼構建。
或者網上下載別人構建好的版本,具體見這里 ,Linux、Win、Mac都有(沒試過不保證沒問題)。
Dart設計目標
Dart編程語言當前處于早期階段。這些設計目標將會持續(xù)地演進和精煉:
◆ 創(chuàng)建一種結構化但靈活的web編程語言
◆ 使用程序員感到熟悉并自然,易于學習
◆ 確保所有的Dart語言構造允許高性能和快速啟動應用
◆ 使Dart適用于全部范圍的web設備,包括手機、平板、筆記本和服務器
◆ 提供工具使Dart能夠在所有現代瀏覽器上快速運行
這些設計目標定位于當前Web開發(fā)者面對的如下問題:
◆ 小腳本經常演化為沒有明顯結構的大型web應用,他們難以調試和維護。另外,這些整體的應用不能被切分所以不同小組不能獨立的工作。當web應用變大之后很難有生產力。
◆ 腳本語言的流行是因為他們輕量型的本質使其快速寫代碼很容易。通常應用與其它部分的契約是寫在注釋中的而不是在語言自身的構造中。結果,作者以外的人難以閱讀和維護一段特定的代碼。
◆ 使用現存的語言,開發(fā)者被迫在靜態(tài)語言和動態(tài)語言中做出選擇。傳統(tǒng)的靜態(tài)語言要求重量型的工具鏈并且感覺死板和過度約束的代碼風格。
◆ 開發(fā)者沒有創(chuàng)建出一種同時適用客戶端和服務端的均衡系統(tǒng),除了少數情況如Node.js和GWT。
◆ 不同的語言和格式需要上下文切換,很麻煩并增加了編碼的復雜性。
意欲取代Javascript
誰能相信, Javascript的設計,其實只用了十天。而且,設計師Brendan Eich是為了向公司交差,本人并不愿意這樣設計.詳情請參考JavaScript誕生記。Javascript同時結合了函數式編程和面向對象編程的特點,這很可能是歷史上的***例。而且直到今天為止,Javascript仍然是世界上唯一使用Prototype繼承模型的主要語言。這使得它沒有設計先例可以參考。最糟糕的是Javascript過早的標準化,1996年8月,微軟公司強勢介入,宣布推出自己的腳本語言Jscript;11月,為了壓制微軟,網景公司決定申請Javascript的國際標準;1997年6月,***個國際標準ECMA-262正式頒布。太多的巧合促成了JavaScript與生俱來的10個設計缺陷。
在谷歌正式推出Dart后,眾家評說谷歌新編程語言Dart,紛紛猜測倘若Google的Dart技術上優(yōu)于JavaScript,這個孤單的事實能夠促使它成功的取代JavaScript嗎?
Dart如果真的像是解釋性Smalltalk語言的話,它幾乎將直接與JavaScript和Python競爭。如果將“Go”語言作為衡量標準,Dart其實更像是一個新奇小玩意,而不是什么開拓性的工具。它可能只是為了解決“以谷歌為中心”的問題,而不是旨在成為一種流行的編程語言。目前,人們還不清楚它的定位,還是讓我們拭目以待吧。
#p#
下面是本期編程語言排行榜的其他排名數據和趨勢走向。
前10名編程語言走勢圖
20到50名語言排行
下面是第50到100的編程語言排名
(Visual) FoxPro, ABC, Algol, Bash, bc, BETA, BlitzMax, Boo, Bourne shell, CFML, cg, CL (OS/400), Clean, cT, Dart, Dylan, Eiffel, Factor, Free Pascal, Groovy, Icon, IDL, Io, J, JavaFX Script, JScript.NET, Korn shell, LabVIEW, Lingo, LPC, MAD, MUMPS, NATURAL, Oberon, Occam, OpenCL, OpenEdge ABL, Oz, PostScript, PowerShell, REXX, S, Scala, SPSS, Standard ML, SuperCollider, VBScript, X10, xBase, Z shell
下面給出了編程語言類別的一年變化趨勢
【2011年榜單回顧】