摘要:月日,宣布联合创始人和之父被任命为。在年秋季,的市场部门将命名为,和服务器端的保持一致。实际上,的思想主要来自和。的发型主要受影响。标准的公布,昭示着激动人心的未来。
3月24日,Mozilla宣布联合创始人和 CTO Brendan Eich (JavaScript 之父)被任命 为Mozilla CEO。
Brendan Eich 是 Mozilla 的联合创始人,同时也是 JavaScript 之父。
1995年,在 Netscape 公司工作的 Brendan Eich 受命开发一个在浏览器上运行的客户端脚本语言。当时 Netscape 交给 Brendan Eich 的任务是开发一个看上去像 Java 的脚本语言。当时,由于 Netscape 正和 Sun 谈合作,让 Netscape 浏览器支持 Java,因此有些员工怀疑是否有必要开发一种新语言。Netscape 的另一些开发者则打算开发一个在服务器端运行的 HTML 模板语言,类似 PHP,他们把这个语言称作 LiveWire。为了打消大家的顾虑,Brendan Eich 花了 10 天时间做出了一个原型 Mocha 。 两周不到的时间就做出了一个语言的编译器和运行时环境,小伙伴们都惊呆了。在1995年秋季,Netscape 的市场部门将 Mocha 命名为 LiveScript,和服务器端的 LiveWire 保持一致。由于当时 Java 比较时髦,Netscape 和 Sun 合作,在 1995 年 12 月将其改名为 JavaScript,希望能沾上一点光。实际上,JavaScript 的思想主要来自 Scheme 和 Self。
Brendan Eich 曾在 JSConf 2010 上介绍过JavaScript的历史,其中透露了一些有关 JavaScript 以及他本人的趣闻:
Brendan Eich 在 1977 年的时候和 John McCarthy (Lisp 之父)见过面。
Brendan Eich 的发型主要受 Morrissey 影响。
JS 的 function 关键字确实源于 AWK。
由于 NodeJS 的兴起,JavaScript 的影响力从前端(浏览器端)向后端(服务器端)发展。NodeJS 的兴起在 Brendan Eich 的意料之中:
我并不对 NodeJS 的出现感到意外,因为 Netscape 当年就想做一个类似的东西。开发者们喜欢全栈的、覆盖前后端的、单语言的开发模式。
Brendan Eich 所说的“Netscape 当年就想做一个类似的东西”就是指上文提到的 LiveWire。LiveWire 使用的是阻塞的 I/O,所以伸缩性并不好。而 NodeJS 默认使用异步处理,避免了这个问题。Brendan Eich 认为 NodeJS 内置非阻塞 I/O 是一个明智的选择。他对 NodeJS 短小精悍的语言核心和优秀的模块系统也倍加赞誉。
另一方面,由于 JavaScript 性能的持续改进,有越来越多的语言支持编译到 JavaScript 执行。因此有人说:“JavaScript 是 Web 的汇编。” Brendan Eich 对此的看法是:
几年前,我曾说过“JS 是 Web 的x86”(好像是在一次 JSConf 上),不过我不敢说我是第一个这么说的。Nick Thompson 今年(2011)也在 Hacker News 中这么说过。
关键在于,JS确实在按照我们想的,越来越往低级方向发展了。但它也具备高级的特性。
Shaver说得没错,汇编缺少可靠的宏处理器,因此不适合程序员,也不够安全。但JS可不是这样。所以,这个比喻需要加点限制条件,不然就要闹出笑话来了。
无论从高级函数式编程还是内存安全角这个角度看,还是从低级特性,像类型化数组以及即将成为现实的ES中类型化数组的扩展、二进制数据,等等来说,JS都是一个比汇编更加强大的编程语言。当然了,内存安全是首要的区别。
近两年, JavaScript 的演进非常迅速。 ECMAScript 6 标准的公布,昭示着 JavaScritp 激动人心的未来。
编撰 SegmentFault
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87499.html
摘要:所有网页浏览器电子邮件客户端以及其它需要根据表示性的标记语言来显示内容的应用程序都需要排版引擎。浏览器内核现时主要的四大排版引擎为应用于应用于应用于应用于和早期版本的。主要的网页浏览器引擎,第一款引擎,由在时编写,用于版本。 浏览器内核与js渲染引擎: 简介: 在维基百科上是这样介绍浏览器内核的,网页浏览器的排版引擎(Layout Engine或Rendering Engine)也...
摘要:目前,和基本是同义的,只有一些细微的差别。表示没有对象,即该处不应该有值。作为对象原型链的终点。五新增持续更新中一般是意外情况产生的,则是有意为对象赋值来说明这是一个空的对象的返回值是的类型是 摘自阮一峰博客,另附自己的理解分析。 大多数计算机语言,有且仅有一个表示无的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。有点奇怪的是,J...
摘要:起源在了解学习一个东西时,了解其诞生的背景及历史是十分有必要的,这能让你多一个发展的维度去看待它,原文。布兰登艾奇,在年受聘于网景公司。当时网景公司急需一种网页脚本语言,使得浏览器可以与网页互动,用了天的时间创造了。 JavaScript 起源 在了解、学习一个东西时,了解其诞生的背景及历史是十分有必要的,这能让你多一个发展的维度去看待它,原文。 布兰登·艾奇(Bremdan Eich...
摘要:第条尽量少使用全局对象避免声明全局变量尽量声明局部变量避免对全局变量增加属性第条始终声明局部变量第条避免使用语句第条熟练使用闭包的函数值包含了比调用他们时执行所需要的代码还要更多的信息。那些在其所涵盖的作用域内跟踪变量的函数称为闭包。 书还没看完。一遍看,一遍写读书笔记。 这本书的序是JavaScript之父Brendan Eich写的,作者是JavaScript标准化委员会专家。可想...
摘要:问题中的面向对象原型继承等特性不同于等其他面向对象语言,初看起来非常怪异为什么中有操作符构造函数,却没有类为什么中使用原型,用原型来模拟类和继承看起来很别扭参考了讲述诞生历史的几篇文章后,我总算了解这些特性的来历,简单总结如下。 问题 JS中的面向对象、原型继承等特性不同于Java等其他面向对象语言,初看起来非常怪异: 为什么JS中有new操作符、构造函数,却没有类? 为什么JS中使...
阅读 703·2021-11-18 10:02
阅读 3579·2021-09-02 10:21
阅读 1725·2021-08-27 16:16
阅读 2057·2019-08-30 15:56
阅读 2385·2019-08-29 16:53
阅读 1372·2019-08-29 11:18
阅读 2951·2019-08-26 10:33
阅读 2640·2019-08-23 18:34