回首與期待,JavaScript這一年
Web技術(shù)每年都在日新月異的變化著,雖然這樣,但仍然有一些語言處于屹立不倒的位置,比如本文要討論的JavaScript。
JavaScript自1995年誕生以來已過去17個(gè)年頭,它被廣泛地應(yīng)用在Web開發(fā)中,隨著HTML5技術(shù)的發(fā)展,JavaScript在未來還將有更大的發(fā)展和應(yīng)用空間。JavaScript從過去“裝飾性”的一種腳本語言轉(zhuǎn)變?yōu)橹髁鞯木幊陶Z言,例如在2012年3月份發(fā)布的編程語言排行榜中,JavaScript占據(jù)第8名,超越了Perl和Python。
依舊春光明媚
2012年,JavaScript總體態(tài)勢(shì)很好,不像HTML5一直處在風(fēng)口浪尖。也未受到其它語言(Dart,CoffeeScript)的影響,仍然是開發(fā)者們最喜愛的前端編程語言。
那么下面讓我們來簡單的分析一下JavaScript為什么還會(huì)這么火。
第一簡單性,JS是一門非常輕量級(jí)的語言,適合任何人學(xué)習(xí),沒有大量復(fù)雜的保留字,沒有各種復(fù)雜的數(shù)據(jù)類型。難怪有人[探討]JavaScript是性價(jià)比最高的技術(shù)?
第二速度,Google的V8 JS引擎讓開發(fā)者可以在客戶端和服務(wù)端更好的執(zhí)行JS代碼,這就給復(fù)雜的JS程序提供了基礎(chǔ)。
第三與服務(wù)器交互較少,JS是運(yùn)行在客戶端的腳本語言,這就節(jié)省了Web服務(wù)器的請(qǐng)求時(shí)間。另外,可以再提交頁面到服務(wù)前對(duì)用戶輸入的內(nèi)容進(jìn)行驗(yàn)證。這樣減少了服務(wù)器的通信量,就意味著節(jié)約了金錢。
第四跨平臺(tái),JavaScript是依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要能運(yùn)行瀏覽器的計(jì)算機(jī),并支持JavaScript的瀏覽器就可以正確執(zhí)行。
第五讓W(xué)eb界面更豐富,尤其是一些帶UI的JavaScript框架,不僅簡化Web操作,還可以構(gòu)建非常漂亮的用戶界面,例如ExtJS,其提供了非常豐富的UI組件,包括高性能的數(shù)據(jù)表格、圖表、選項(xiàng)卡、彈窗、工具條和菜單等等,可以幫助你構(gòu)建用戶體驗(yàn)良好的Web應(yīng)用。
除了這些優(yōu)點(diǎn)外,JS還非常地靈活,作為JavaScript程序員,只要你愿意,可以把程序?qū)懙煤芎唵危?dāng)然,也可以寫得很復(fù)雜。此外,它還支持多種不同的編程風(fēng)格。你既可以采用函數(shù)式編程風(fēng)格,也可以采用更復(fù)雜一點(diǎn)的面向?qū)ο缶幊田L(fēng)格。
十全九美 勁敵來襲
當(dāng)然,世上并沒有十全十美的東西,對(duì)JS來說,也存在一些缺點(diǎn),比如其單線程機(jī)制,決定了其性能不佳等。于是各種想代替或者優(yōu)化它的新語言就悄然出現(xiàn)。比如Google發(fā)布的Dart,就是想解決所有JavaScript不能修復(fù)的根本性問題,后來CoffeeScript的出現(xiàn)更煽動(dòng)了這場取代JavaScript的戰(zhàn)爭。然而就在這種戰(zhàn)爭愈發(fā)激烈時(shí),微軟發(fā)布了TypeScript,讓這場戰(zhàn)爭愈發(fā)激烈。然而,在編程語言領(lǐng)域里,貌似并不走長江后浪推前浪這條路。
雖然編程語言之間的競爭一天也沒能停歇,然而真正能日日夜夜陪伴在程序員身邊或許也只有那么幾個(gè)語言。還是先讓我們一起來看下這幾門語言吧:
Dart一個(gè)從發(fā)布起就鼓吹要替代JavaScript的編程語言,一經(jīng)發(fā)布便竄到了編程語言排行榜的107位,次月居然到了63,速度驚人。可是從目前的發(fā)展來看,它很有可能陷入到和Go一樣不溫不火的境地。大家不妨移步過來看看:[探討] Dart路在何方?眾家評(píng)說谷歌新編程語言Dart、微軟JavaScript團(tuán)隊(duì)向Dart語言潑冷水。
CoffeeScript是一個(gè)非常精致的語言,能編譯成JavaScript。其目的是用簡單的方法揭示JavaScript優(yōu)秀的部分,拋棄JavaScript晦澀的,容易出問題的部分。就在今年5月份,CoffeeScript華麗的擠進(jìn)GitHub熱門編程語言前十。
TypeScript也是一種編譯到JavaScript的語言,可以載入JavaScript代碼然后運(yùn)行。此外值得一提的是,TypeScrip允許加入注釋,讓編譯器理解所支持的對(duì)象和函數(shù),編譯器會(huì)移除注釋,不會(huì)增加開銷;增加一個(gè)完整的類結(jié)構(gòu),使之更新是傳統(tǒng)的面向?qū)ο笳Z言。就在上個(gè)月,微軟發(fā)布了TypeScript 0.81版本,其帶來了源碼級(jí)的調(diào)試支持。更多TypeScript精彩內(nèi)容,大家不妨來看看JavaScript大師Nicholas C. Zakas談TypeScript。
到底哪個(gè)語言能成為最終的主角呢?小編在這里引入Nicholas C.Zakas在談TypeScript時(shí)的一段話:“我認(rèn)為編譯為JavaScript的語言很難達(dá)到這一目標(biāo)。我們應(yīng)該說服更多的人學(xué)習(xí)JavaScript,而不是提供更多的選擇讓他們放棄編寫JavaScript。我常在想,如果所有的團(tuán)隊(duì)、公司都把時(shí)間和精力花在研究和探索JavaScript的替代者而非維護(hù)、傳播它,那將會(huì)發(fā)生怎樣的一番景象。”
原文鏈接:http://www.php100.com/html/webkaifa/javascript/2012/1231/11878.html