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

2013年6月編程語(yǔ)言排行榜:JavaScript重回前十

開(kāi)發(fā) 后端 開(kāi)發(fā)工具
TIOBE編程語(yǔ)言排行榜6月榜出爐。C#跌出前五,他的位置由PHP頂替,這也是今年以來(lái)PHP首次闖入前五。值得注意的是JavaScript本月排名第十位, 重新進(jìn)入排行榜前十。

       TIOBE編程語(yǔ)言排行榜6月榜出爐。本期排行榜前四位沒(méi)有變化,C語(yǔ)言依舊穩(wěn)居第一寶座,Java和Objective-C列位第二、第三,C++排在第四。C#跌出前五,他的位置由PHP頂替,這也是今年以來(lái)PHP首次闖入前五。

      值得注意的是,JavaScript本月排名第十位, 重新進(jìn)入排行榜前十。JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶(hù)端腳本語(yǔ)言,是時(shí)下最為流行的Web腳本語(yǔ)言。因此這樣一種無(wú)處不在的語(yǔ)言遲遲沒(méi)有進(jìn)入前五,讓人覺(jué)得無(wú)法理解。

      現(xiàn)如今JavaScript正在積極擴(kuò)大其應(yīng)用領(lǐng)域,Node.js是一套基于JavaScript的工具包,以此用來(lái)編寫(xiě)高性能網(wǎng)絡(luò)服務(wù)器,使 JavaScript在服務(wù)器端得以應(yīng)用。此外,基于Javascript開(kāi)發(fā)的游戲(大部分基于瀏覽器)也在不斷增加。

      而其他語(yǔ)言在以JavaScipt為目標(biāo)而誕生,比如CoffeeScript(排名139), 該語(yǔ)言增強(qiáng)了JavaScript 的精簡(jiǎn)性與可讀性,可被編譯成高效的JavaScript;TypeScript (排名207)是JavaScript的一個(gè)超集,TypeScript用來(lái)為大型應(yīng)用服務(wù),而編譯時(shí)它生成JavaScript 以確保兼容性。

前20名榜單排行榜:

還原JavaScript的真實(shí)歷史:

在許多資料,JavaScript的語(yǔ)源被追溯到一種名為Cmm的語(yǔ)言。同樣是在這一溯源的過(guò)程中,人們發(fā)現(xiàn)“其實(shí)”JavaScript不是第一種網(wǎng)頁(yè)中的腳本語(yǔ)言。現(xiàn)在一些所謂“公認(rèn)”的情況是這樣的:

  • 大概在1992年,一家稱(chēng)作Nombas的公司開(kāi)始開(kāi)發(fā)一種叫做C減減(C-minus-minus,簡(jiǎn)稱(chēng)Cmm)的嵌入式腳本語(yǔ)言。這個(gè)腳本語(yǔ)言捆綁在一個(gè)叫做CEnvi的共享軟件產(chǎn)品中,當(dāng)Netscape Navigator嶄露頭角時(shí),Nombas開(kāi)發(fā)了一個(gè)可以嵌入網(wǎng)頁(yè)中的CEnvi的版本。這些早期的試驗(yàn)稱(chēng)為EspressoPage(濃咖啡般的頁(yè)面),它們代表了第一個(gè)在萬(wàn)維網(wǎng)上使用的客戶(hù)端腳本語(yǔ)言。而Nombas絲毫沒(méi)有料到它的理念將會(huì)成為因特網(wǎng)的一塊重要基石。

然而,這是真實(shí)的情況嗎?運(yùn)行在Netscape中的第一個(gè)“客戶(hù)端腳本語(yǔ)言”真的是Cmm的濃咖啡?又或者真的象Wiki中記述的那樣,Brendan Eich在JavaScript引用了Cmm語(yǔ)言特性?不是的。盡管上述的資料看起來(lái)出權(quán)威:《Javascript高級(jí)程序設(shè)計(jì)》(Professional JavaScriptfor Web Developers),但他的確錯(cuò)了。

JavaScript與Cmm在語(yǔ)言特性上無(wú)關(guān)

為了弄明白JavaScript與Cmm的關(guān)系,我大概用了三天的時(shí)間,從網(wǎng)上收集了多個(gè)Cmm的版本。這些版本既包括早期的Cmm(1993年),也包括在JavaScript初創(chuàng)時(shí)的Cmm(1995年),還包括在后來(lái),Cmm更名為ScriptEase的第一個(gè)版本(3.0, 1997年),作為參考,我還考察了它在服務(wù)器端的版本。

遺憾的是,在1996年之前,在Cmm的2.x的最后一個(gè)版本之前,Cmm都并不是一個(gè)面向?qū)ο螅ɑ蚧趯?duì)象)的語(yǔ)言,Cmm正如它自己的名字所說(shuō)的一樣:是一個(gè)精減版的C,而不是C++或以C++為基礎(chǔ)的變種。所以Cmm中有“結(jié)構(gòu)”,也有#include等,整個(gè)的體系是參考C語(yǔ)言的。

由于JavaScript在基本的語(yǔ)法特性(例如大括號(hào)、語(yǔ)句關(guān)鍵字等)上參考了C,在對(duì)象系統(tǒng)上(例如“.”作為成員存取)上參考了Java,因此在一定程度上Cmm與JavaScript存在相似性——主要是

與共同借鑒自C的部分。但是除了這些之外,JavaScript與Cmm在語(yǔ)言特性上完全無(wú)關(guān)。


JavaScript最初的基本設(shè)計(jì)是怎樣的?

我需要補(bǔ)充一下JavaScript初始設(shè)計(jì)目標(biāo)。Brendan Eich在1995年4月前后被Netscape公司雇傭,目標(biāo)是完成一套語(yǔ)言系統(tǒng)。最初的設(shè)計(jì)里,該語(yǔ)言系統(tǒng)是為Netscape的LiveWire戰(zhàn)略服務(wù)的。該

戰(zhàn)略彰顯了Netscape當(dāng)年的勃勃野心,它是Netscape公司的一個(gè)通用的Web開(kāi)發(fā)環(huán)境,包括NetscapeEnterprise、FastTrack Server等。LiveWire架構(gòu)也成為所有Web服務(wù)器提供SP(Server Page)技術(shù)的藍(lán)本。例如在IIS中的ASP,以及更早期的IDC(Internet Database Connect)。

這種技術(shù)在服務(wù)器端通過(guò)內(nèi)嵌于網(wǎng)頁(yè)的LiveScript代碼,使用名為database、DbPool、Cursor等的一組對(duì)象來(lái)存取LiveWire Database。作為整套的解決方案,Netscape在客戶(hù)端網(wǎng)頁(yè)上也提供

LiveScript腳本語(yǔ)言的支持,除了訪問(wèn)Array、String等這些內(nèi)置對(duì)象之外,也可以訪問(wèn)window等瀏覽器對(duì)象。

不過(guò)并不清楚的是:LiveScript最初的設(shè)計(jì)是先考慮服務(wù)器端應(yīng)用,還是先考慮網(wǎng)頁(yè)中應(yīng)用。但這些應(yīng)用環(huán)境的決策上的變化,時(shí)間僅僅限制在1995年4月至1995年10月之前,因?yàn)楫?dāng)月發(fā)布的netscape 2.0 beta1已經(jīng)包含了腳本支持。

在netscape 2.0 beta1中并不支持<script>標(biāo)簽,而只是在form表單元素中支持了onclick這類(lèi)的事件。這時(shí)的腳本代碼是用在HTML標(biāo)簽屬性上的,也就是類(lèi)似于:

  1. <input type="button" onclick="alert('hello, world!')"> 

很快,三周之后netscape 就發(fā)布了beta2。這個(gè)版本正式地支持了<script>標(biāo)簽,并可以解析該標(biāo)簽中的代碼、標(biāo)識(shí)符,開(kāi)始具備調(diào)用函數(shù)、表達(dá)式運(yùn)算等能力。這個(gè)版本已經(jīng)具備了JavaScript 1.0的基本性質(zhì)。

——什么?能調(diào)用函數(shù)、表達(dá)式運(yùn)算就是JavaScript 1.0的基本性質(zhì)了?是的,差不多了。相比起來(lái),JavaScript 1.0只是在這樣的基礎(chǔ)上加上了一套對(duì)象系統(tǒng)而已。在隨后發(fā)布的beta 3中,函數(shù)可以作為構(gòu)造器使用,可以創(chuàng)建出用戶(hù)自己的對(duì)象來(lái)了。再后來(lái)window等全局對(duì)象被加了進(jìn)來(lái),再把“當(dāng)前網(wǎng)頁(yè)”中的表單元素等影射成可編程對(duì)象,JavaScript 1.0就完成了。

僅僅如此而已。在JavaScript 1.0的時(shí)代,既沒(méi)有“原型繼承”,也沒(méi)有“函數(shù)式編程”——甚至連匿名函數(shù)也沒(méi)有支持,所以下面的代碼就足夠讓瀏覽器掛掉了:

  1. var func = function() { 

JavaScript 1.0的設(shè)計(jì)目標(biāo),就是“讓網(wǎng)頁(yè)動(dòng)起來(lái)”,最初的要求包括三個(gè)方面:

  1.  讓網(wǎng)頁(yè)中的元素可以被編程,所以象forms、links這些對(duì)象,在網(wǎng)頁(yè)裝載結(jié)束后就初始化為全局成員了——那時(shí)候還沒(méi)有所謂的DOM或DHTML呢。
  2.   讓JavaScript跟Java接近一些,因?yàn)镹etscape與Sun有戰(zhàn)略合作。而且,Sun那時(shí)相當(dāng)火暴。
  3.  讓JavaScript可以在服務(wù)器與客戶(hù)端兩邊都使用,因此它必須是嵌入式的。

不過(guò)JavaScript的另一項(xiàng)特性,則自它的第一個(gè)版本就存在。該特性就是動(dòng)態(tài)執(zhí)行,也就是eval()。這是與它的“腳本”的性質(zhì)有關(guān)的。在早期的“腳本”也被稱(chēng)為“批處理程序”,就如同DOS批處理

或Unix shell一樣,腳本應(yīng)當(dāng)具有裝入字符串文本并“動(dòng)態(tài)執(zhí)行”的能力。

所以總結(jié)起來(lái),JavaScript 1.0其實(shí)是一個(gè)可以創(chuàng)建和操作對(duì)象的普通過(guò)程式語(yǔ)言。這個(gè)時(shí)候的JS代碼既不能檢測(cè)“對(duì)象-構(gòu)造器”之間的繼承性,也沒(méi)有原型繼承這樣的東東來(lái)構(gòu)建對(duì)象系統(tǒng)。函數(shù)

除了在new MyObject()時(shí)協(xié)助傳入一個(gè)this引用之外,就跟普通的函數(shù)完全一樣。而且,最為有趣的是,Brendan Eich這時(shí)還沒(méi)有形成JavaScript中最重要的“類(lèi)型系統(tǒng)”概念,此時(shí)undefined還只

是系統(tǒng)全局中的一個(gè)特殊的值,而不是某種類(lèi)型。typeof關(guān)鍵字也還根本不存在。換言之,Eich現(xiàn)在要做的只是一個(gè)“可編程的、可以用對(duì)象的”腳本語(yǔ)言,至于它是否在類(lèi)型系統(tǒng)上完備或者優(yōu)美,他還顧不過(guò)來(lái)呢。

JavaScript最重要的“構(gòu)造器-原型繼承”概念是在JavaScript 1.1版本中提出的,類(lèi)型系統(tǒng)和重要的函數(shù)式語(yǔ)言特性要等到v1.2之后才被加入。現(xiàn)在,在1996年1月底,JavaScript 1.0隨Netscape2.0正式版發(fā)布了。

#p#

前10名編程語(yǔ)言走勢(shì):

21-50編程語(yǔ)言排名:

后50名的編程語(yǔ)言:

(Visual) FoxPro, ABC, Alice, Apex, Applescript, AutoLISP, bc, C shell, CFML, CL (OS/400), Clojure, Common Lisp, Dart, Dylan, ECMAScript, Eiffel, Emacs Lisp, Go, Gosu, Heron, Icon, IDL, Informix-4GL, J, JavaFX Script, LabVIEW, Ladder Logic, Lasso, LPC, Mathematica, MS-DOS batch, MUMPS, NATURAL, Oberon, OCaml, Occam, OpenCL, Oz, PowerShell, Q, REXX, S, sed, Simulink, Smarty, SPARK, VBScript, VHDL, xBase, XSLT

原文鏈接:http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

 

責(zé)任編輯:陳四芳 來(lái)源: 51CTO
相關(guān)推薦

2013-07-30 10:00:36

RedMonk編程語(yǔ)言排行榜

2023-06-09 15:39:40

編程語(yǔ)言Python

2013-09-12 11:09:23

Transact-SQ語(yǔ)言排行榜

2015-10-09 10:30:38

TIOBE編程語(yǔ)言排行榜

2018-03-08 09:08:51

TIOBE編程語(yǔ)言Python

2015-07-07 10:52:46

RedMonk編程語(yǔ)言

2013-10-11 09:34:33

編程語(yǔ)言排行榜JavaGroovy

2017-03-09 19:30:15

編程語(yǔ)言排行榜Swift

2009-06-09 09:07:06

編程語(yǔ)言排行榜JavaScript

2013-01-06 01:58:00

編程語(yǔ)言排行

2013-07-09 10:58:22

編程語(yǔ)言排行榜語(yǔ)言排行

2013-03-11 16:10:20

2013-03-11 16:16:13

2019-07-23 14:14:59

編程語(yǔ)言JavaPython

2020-02-14 09:19:12

編程語(yǔ)言JavaPython

2021-09-23 10:50:42

編程語(yǔ)言Python排行

2021-07-07 05:42:24

編程語(yǔ)言開(kāi)發(fā)

2022-10-28 16:13:03

編程語(yǔ)言Java開(kāi)發(fā)

2013-11-11 11:00:39

編程語(yǔ)言排行榜

2022-06-21 14:15:27

編程語(yǔ)言PythonPHP
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 精品福利一区二区三区 | 一级毛片在线播放 | 99精品国产一区二区青青牛奶 | 亚洲精品一区二区在线观看 | 在线视频中文字幕 | 久久成人综合 | av在线免费观看网站 | 亚洲成人午夜电影 | 日韩欧美一区二区三区免费看 | 成人a免费 | 一级毛片在线播放 | 亚洲欧美精品久久 | 一区二区三区国产视频 | 久草综合在线视频 | 九九在线视频 | 国产ts一区 | 免费一级毛片 | 天堂久久久久久久 | 欧美日韩一区二区在线观看 | 欧美成人h版在线观看 | 久久亚洲天堂 | 成年网站在线观看 | 欧美久久久久 | 天天艹逼网 | 亚洲精品日韩在线观看 | 日韩波多野结衣 | 国产精品永久久久久久久www | 亚洲欧美国产精品久久 | 在线播放一区二区三区 | 亚洲一区中文字幕在线观看 | av资源中文在线 | av黄色在线播放 | 特黄特色大片免费视频观看 | a免费视频 | 97人人超碰 | 偷拍亚洲色图 | 亚洲444kkkk在线观看最新 | 欧洲尺码日本国产精品 | 国产亚洲一区二区精品 | 久久久久久国产 | 午夜男人天堂 |