本文已經過原作者授權翻譯。
JavaScript於25年前(1995年12月4日)首次向公眾推出。JavaScript 最初開發僅用了10天時間,便迅速成為最受歡迎的程式語言之一,如今全球有數百萬的開發人員每天都在使用它。 2020年是它的25週年紀念日——對於這個已經成為最受歡迎的程式語言之一,這無疑是一個巨大的里程碑。
JavaScript 是前端開發的首選語言,後面並催生了微軟的 Typescript,它是 JavaScript的超集,具有更強的可選型別系統,供開發人員在瀏覽器中執行時編譯成JavaScript。
JavaScript 和 TypeScript 都符合 ECMAScript,這是 JavaScript 和 node.js 的標準,這要歸功於Google強大的 V8 引擎,可以在瀏覽器之外執行應用程式。
JavaScript 對 Web 的影響是巨大的。科技巨頭已經也擁抱了 JS。除了Google的V8,還有開源專案,例如Facebook的React和 Google 的Angular。當然,還有我們的 尤雨溪 的 Vue。
1995年5月,**Netscape (網景公司)和 Sun (太陽微系統公司) 推出了JavaScript,隨後微軟在1995年12月推出了Visual Basic (VB),將其作為一個標準,用於為其Internet Explorer瀏覽器使用 VB 指令碼建立web應用程式。甲骨文在2008年收購Sun **主要是為了插手Java及其龐大的開發生態系統。
JavaScript 的未來並不總是像今天這麼確定的。
Cory House 是開發人員培訓網站 Pluralsight 的一名JavaScript教育工作者,他回憶說,早期的JavaScript 是否能成功很難確定。“JavaScript 是幾天內就完成了,最初只在一個瀏覽器中使用。微軟的第一個瀏覽器附帶了他們自己風格的JavaScript 叫 JScript。今天,JavaScript 還被用於構建桌面應用、移動裝置應用、健身追蹤器、機器人和眾多嵌入式系統。它甚至是詹姆斯·韋伯太空望遠鏡的一部分。這個望遠鏡使用 Nombas 的 ES1 級嵌入式 JavaScript,作為其板載控制軟體的一部分。”
”我們可以用面向物件的或函式式的方式編寫程式碼。由於 JavaScript 有類似於c的語法,因此使用過其他類似c語言的人對它很熟悉。JavaScript 透過不斷接受其他語言的好點子而保持著“更新”。
Pluralsight 的另一位作者Jonathan Mills指出,JavaScript 已不再侷限於瀏覽器。他說:“現在,JavaScript 已經發展成為一個龐大的生態系統,對軟體開發的每個領域都具有影響。”
W3C 於2019年12月批准該標準以來,主流Web瀏覽器現在以與HTML,CSS和JavaScript相似的級別支援WebAssembly或Wasm。
WebAssembly是一個虛擬指令集架構,它支援web上的高效能應用程式,併為web上更多的AI搭建了平臺,這些AI可以用於影片和音訊編解碼器、圖形和加密計算。
Mills告訴ZDNet,到目前為止,Web Assembly在目標領域具有潛力。
Mills 說 “在構建 JavaScript 應用程式時,JavaScript 程式碼會按原樣傳送到瀏覽器,並在執行時在瀏覽器中進行編譯和執行。WebAssembly 透過在部署之前編譯程式碼來簡化此過程,並有望在此過程中顯著提高效能 ”。
“當構建圖形或計算密集型的複雜Web應用程式時,這非常有用。然而,目前最主要的障礙是與WebAssembly相關的最傑出的語言是Rust和C。JavaScript 之所以起飛,部分原因是因為易用性和快速開發風格,C 和 Rust 都沒有這種品質。”
為了慶祝JavaScript誕生25週年,下面列出影響其歷史的重要里程碑:
全球資訊網(1989年3月)在CERN工作時,蒂姆·伯納斯·李(Tim Berners-Lee)在一份名為“資訊管理:提案”的文件中提出了他對網路的構想。
文章地址:https://webfoundation.org/about/vision/history-of-the-web/
第一個網站 (1991年8月6日)第一個網站於1991年8月6日上線。它被用於全球資訊網專案本身,並託管在Tim Berners-Lee的NeXT電腦上。
更多資訊:http://info.cern.ch/hypertext/WWW/TheProject.html
Mosaic (1993年6月)NCSA Mosaic,或簡稱 Mosaic,是網際網路歷史上第一個獲普遍使用和能夠顯示圖片的網頁瀏覽器。它是由伊利諾伊大學厄巴納-香檳分校的NCSA組織在1993年所發表,並於1997年1月7日正式終止開發和支援。在當時人氣爆發的大受歡迎。Mosaic 的出現,算是點燃了後期網際網路熱潮的火種之一。
後來網景導航者瀏覽器的開發工作,聘用了許多原有的Mosaic瀏覽器工程師,但是沒有采用Mosaic網頁瀏覽器的任何程式碼。傳承網景瀏覽器程式碼的後裔為Firefox瀏覽器。
更多資訊:https://en.wikipedia.org/wiki/Mosaic_(web_browser)
Netscape (網景公司) (1994年9月9日)馬克•安德森(Marc Andreessen)和吉姆•克拉克(Jim Clark)創立了後來的網景通訊公司(Netscape Communications Corporation),並於1994年9月9日推出了他們的第一個瀏覽器。最初它被稱為Mosaic Netscape,但後來被重新命名為Netscape Navigator以避免與NCSA的商標問題。這個瀏覽器的內部代號是Mozilla,意思是“Mosaic 殺手”,它確實迅速成為了最受歡迎的瀏覽器。
更多資訊:https://en.wikipedia.org/wiki/Netscape_Navigator
JavaScript (1995年5月)馬克·安德森(Marc Andreessen)設想了一個更具動態性的Web,並認為需要一種易於Web設計者使用的語言。他招募了Brendan Eich,他在10天之內於1995年5月為Netscape瀏覽器編寫了原型。該語言最初稱為Moca,後來稱為LiveScript,最後重新命名為JavaScript(作為Java的輔助語言)。JavaScript的正式釋出日期是1995年12月4日。
更多資訊:https://en.wikipedia.org/wiki/JavaScript
JScript (1996年8月)Microsoft 對 Netscape的 JavaScript 進行了逆向工程,建立JScript並將其作為Internet Explorer 3的一部分。引入了不符合標準的專有擴充套件,使開發人員很難建立一個在所有瀏覽器中都能正常執行的網站。最終,Internet Explorer成為瀏覽器大戰中的主導軟體。
更多資訊:https://en.wikipedia.org/wiki/Browser_wars
ECMAscript 1 (1997年6月)Netscape向ECMA International提交了 JavaScript,以建立標準規範,然後其他瀏覽器供應商可以實施該規範,這導致了1997年6月語言規範 ECMAScript 的正式釋出。
更多資訊: https://en.wikipedia.org/wiki/ECMAScript
Mozilla (1998年1月23日)1998年1月23日,在瀏覽器市場份額急劇下降的情況下,Netscape宣佈它將釋出Netscape Communicator 5.0的原始碼,希望它將成為一個受歡迎的開源專案。Mozilla專案就是這樣誕生的。
更多資訊:https://www.mozilla.org/en-US/about/history/
XMLHttpRequest (1999年3月)Microsoft 於1999年3月在Internet Explorer 5.0中釋出了XMLHttpRequest的原始形式。XMLHttpRequest是一種API,用於在Web瀏覽器和Web伺服器之間傳輸資料,它在將來會被證明是有用的。
ECMAscript 3 (1999年12月)該版本增加了正則表示式,更全的字串處理,新的控制語句, try/catch 異常處理,更嚴格的錯誤定義,數字輸出格式和其他增強功能。由於ECMAscript 4停滯,該版本盛行了十年。
更多資訊:https://en.wikipedia.org/wiki/ECMAScript
JSON (2001年4月)Douglas Crockford指定了JSON(JavaScript物件表示法),這是一種基於JavaScript子集的輕量級資料交換格式。JSON資料在前端更易於載入和使用,並且到本世紀末將取代XML,成為Web上的資料交換格式。
更多資訊:https://www.json.org/json-en.html
Firefox (2004年11月9日)Firefox 於 2002 年由Dave Hyatt,Joe Hewitt和Blake Ross作為Mozilla專案的實驗分支開始。為了對抗Mozilla Suite的軟體膨脹,他們建立了一個獨立的瀏覽器,首先命名為Phoenix,後來命名為Firebird, 最後是Firefox。Firefox 1.0版於2004年11月9日釋出。Firefox 的速度,可用性和市場營銷幫助它在Internet Explorer上贏得了市場份額。在啟動的五年內,Firefox佔了所有Web瀏覽的近三分之一。
更多資訊:https://blog.mozilla.org/press/2004/11/mozilla-foundation-releases-the-highly-anticipated-mozilla-firefox-1-0-web-browser/
AJAX (2005年2月18日)傑西·詹姆斯·加勒特(Jesse James Garrett)創造了AJAX(非同步JavaScript + XML)一詞,用以描述新興Web應用程式(如GMail和Google Maps)背後的非同步技術,該技術允許網頁動態更改內容而無需重新載入。
更多資訊:https://en.wikipedia.org/wiki/Ajax_(programming)
jQuery (2006年8月)jQuery 是一個由John Resig設計的JavaScript庫,用於簡化HTML DOM樹的遍歷和操作以及事件處理,CSS動畫和AJAX。在此期間啟動的其他JavaScript框架/庫包括Mootools和Prototype。
更多資訊:https://openjsf.org/
Google Chrome (2008年12月)Google於2008年12月11日釋出了Chrome瀏覽器,該瀏覽器使用了與Safari相同的WebKit渲染引擎和一個更快的 JavaScript 引擎 V8。不久之後,針對Windows,OS X和Linux平臺的開源版本以Chromium的名稱釋出。憑藉快速的釋出週期和對速度的關注,谷歌瀏覽器最終取代了所有其他瀏覽器。
更多資訊:https://www.google.com/chrome/
Node.js (2009年3月)Node.js 最初由Ryan Dahl於2009年3月基於Google的開源V8 JavaScript引擎開發。它為在Web伺服器上使用JavaScript鋪平了道路。Node.js函式是非阻塞的,允許伺服器處理大量併發連線。它代表了“ JavaScript無處不在”範例,統一了圍繞一種程式語言的Web應用程式開發。
更多資訊:https://nodejs.org/en/
npm (2009 年)npm(最初是Node Package Manager的縮寫)是Isaac Z. Schlueter開發的JavaScript程式語言的軟體包管理器。npm Registry是Node.js,前端Web應用程式,移動應用程式和其他應用程式的開原始碼包的公共集合。
更多地址:https://www.npmjs.com/about
ES5 (2009年12月3日)ECMAScript 5 是ECMAScript 3的十多年後的2009年12月釋出,是ECMAScript 3的增量升級版。雄心勃勃的ECMAScript 4被正式放棄,代號為Harmony,某些功能成為ECMAScript6。原始ECMAScript 4計劃的其他功能 將被刪除以在後續版本中採用。形成了一個新的決心,即在整個TC39的共識下開發任何新的想法,以防止將來發生分裂的可能性。
更多資訊:https://en.wikipedia.org/wiki/ECMAScript
AngularJS (2010年10月20日)AngularJS 由Misko Hevery於2010年10月釋出,並迅速成為最受歡迎的JavaScript MVC框架。它提供了雙向資料繫結,依賴項注入,路由包等等。在此期間啟動的其他JavaScript框架/庫包括Backbone,Ember和Knockout。該專案由Angular在2016年繼承,由Google Angular團隊領導的AngularJS的完全重寫。
更多資訊:https://angularjs.org/
TypeScript (2012年10月12日)TypeScript 是一種JavaScript的超集,它將靜態型別新增到語言中,經過微軟兩年的內部開發,於2012年10月首次釋出(0.8版本)。
React (2013年5月29日)React 是一個JavaScript庫,用於構建可組合的使用者介面,由Jordan Walke於2013年開發並開源。它由Facebook和一個由開發者和公司組成的社群共同維護。
更多資訊:https://reactjs.org/
Vue.js (2014年2月25日)由Evan You建立的 Vue 是一個開放原始碼, 它是一個 model–view–viewmodel 的前端JavaScript框架,用於構建的使用者介面和單頁應用程式。該專案的第一個原始碼提交於2013年7月,Vue於2014年2月首次釋出。
Next.js (2016年的10月25日)Next.js是由Vercel建立的開源React框架。它可以唯一滿足靜態和動態網站及應用程式的需求。Next.js的增量靜態再生為使用者提供了靜態站點生成器的所有功能,並且可以新增無限數量的頁面並在以後更新它們-無需重建整個站點。
更多資訊:https://nextjs.org/
Svelte (2016年11月26日)Svelte是一個由Rich Harris建立的免費和開源的前端JavaScript框架。
Svelte 是一種全新的構建使用者介面的方法。傳統框架如 React 和 Vue 在瀏覽器中需要做大量的工作,而 Svelte 將這些工作放到構建應用程式的編譯階段來處理。
與使用虛擬(virtual)DOM 差異對比不同。Svelte 編寫的程式碼在應用程式的狀態更改時就能像做外科手術一樣更新 DOM。
更多資訊:https://svelte.dev/
WebAssembly (2017年三月)WebAssembly(縮寫為Wasm)是基於堆疊的虛擬機器的二進位制指令格式。Wasm 被設計為可移植目標,用於編譯高階語言(如 C/C++/Rust),從而可以在Web上為客戶端和伺服器應用程式進行部署,前驅技術是來自Mozilla和Google Native Client的asm.js。
更多資訊:https://webassembly.org/
OpenJS Foundation (2019年3月12日)眾所周知,Node.js 和 JavaScript 有著千絲萬縷的關係,也有著很多的合作,但他們屬於不同的fondation,辦起事來非常不方便,所以有必要將這兩個基金會合並以提高效率了。於是,在2019年3月13日,Node.js基金會 和 JS基金會 宣佈合併為 OpenJS基金會。
OpenJS Foundation的主要目標是:
促進關鍵JavaScript和Web解決方案及相關技術的廣泛採用和持續開發;促進JavaScript開發社群中的協作;在整個端到端JavaScript生態系統中為開源專案建立重心,指導它們邁向開放治理和多樣化的協作者基礎;託管基礎結構以支援託管的JavaScript開源專案;透過推進專案和戰略合作伙伴關係,來建立一個開放和可訪問的網站。更多資訊:https://openjsf.org/
Deno (2020年5月13日)Den o是一個基於V8 JavaScript引擎和Rust程式語言的JavaScript和TypeScript執行時。它是由Node.js的原作者Ryan Dahl創作的。這是他在JSConf 2018年歐盟會議上發表的題為**“10 Things I Regret About Node.js”**的演講中宣佈的。Deno 在單個可執行檔案中明確承擔了執行時和包管理器的角色,而不需要單獨的包管理程式。
更多資訊:https://deno.land/
最後對於JavaScript的未來,有一件事很清楚:協作是關鍵。“瀏覽器大戰”已經過去了,使用者和開發人員都不想重溫由於缺乏互操作性而帶來的問題。幸運的是,開源已經盛行,並代表著JavaScript語言和社群的開發和治理的前進之路。
原文:
https://www.zdnet.com/article/javascript-at-25-the-programming-language-that-makes-the-world-go-round/ https://js25.org/