JavaScript 昨天, 今天和明天

「Any application that can be written in JavaScript, will eventually be written in JavaScript.」html

「任何能夠用JavaScript編寫的應用,最終都會用JavaScript來編寫。」前端

— Jeff Atwood, Author, Entrepreneur, Cofounder of StackOverflowes6

JavaScript 的誕生

從瀏覽器的誕生提及

  • 蒂姆·伯納斯·李 爵士(Sir Timothy John Berners-Lee)是瀏覽器的發明者,咱們稱呼他爲李爵士(2004年,英國女皇伊麗莎白二世向他頒發大英帝國爵級司令勳章)。

giphy(1).gif

  • 1989年3月,工做在瑞士的歐洲核子研究中心(CERN)的李爵士向他的老闆遞交了一份提議。他的老闆在這份提議上批覆了幾個字「難以捉摸卻使人興奮!」。這也象徵着互聯網時代的開始。

Proposal.gif

  • 1990年聖誕節🎄那一天,世界上第一個瀏覽器誕生了,它的名字叫作WorldWideWeb

giphy(2).gif

  • WorldWideWeb運行在NeXT機器上,它的界面長這個樣子👇🏻,它既是一個瀏覽器,又是一個編輯器。

WorldWideWeb_FSF_GNU.png

  • 可是WorldWideWeb並無普及開來,早起普及的瀏覽器中最有名氣的還當屬由美國伊利諾伊大學的國家超級電腦應用中心NCSA)開發的Mosaic正則表達式

    giphy(3).gif

  • 開發Mosaic的團隊領導人馬克·安德森後來離開了NCSA,並與另外幾人共同創辦了Mosaic通訊公司,後來改名爲網景公司(Netscape),並推出了一個全新的瀏覽器——網景導航者Netscape Navigator)。編程

    giphy(5).gif

  • JavaScript 誕生的故事也是從網景公司開始的。segmentfault

JavaScript 呱呱落地

  • 網景公司預見到網絡須要更強的交互性,馬克·安德森認爲須要增長一種膠水語言,使開發者更容易組裝一些圖片和插件等組件。因而JavaScript應運而生。

giphy(9).gif

  • JavaScript的設計者是Brendan Eich。

Brendan Eich.gif

  • Brendan Eich用 10天時間設計出了JavaScript的原型。對,沒錯,就是 10天。再說一遍,10天

giphy(10).gif

JavaScript 的命名

  • 最初的JavaScript還不叫這個名字,而是叫作Mocha

mocha.png

  • 之因此起一個跟咖啡有關的名字是爲了蹭Java的熱度(Java也是咖啡的一種)。

giphy(11).gif

  • 在 Netscape Navigator 2.0 beta 中更名爲 LiveScript
    LiveScript.png
  • 在 Netscape Navigator 2.0 beta3 中改名爲 JavaScript
    JavaScript.png

 

giphy(13).gif

實際上JavaScript和Java真的關係不大,就好像「植物」和「植物人」同樣。瀏覽器

 

JavaScript 借鑑了哪些語言

  • 借鑑了C語言的基本語法
  • 借鑑了Java語言的數據類型內存管理
  • 借鑑了Scheme語言,將函數提高到「第一等公民」的地位;
  • 借鑑了Lisp語言的動態類型
  • 借鑑了Self語言,使用基於原型的繼承機制

giphy(6).gif

 

JavaScript的進化

JavaScript的進化與瀏覽器的發展是分不開的。網絡

【插播】網景與微軟的恩恩怨怨

Netscape Navigator 仍是 Internet Explorer

  • 就在網景的瀏覽器如日中天時,微軟推出了自家的瀏覽器 Internet Explorer,也就是臭名昭著IE瀏覽器
  • IE瀏覽器與Windows捆綁銷售,用微軟的話來講,任何購買了Windows的用戶均可以避免費使用IE。

giphy(14).gif

  • 1996年微軟推出了JScript,和IE3捆綁發行,同JavaScript構成了競爭關係。IE3率先支持了CSS。

第一次瀏覽器大戰

giphy(21).gif

  • 第一次瀏覽器大戰爆發,IE使用各類手段打擊網景,再加上網景的一系列錯誤決策,IE逐漸佔了上風。
  • 最終IE大獲全勝,網景公司被美國在線(AOL)併購。
  • 1998年3月31日,在源碼開放許可證的安排下,網景公佈了Netscape Navigator的大部分源代碼,這個項目使用了Mozilla這個名字,這也爲後來發生的事情埋下了伏筆。

giphy(4).gif

關於這段恩怨給網景公司帶來的影響,能夠參見紀錄片:代碼奔騰(2000)app

JavaScript標準化之路

  • 網景雖然倒了,但JavaScript卻愈發展示出了它的生機與活力。

走上標準化之路

  • 1996年,JavaScript開始走上了規範化之路。
  • 1996年11月,網景公司決定將JavaScript提交給國際標準化組織ECMA,但願這種語言能成爲國際標準。

ES1

  • 1997年6月,ECMA-262規範初版發佈,規範制定者是ECMA組織下一個名爲TC39的技術委員會。
  • 爲了體現這門語言的開放性和中立性,這門語言的標準便以ECMAScript的名字被寫入ECMA-262規範。
  • 簡單來說,ECMAScript是JavaScript的標準,JavaScript是ECMAScript的實現

ES2

  • 1998年6月,ECMAScript發佈第二版。

ES3

  • 1999年發佈的ECMAScript第三版加入了不少優美的特性,例如正則表達式等。

ES4

  • 第四版的草案在2000左右就被提出,但各方對於ECMAScript應該向哪一個方向發展意見不一,致使ES4流產。

giphy(20).gif

  • 關於ES4的故事十分複雜,能夠看看尤大和賀老的總結:ES6會重蹈ES4的覆轍嗎? - 知乎
  • 其中一我的物很是關鍵,就是JavaScript語言精粹的做者 Douglas Crockford。他不但願JavaScript變得繁雜失去控制,微軟贊同他的觀點,而微軟剛好主導着市場。這致使一些新特性沒有被引入ES4,ES4宣告流產。
  • 谷歌、微軟和雅虎最終決定先作一個小版本更新,也就是ES3.1。

ES5

  • 2009年發佈了第五版。
  • ES5新增了JSON支持等。

ES6

  • 2015年6月發佈ECMAScript第六版,這是最「現代」的一個版本。
  • ES6提供了各類新特性,能夠參見阮一峯的ES6入門教程
  • 以後ECMAScript開啓年更模式。因此ES6 === ES2015

 

JavaScript展望將來

放幾篇文章,感興趣的朋友隨便看看,不過將來的事情怕是誰也說不許。編輯器

 

寫在最後

  • 來前兒的火車票誰給報了。

giphy(18).gif

本人才疏學淺,若有錯誤,還望在評論中批評指正。

相關文章
相關標籤/搜索