學(xué)Javascript只能做web前端嗎?
網(wǎng)友解答: 然而并不是。準(zhǔn)確的說(shuō),只有在Javascript誕生之初,它才是只能用于Web前端的語(yǔ)言。但很快就有各種各樣的Javascript支持環(huán)境被開(kāi)發(fā)出來(lái),應(yīng)用于各個(gè)方面,不僅限于
然而并不是。準(zhǔn)確的說(shuō),只有在Javascript誕生之初,它才是只能用于Web前端的語(yǔ)言。但很快就有各種各樣的Javascript支持環(huán)境被開(kāi)發(fā)出來(lái),應(yīng)用于各個(gè)方面,不僅限于前端。
我們來(lái)回顧一下歷史,早在1995年,網(wǎng)景公司(Netscape)的布蘭登·艾奇發(fā)明了Javascript語(yǔ)言,并在其公司推出的網(wǎng)景領(lǐng)航員(Netscape Navigator)瀏覽器上率先支持。因?yàn)樵O(shè)計(jì)之初就與Sun公司的Java語(yǔ)言有著千絲萬(wàn)縷的聯(lián)系,所以取名Javascript。
微軟公司看到Javascript大為流行很快就坐不住了,于1996年,也就是Javascript誕生僅一年之后,就推出了自己的腳本語(yǔ)言,取名為JScript。值得注意的是,JScript與Javascript幾乎完全一樣,并與 Internet Explorer 3.0 一同發(fā)布。這個(gè)時(shí)候,雖然互聯(lián)網(wǎng)才剛剛在美國(guó)流行,但已經(jīng)出現(xiàn)了不少基于動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的網(wǎng)站。微軟推出的IIS程序所支持的ASP技術(shù),就因?yàn)楹?jiǎn)單易學(xué)而廣為流傳。
很少有人知道的是,用ASP技術(shù)開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè),并不是只能用Visual Basic語(yǔ)言,微軟在Windows 客戶端腳本及ASP服務(wù)端腳本均支持JScript語(yǔ)言。也就是說(shuō),早在上世紀(jì)90年代末,Javascript語(yǔ)言就可以用來(lái)編寫桌面腳本和服務(wù)器后端代碼了。只不過(guò)在互聯(lián)網(wǎng)普及之前,微軟公司的Visual Basic實(shí)在是太受歡迎了,幾乎沒(méi)有不會(huì)寫VB的程序員。所以當(dāng)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)一出現(xiàn),99%的程序員理所當(dāng)然的選擇了VB語(yǔ)言,而不是陌生的Javascript。
時(shí)間跨越到2002年,微軟公司的.Net Framework開(kāi)發(fā)框架橫空出世,同時(shí)上市的還有其最新的Visual Studio開(kāi)發(fā)平臺(tái)。.Net的上市,最吸引眼球的就是C#語(yǔ)言,它是微軟為了對(duì)抗Java語(yǔ)言而推出的殺手锏。C#的出現(xiàn),吸引了大批Java語(yǔ)言程序員,以及各種非Visual Basic程序員,比如C++和Delphi開(kāi)發(fā)者投靠.Net陣營(yíng),而VB程序員則可以在.Net框架下繼續(xù)使用Visual Basic語(yǔ)言開(kāi)發(fā)代碼。
眾所周知,開(kāi)發(fā)者可以借助.Net框架來(lái)創(chuàng)造出各種各樣的Web應(yīng)用,C#似乎天生就是為了Web應(yīng)用而創(chuàng)造出來(lái)的。Visual Studio又作為史上最成功的IDE,程序員們最常使用的集成開(kāi)發(fā)環(huán)境,為Web應(yīng)用及桌面應(yīng)用的開(kāi)發(fā)提供了不少的便利。隨著時(shí)間的推移,C#語(yǔ)言越來(lái)越成熟,相對(duì)來(lái)說(shuō),還在堅(jiān)守VB陣地的程序員也越來(lái)越少,到最后,整個(gè).Net陣營(yíng)幾乎成了C#語(yǔ)言一家獨(dú)大的局面。
但有一個(gè)細(xì)節(jié)極少有人知道,那就是.Net框架從一開(kāi)始就支持JScript語(yǔ)言。也就是說(shuō),不論是桌面應(yīng)用還是Web應(yīng)用,完全可以用Javascript來(lái)編寫并在.Net框架下編譯通過(guò)。只要打開(kāi).Net Framework的安裝文件夾就能看到,里面有一個(gè)名為 jsc.exe 的程序,那就是JScript語(yǔ)言的編譯器,與之對(duì)應(yīng)的C#和VB編譯器是 csc.exe 和 vbc.exe。
那在.net陣營(yíng)中,為什么幾乎沒(méi)有人用Javascript語(yǔ)言呢?很大的原因是微軟公司沒(méi)有在Visual Studio中支持JScript,開(kāi)發(fā)者無(wú)法用VS編輯器創(chuàng)建一個(gè)基于JScript的項(xiàng)目,也無(wú)法用JScript語(yǔ)言來(lái)進(jìn)行可視環(huán)境的應(yīng)用開(kāi)發(fā)。如果要用JScript編寫桌面應(yīng)用或者Web應(yīng)用,必須手動(dòng)編譯。微軟弱化JScript存在感的重要因素,就是來(lái)源于ECMAScript標(biāo)準(zhǔn)的制約。
要知道微軟一向喜歡特立獨(dú)行,著名的IE瀏覽器與W3C標(biāo)準(zhǔn)不兼容是人盡皆知的事情。在編程語(yǔ)言方面,微軟也是如此。Javascript誕生不久,ECMA(一家國(guó)際電信標(biāo)準(zhǔn)組織)就出臺(tái)了相應(yīng)的標(biāo)準(zhǔn)文檔,即ECMAScript。之后的所有Javascript語(yǔ)言實(shí)現(xiàn),均是遵守這一標(biāo)準(zhǔn)的。微軟也不能例外,因?yàn)槿绻蛔袷剡@一標(biāo)準(zhǔn),那么微軟的產(chǎn)品將很難進(jìn)入歐洲或者其他國(guó)際市場(chǎng)。
為了防止受制于人,微軟自然更愿意創(chuàng)造自己的標(biāo)準(zhǔn),只有把自己的標(biāo)準(zhǔn)打造成行業(yè)標(biāo)準(zhǔn),才能擁有更多的主動(dòng)權(quán)和話語(yǔ)權(quán),于是也就有了C#語(yǔ)言。所以,為了滿足ECMA的標(biāo)準(zhǔn)的要求,微軟不得不在 .Net 框架中提供對(duì) Javascript 的原生支持。但為了防止被ECMA綁架,微軟又不得不弱化Javascript的存在,反而把C#推到最重要的位置,來(lái)實(shí)現(xiàn)自己野心。
但不可否認(rèn)的是,Javascript一直可以被用在非前端開(kāi)發(fā)領(lǐng)域,并且有時(shí)候工作的還要比其他語(yǔ)言更好。比如早期Web應(yīng)用在數(shù)據(jù)交換是多采用的是XML格式,但后來(lái)JSON格式的流行使得許多語(yǔ)言在新版本中添加了相應(yīng)的JSON支持庫(kù)。然而,在Ajax與JSON流行之初,多數(shù)語(yǔ)言還不能很好的支持JSON時(shí),像微軟的JScript卻是原生就支持的。也就是說(shuō),在那個(gè)時(shí)候,后端程序如果用JScript來(lái)開(kāi)發(fā),在JSON數(shù)據(jù)交換方面,會(huì)非常容易。
再后來(lái)Node.js的出現(xiàn),更是模糊了前后端之間的區(qū)別,使得許多只熟悉前端Javascript技術(shù)的程序員也可以涉及到后端應(yīng)用的開(kāi)發(fā)。當(dāng)然Node.js并不僅僅是用在Web前后端開(kāi)發(fā)上,也能用于監(jiān)控、桌面應(yīng)用、流媒體等等不同的領(lǐng)域。
除了Web前端與后端應(yīng)用。Javascript語(yǔ)言還被用在一個(gè)非常重要的領(lǐng)域,那就是Flash。盡管Flash技術(shù)已經(jīng)是昨日黃花,正在迅速被HTML5等技術(shù)所取代,Adobe公司也早已經(jīng)宣判了Flash的死刑。但不得不承認(rèn),曾經(jīng)Falsh技術(shù)在Web領(lǐng)域可謂是如日中天。而Flash技術(shù)中所采用的ActionScript語(yǔ)言,也是一種遵循ECMAScript標(biāo)準(zhǔn)的腳本語(yǔ)言,即Javascript語(yǔ)言的另一種實(shí)現(xiàn)。
除了上面這些,Javascript還有一些變種,比如TypeScript,SoundScript等等也可以應(yīng)用在不同的場(chǎng)合。
網(wǎng)友解答:我覺(jué)得并不是這樣的。