创造 JavaScript 仅用 10 天,名称是为了更好推广

oschina
 oschina
发布于 2015年05月16日
收藏 32

JavaScript除了提供一个非重度开发者也能使用的程式语言外,也是提供开发者由Java这类静态型别转至动态型别开发语言的一种选择,但是现在Mozilla所推得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认为,最近微软在开源动作频频是玩真的,因为开源是现在的大环境趋势,而他也觉得这跟微软组织内世代交替,文化改变有很大的关系。

via ithome

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:创造 JavaScript 仅用 10 天,名称是为了更好推广
加载中

最新评论(28

中山野鬼
中山野鬼

引用来自“jQer”的评论

每一个 C 写成的算法中,至少有30%到50%的代码和精力是花费在语法和语法糖上。

引用来自“中山野鬼”的评论

这个不赞同哦。。。如果不考虑算法优化,只是将数学算法和模型,通过数据结构组织起来,语法没有什么无非一些基础的数据结构模型库的反复迭代调用。更谈不上什么语法糖的问题。哈。

引用来自“jQer”的评论

那你是没有接触过sheme。sheme只需要car cdr可以无限递归任何形式的结构,而且能提取结构中间任意部分生成同类结构,但是没有性能损耗,因为生成的结构总是以指针提取。对c,可以简单看成&A+x,但是复杂性和可递归,c是做不到的,需要写整页的函数才能达到这种灵巧的计算

引用来自“中山野鬼”的评论

要看你是裸写还是有自己的基础库了。有了基础库,这些也是分分钟的事情。哈。而不要你关注具体的数据结构和算法的问题。

引用来自“jQer”的评论

这有本质的区别了。在Scheme可以用
(1 (2 3 (4 5 6)) 7 (8 9)) 并且递归,在C中你很难这么做。

我可以在Scheme随意定义(1 (2 3)) 和 (1 1 (2 3 (5 6)))并且递归,然而在C每次你要改变一个主意,就意味着你需要一个新库。

Scheme的语法本身决定了他计算的优越,(+ 1 2)本身就是一个树结果,直接对应语法树,函数本身就是数据。(+ (+ 1 2) 3), (+ (+ 1 (+ 2 3) 4) 5) 语法本身都是递归的。
没怎么看清你上面公式的逻辑含义。哈。不好评价。
jQer
jQer

引用来自“jQer”的评论

每一个 C 写成的算法中,至少有30%到50%的代码和精力是花费在语法和语法糖上。

引用来自“中山野鬼”的评论

这个不赞同哦。。。如果不考虑算法优化,只是将数学算法和模型,通过数据结构组织起来,语法没有什么无非一些基础的数据结构模型库的反复迭代调用。更谈不上什么语法糖的问题。哈。

引用来自“jQer”的评论

那你是没有接触过sheme。sheme只需要car cdr可以无限递归任何形式的结构,而且能提取结构中间任意部分生成同类结构,但是没有性能损耗,因为生成的结构总是以指针提取。对c,可以简单看成&A+x,但是复杂性和可递归,c是做不到的,需要写整页的函数才能达到这种灵巧的计算

引用来自“中山野鬼”的评论

要看你是裸写还是有自己的基础库了。有了基础库,这些也是分分钟的事情。哈。而不要你关注具体的数据结构和算法的问题。
这有本质的区别了。在Scheme可以用
(1 (2 3 (4 5 6)) 7 (8 9)) 并且递归,在C中你很难这么做。

我可以在Scheme随意定义(1 (2 3)) 和 (1 1 (2 3 (5 6)))并且递归,然而在C每次你要改变一个主意,就意味着你需要一个新库。

Scheme的语法本身决定了他计算的优越,(+ 1 2)本身就是一个树结果,直接对应语法树,函数本身就是数据。(+ (+ 1 2) 3), (+ (+ 1 (+ 2 3) 4) 5) 语法本身都是递归的。
中山野鬼
中山野鬼

引用来自“jQer”的评论

每一个 C 写成的算法中,至少有30%到50%的代码和精力是花费在语法和语法糖上。

引用来自“中山野鬼”的评论

这个不赞同哦。。。如果不考虑算法优化,只是将数学算法和模型,通过数据结构组织起来,语法没有什么无非一些基础的数据结构模型库的反复迭代调用。更谈不上什么语法糖的问题。哈。

引用来自“jQer”的评论

那你是没有接触过sheme。sheme只需要car cdr可以无限递归任何形式的结构,而且能提取结构中间任意部分生成同类结构,但是没有性能损耗,因为生成的结构总是以指针提取。对c,可以简单看成&A+x,但是复杂性和可递归,c是做不到的,需要写整页的函数才能达到这种灵巧的计算
要看你是裸写还是有自己的基础库了。有了基础库,这些也是分分钟的事情。哈。而不要你关注具体的数据结构和算法的问题。
jQer
jQer
Scheme在设计上绝对是超出C非常多的,C的优势仅仅是硬件进化太慢,硬件现在无法满足纯计算的需要。单纯从两点,宏和可递归的数据模型,就可以说明了。C的宏就属于幼稚型的,跟GO语言一样,完全就是个没去想设计完了,放在那,也不打算改了。而Scheme的宏,则完全同语言内部语法同样的属性,可编程,而且宏可以是函数性质的。
jQer
jQer

引用来自“jQer”的评论

每一个 C 写成的算法中,至少有30%到50%的代码和精力是花费在语法和语法糖上。

引用来自“中山野鬼”的评论

这个不赞同哦。。。如果不考虑算法优化,只是将数学算法和模型,通过数据结构组织起来,语法没有什么无非一些基础的数据结构模型库的反复迭代调用。更谈不上什么语法糖的问题。哈。
那你是没有接触过sheme。sheme只需要car cdr可以无限递归任何形式的结构,而且能提取结构中间任意部分生成同类结构,但是没有性能损耗,因为生成的结构总是以指针提取。对c,可以简单看成&A+x,但是复杂性和可递归,c是做不到的,需要写整页的函数才能达到这种灵巧的计算
中山野鬼
中山野鬼

引用来自“jQer”的评论

每一个 C 写成的算法中,至少有30%到50%的代码和精力是花费在语法和语法糖上。
这个不赞同哦。。。如果不考虑算法优化,只是将数学算法和模型,通过数据结构组织起来,语法没有什么无非一些基础的数据结构模型库的反复迭代调用。更谈不上什么语法糖的问题。哈。
__JM_Joy__
__JM_Joy__

引用来自“eechen”的评论

JScript是萎软以前拉出来的一坨翔,TypeScript会不会又是一坨大大的祸害互联网技术革新的翔呢?

Dart由大名鼎鼎的Google Chrome V8引擎团队的领导者拉尔斯·巴克(Lars Bak)主持开发。设计Dart的目的是在JavaScript语言的基础上,改进编程效率和软件执行效率,并减少大型软件的编程复杂性。

Dart代码可以用两种不同方式执行:一是通过原生的虚拟机;另一种则是通过Google的dart2js编译器将Dart代码转换为JavaScript代码,然后再执行。

Google表示,公司内部已经开始使用Dart语言来编写各种Web应用。

谷人希,股沟才是人类的希望!
我是谷粉,我支持Dartlang!
struct
struct

引用来自“eechen”的评论

JScript是萎软以前拉出来的一坨翔,TypeScript会不会又是一坨大大的祸害互联网技术革新的翔呢?

Dart由大名鼎鼎的Google Chrome V8引擎团队的领导者拉尔斯·巴克(Lars Bak)主持开发。设计Dart的目的是在JavaScript语言的基础上,改进编程效率和软件执行效率,并减少大型软件的编程复杂性。

Dart代码可以用两种不同方式执行:一是通过原生的虚拟机;另一种则是通过Google的dart2js编译器将Dart代码转换为JavaScript代码,然后再执行。

Google表示,公司内部已经开始使用Dart语言来编写各种Web应用。

谷人希,股沟才是人类的希望!
早期 JavaScript 是网景浏览器专用的,JScript 是微软克隆的 JavaScript 。
1997 年才制定 ECMAScript 标准,主要制定成员包括 Netscape、Sun、微软、Borland 等。
JavaScript 、JScript 都是对 ECMAScript 标准的实现,只不过 JScript 败给了 JavaScript 而已。
梁选
梁选

引用来自“JM_Joy”的评论

早就知道了,所以js才会这么灵活嘛
好diao的样子
sikele
sikele

引用来自“eechen”的评论

JScript是萎软以前拉出来的一坨翔,TypeScript会不会又是一坨大大的祸害互联网技术革新的翔呢?

Dart由大名鼎鼎的Google Chrome V8引擎团队的领导者拉尔斯·巴克(Lars Bak)主持开发。设计Dart的目的是在JavaScript语言的基础上,改进编程效率和软件执行效率,并减少大型软件的编程复杂性。

Dart代码可以用两种不同方式执行:一是通过原生的虚拟机;另一种则是通过Google的dart2js编译器将Dart代码转换为JavaScript代码,然后再执行。

Google表示,公司内部已经开始使用Dart语言来编写各种Web应用。

谷人希,股沟才是人类的希望!
你这么说就说明你在扯蛋了,ts就是实现了大多数es6的功能编译成es5,而且angular2也要使用ts。你说你的脸疼么?
返回顶部
顶部