- JavaScript典型應用與最佳實踐
- 夏慧軍編著
- 1687字
- 2018-12-29 19:05:59
1.3 還原一個真實的JavaScript
迷失也好,誤解也罷,都動搖不了JavaScript作為一種強大開發語言的本質,也無法阻止其在Web應用開發中發揮越來越重要的作用。我們需要還原一個真實的JavaScript,下面來了解一下JavaScript的歷史。
JavaScript最早的歷史可以追溯到Nombas公司于1992年開發的一種叫做Cmm(C-minus-minus)的嵌入式腳本語言。Nombas開發Cmm的本意是為了在其一個叫做Cenvi的共享軟件產品中提供一個可以替代宏操作的腳本語言,并且該腳本語言的語法與C語言十分接近,以方便C語言程序員的學習與掌握。Cmm十分成功,讓很多人知道了腳本語言的強大威力,為了更好地描述這種語言,Nombas后來把Cmm改名為ScriptEase,并且逐漸發展成為Nombas產品實現強大功能的關鍵支撐技術。
當互聯網技術開始發展與普及時,Netscape Navigator出現了,并且取得了非凡的成功。Nombas順時地開發了CEnvi的網頁嵌入式版本,這就是第一個在Web頁上使用的客戶端腳本語言。但那時的Nombas還沒有意識到這項技術的重要性,更沒有想到這種方法會對Web開發技術所產生的革命性的影響;ScriptEase在毫無意識中成為了現在JavaScript技術的鼻祖。
而此時,正處于風頭浪尖上的Netscape Navigator正面臨著一個很關鍵的問題:客戶端的表單驗證。雖然Internet得到了發展,上網用戶越來越多,早期的Internet上網用戶基本上還是用很慢的撥號上網方式,每一次頁面訪問都要花費漫長的下載時間。而雪上加霜的是當時的Netscape Navigator沒有客戶端的表單驗證功能,所有表單驗證都需要提交服務器進行驗證,然后將驗證結果返回。這種方式可想而知是多么的痛苦,Internet用戶不得不為其一丁點的誤操作而付出慘痛的網絡流量與時間上的代價。
當然,對此問題以技術創新聞名的Netscape不會坐視不管,于是一種叫做LiveScript的腳本語言在Netscape工程師Brendan Eich的手中開始實現,當時的定位不僅僅為了解決客戶端表單驗證問題,還能在服務器端編寫服務器端程序(類似于VBScript,可工作于客戶端與服務器端),這種腳本語言有一段時間也被稱做LiveWire。在1995年Netscape Navigator 2.0即將發布時,當時的Java技術正在興起,并且有著更進一步發展的趨勢,為了趕時髦,也為了搭上Java這個順風車,LiveScript在隨著Netscape Navigator發布時,改名為JavaScript,版本為1.0。
這一改名終于宣布了對Web開發產生深遠、重大影響的JavaScript的正式誕生,也為JavaScript種種的誤解埋下了禍根。
最突出也是最常見的一種誤解就是認為JavaScript是對Java的一種簡單實現和低級版本,這種印象使很多嚴肅的程序員對其不屑一顧,認為它只是能夠完成一些小花樣的玩具技術,對真正的應用開發毫無用處,從而從客觀上阻止了JavaScript的普及與應用。
雖然存在以上的誤解,但是JavaScript 1.0還是取得了巨大的成功,因為Web開發者第一次能在客戶端通過JavaScript實現很多以前幾乎不可能完成的功能,如表單驗證等。在Netscape發布Netscape Navigator 3.0時,JavaScript也從1.0升級到了1.1版本。與此同時,微軟發布了Internet Explorer 3.0,由于見識了JavaScript 1.0的成功,因此隨著Internet Explorer 3.0一起發布的還有一個基本上與JavaScript類似的客戶端腳本,微軟將其命名為JScript。由于微軟在軟件領域的地位,特別是后來Internet Explorer在瀏覽器市場取得的巨大成功,JScript的出現,也可以看成是JavaScript發展史上重要的一環。
這樣,Netscape Navigator中的JavaScript, Internet Explorer中的JScript同時存在,由于缺少標準,給Web中的JavaScript開發帶來了嚴重的困擾,為了實現兼容Navigator與Internet Explorer的JavaScript開發方案,開發者不得不寫出很多繁雜與奇怪的代碼去兼容JavaScript與JScript。這樣一來,對JavaScript進行標準化的呼聲也越來越高了。
為了取得主動權,Netscape于1997年將JavaScript 1.1作為一個標準草案提交給歐洲計算機制造商協會(ECMA)。第39技術委員會(TC39)被ECMA委派來“標準化一個通用、跨平臺、中立于廠商的腳本語言的語法與語義”。由來自于各主要腳本編程提供商的技術專家組成的TC39制定了ECMA-262標準,即定義了一種叫做ECMAScript的腳本語言。隨后,國際標準化組織(ISO)、國際電工委員會(IEC)也采用了ECMAScript作為標準。從此,客戶端的腳本語言有了統一的國際標準,各個JavaScript提供商也在斗爭與協商中艱難地向ECMAScript標準靠攏,雖然就目前的情況來看不容樂觀,各種各樣的兼容性問題依然存在,但是畢竟有了一個努力的目標,從而也有理由奢望一個美好的未來。
JavaScript從1995年誕生到現在也不過只有十多年的歷史,但是在日新月異的計算機技術領域,十多年前的技術到現在還具有如此的活力,足見JavaScript的成功。它的成功來自于其切實能解決Web開發者所關心的問題,并且在不斷地與新技術的融合、交流中發展了自己,從而保持其長久的競爭力。本書后面的章節將會專門講述JavaScript怎樣與新技術進行融合、交流。