JavaScript除了提供一个非重度开发者也能使用的程式语言外,也是提供开发者由Java这类静态型别转至动态型别开发语言的一种选择,但是现在Mozilla所推得asmjs” target=”_blank”>Asm.js,又将JavaScript带回到了静态型别。
第一天Modern Web大会由JavaScript之父同时也是Mozilla基金会共同创办人Brendan Eich(音:艾可,德国姓)首先拉开序幕,主讲第一场主题演讲Javascript at 20 Years,他说他在1995年仅花了10天就开发出Javascript,在会採访Brendan Eich还表示,JavaScript之所以用了Java这四个字母完全是行销上考量,他想藉由Java的名气使更多人注意到JavaScript。Brendan Eich想让JavaScript乍看之下很像是Java,但是其实与Java的完全不同。
JavaScript与Java其中一个很大的差异在于型别,Java是静态型别,也就是说在撰写Java程式码时,开发者需要先定义变数的型别,而JavaScript却不需要,这使得JavaScript的程式在开发上,更为弹性以及容易,不过却也是JavaScript的致命伤,动态型别使得JavaScript的执行效能受到影响。因此Brendan Eich提到,现在Mozilla推的Asm.js,是编译过的JavaScript子集,这个架构限制原本JavaScript拖累效能的语法,而正是为了解决这个问题,让JavaScript执行的效率达到跟Bytecode一样。
Brendan Eich在演讲中,展示了两款由支援Asm.js的游戏引擎Unity与Unreal,所打造的3D游戏,过去JavaScript的执行效能限制了其在网页上的应用,但是因为Asm.js,因此连游戏这种运算密集且注重效能的应用,也能在网页平台上执行。Brendan Eich提到,他设计JavaScript除了提供一个非重度开发者也能使用的程式语言外,也是提供开发者由Java这类静态型别转至动态型别开发语言的一种选择,但是现在的Asm.js,又将JavaScript带回到了静态型别。
Brendan Eich用太阳系的结构来形容JavaScript,其中最核心部分是标准ES3(ECMAScript 3),此标准定义了JavaScript的一些核心功能,并且能向下支援一些较旧的浏览器,他还特别展示了以前的JavaScript网页,依然能够最新的Firefox浏览器上执行,Brendan Eich骄傲地表示,JavaScript相容性相当好。而ES6则是JavaScript现在2015年标准,与之前版本有较大的语法以及概念变动,他也提到,一年后将会採用ES7的标准,ES8的标准预计将在2017年完成。
而网路论坛上有一些舆论认为,微软最近积极推行相容于JavaScript的开源程式语言TypeScript,背后用意则是想强势的影响ES7的标准制定,Brendan Eich表示,他并不这麽认为,因为ES的标准无法被单一组织操控的,而微软找来C Sharp之父操刀TypeScript,他觉得微软真的想参与其中,且更多人贡献心力对这个生态系试多多益善的。
现在的微软明显跟过去不一样了,Brendan Eich认为,最近微软在开源动作频频是玩真的,因为开源是现在的大环境趋势,而他也觉得这跟微软组织内世代交替,文化改变有很大的关系。