Nombas 和 ScriptEase
大概在 1992 年,一家稱作 Nombas 的公司開發(fā)了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言酪惭。Cmm 背后的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與 C (和 C ++)足夠的相似性,以便開發(fā)人員能很快學(xué)會浪册。這個腳本語言捆綁在一個叫做 CEnvi 的共享軟件中,它首次向開發(fā)人員展示了這種語言的威力岗照。
Nombas 最終把 Cmm 的名字改成了 ScriptEase村象,原因是后面的部分(mm)聽起來過于消極,同時字母 C “令人害怕”攒至。
現(xiàn)在 ScriptEase 已經(jīng)成為了 Nombas 產(chǎn)品背后的主要驅(qū)動力厚者。
Netscape 發(fā)明了 JavaScript
當(dāng) Netscape Navigator 嶄露頭角時,Nombas 開發(fā)了一個可以嵌入網(wǎng)頁中的 CEnvi 的版本迫吐。這些早期的試驗被稱為 Espresso Page(濃咖啡般的頁面)库菲,它們代表了第一個在萬維網(wǎng)上使用的客戶端語言。而 Nombas 絲毫沒有料到它的理念將會成為萬維網(wǎng)的一塊重要基石志膀。
當(dāng)網(wǎng)上沖浪越來越流行時熙宇,對于開發(fā)客戶端腳本的需求也逐漸增大。此時溉浙,大部分因特網(wǎng)用戶還僅僅通過 28.8 kbit/s 的調(diào)制解調(diào)器連接到網(wǎng)絡(luò)烫止,即便這時網(wǎng)頁已經(jīng)不斷地變得更大和更復(fù)雜。而更加加劇用戶痛苦的是戳稽,僅僅為了簡單的表單有效性驗證馆蠕,就要與服務(wù)器進行多次地往返交互。設(shè)想一下,用戶填完一個表單荆几,點擊提交按鈕吓妆,等待了 30 秒的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段吨铸。
那時正處于技術(shù)革新最前沿的 Netscape行拢,開始認(rèn)真考慮開發(fā)一種客戶端腳本語言來解決簡單的處理問題。
當(dāng)時工作于 Netscape 的 Brendan Eich诞吱,開始著手為即將在 1995 年發(fā)行的 Netscape Navigator 2.0 開發(fā)一個稱之為 LiveScript 的腳本語言舟奠,當(dāng)時的目的是在瀏覽器和服務(wù)器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時完成 LiveScript 實現(xiàn)房维。
就在 Netscape Navigator 2.0 即將正式發(fā)布前沼瘫,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個因特網(wǎng)時髦詞匯咙俩。Netscape 的賭注最終得到回報耿戚,JavaScript 從此變成了因特網(wǎng)的必備組件。
三足鼎立
因為 JavaScript 1.0 如此成功阿趁,Netscape 在 Netscape Navigator 3.0 中發(fā)布了 1.1 版膜蛔。恰巧那個時候,微軟決定進軍瀏覽器脖阵,發(fā)布了 IE 3.0 并搭載了一個 JavaScript 的克隆版皂股,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領(lǐng)域的這重要一步雖然令其聲名狼藉命黔,但也成為 JavaScript 語言發(fā)展過程中的重要一步呜呐。
在微軟進入后,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript悍募、IE 中的 JScript 以及 CEnvi 中的 ScriptEase蘑辑。與 C 和其他編程語言不同的是,JavaScript 并沒有一個標(biāo)準(zhǔn)來統(tǒng)一其語法或特性搜立,而這 3 種不同的版本恰恰突出了這個問題以躯。隨著業(yè)界擔(dān)心的增加,這個語言的標(biāo)準(zhǔn)化顯然已經(jīng)勢在必行啄踊。
標(biāo)準(zhǔn)化
1997 年忧设,JavaScript 1.1 作為一個草案提交給歐洲計算機制造商協(xié)會(ECMA)。第 39 技術(shù)委員會(TC39)被委派來“標(biāo)準(zhǔn)化一個通用颠通、跨平臺址晕、中立于廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自 Netscape顿锰、Sun谨垃、微軟启搂、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的 TC39 錘煉出了 ECMA-262,該標(biāo)準(zhǔn)定義了名為 ECMAScript 的全新腳本語言刘陶。
在接下來的幾年里胳赌,國際標(biāo)準(zhǔn)化組織及國際電工委員會(ISO/IEC)也采納 ECMAScript 作為標(biāo)準(zhǔn)(ISO/IEC-16262)。從此匙隔,Web 瀏覽器就開始努力(雖然有著不同的程度的成功和失斠缮弧)將 ECMAScript 作為 JavaScript 實現(xiàn)的基礎(chǔ)。