圖片來源: 

iThome

在Modern Web大會首日,JavaScript之父同時也是Mozilla基金會共同創辦人Brendan Eich(音:艾可,德國姓)首先拉開序幕,以JavaScript二十年回顧為題。

Brendan Eich在1995年僅花了10天就開發出JavaScript。他更透露,之所以命名使用了Java這四個字母,完全是行銷上考量,他想藉由Java的名氣使更多人注意到JavaScript。Brendan Eich想讓JavaScript乍看之下很像是Java,但是其實與Java非常不一樣。

Java是由被Oracle買下的Sun發表,JavaScript則是由Netscape發表,原本名字叫LiveScript,因為Netscape在自己的瀏覽器支援Java Applet,Java又名氣大噪,就把LiveScript改名JavaScript一起打知名度。而Netscape後來把JavaScript提交給ECMA制定為國際標準,稱做ECMAScript,真正跟JavaScript是兄弟的是Adobe Flash的ActionScript和Microsoft的JScript,因為一樣都是依ECMAScript標準建制。另外,Brendan Eich打趣地說,「C語言像是曾祖父,C++像祖父,Java則是父親,然後到JavaScript這一代。」

JavaScript能同時使用多種風格寫程式

然而,身為JavaScript的父親Brendan Eich並未料想到,也不認為JavaScript現今會如此受歡迎,他甚至說「我很多次都以為『它』會死掉。」這樣想不是沒有原因。

故事追朔至10多年前微軟的反托拉斯案,當時美國聯邦政府因認為微軟企圖壟斷市場、綑綁販售行為,而聯合19個州及首都哥倫比亞特區共同起訴,微軟排擠Java、Flash等非微軟產品, JavaScript上頭的Netscape瀏覽器(Navigator)使用率也不斷下滑,使得其公司在廣告及產品銷售部分的收入銳減,JavaScript連帶受到影響。最終微軟讓步,和聯邦司法部達成和解。

現在JavaScript的父親改變想法,Brendan Eich用兩項特性來稱讚自己的孩子JavaScript非常「Dynamic」及「Multi-paradigm」,它可以同時使用多種風格來寫程式。他也說,程式語言的發展不會跟當初想的一模一樣,「因為程式也會長大,就像我們說的語言一樣,如英文、中文。不變的是,它們將愈變愈適合人類,沒有東西一開始就是完美的,唯有不斷地改變及修正,去蕪存菁。」

JavaScript執行的效率達到跟Bytecode程式一樣

Brendan Eich僅僅利用10天創造了JavaScript,他說明創作的靈感來自Self語言,Self語言以精簡做為設計原則,它沒有類別(Class)概念,只有物件(Object)概念,同時把訊息作為最基本的操作。正因為如此,JavaScript成為一個基於原型(Prototype-based)的語言。

而Java和JavaScript雖然都屬於物件導向語言,語法和物件的繼承方式卻不同。Brendan Eich強調,其中一個很大的差異在於型別,Java是靜態型別,也就是說在撰寫Java程式碼時,開發者需要先定義變數的型別,JavaScript卻不需要,這使得JavaScript的程式在開發上,更為彈性且容易,不過這卻也是JavaScript的致命傷,動態型別使得JavaScript的執行效能受到影響。

不過,現在Mozilla推的Asm.js,是編譯過的JavaScript子集,這個架構限制原本JavaScript拖累效能的語法,Brendan Eich解釋Asm.js正是為了解決這個問題,讓JavaScript執行的效率達到跟Bytecode程式一樣。

Brendan Eich在演講中,展示了兩款由支援Asm.js的遊戲引擎Unity與Unreal,所打造的3D遊戲過去JavaScript的執行效能限制了其在網頁上的應用,但是因為Asm.js,因此連遊戲這種運算密集且注重效能的應用,也能在網頁平臺上執行。Brendan Eich提到,他設計JavaScript除了提供一個非重度開發者也能使用的程式語言外,也是提供開發者由Java這類靜態型別轉至動態型別開發語言的一種選擇,但是現在的Asm.js,又將JavaScript帶回到了靜態型別。

標準ES3定義了JavaScript的核心功能

Brendan Eich用太陽系的結構來形容JavaScript,最核心部分是標準ES3(ECMAScript 3),此標準定義了JavaScript的一些核心功能,並且能向下支援一些較舊的瀏覽器,同時,他特別展示了多年前的JavaScript網頁,依然能在最新的Firefox瀏覽器上執行,Brendan Eich驕傲地表示,這證明了JavaScript的相容性相當好。ES6是JavaScript現在2015年標準,與之前版本的語法及概念不同,有相當大的變動。他也提到,一年後將會採用ES7的標準,預計2017年則會進展到ES8的標準。

肯定微軟開源!開源已成一種文化

而網路論壇上有一些輿論認為,微軟最近積極推行相容於JavaScript的開源程式語言TypeScript,背後用意則是想強勢影響ES7的標準制定,然而,Brendan Eich並不這麼認為,他說,因為ES的標準無法被單一組織操控,而微軟找來C Sharp之父操刀TypeScript,微軟近期開源動作頻頻可反映出微軟認真想參與其中。「越多人貢獻心力,對整個生態系的發展有益無害,開源儼然已成了一種文化」。

JavaScrip在1995年問世,到了1997年,人們開始討論Linux等開放原始碼的作業系統,Brendan Eich從那時即認為開源是未來的趨勢。

因此他決定在2003年成立Mozilla基金會,再於2005年成立了Mozilla公司,兩者皆是負責開放原始碼產品的開發、測試和流通和商業活動,基金會後期專注於監測及管理一些沒有產品化的計畫。

Brendan Eich強調,開源思維不再只是為了商機或是個人愛好,「它不僅是熱潮也將改變科技生態,你貢獻愈多,得到機會越多。」文⊙洪予揚、李建興


Advertisement

更多 iThome相關內容