网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript创始人Brendan Eich访谈录

JavaScript创始人Brendan Eich访谈录

作者:Computerworld 来源:站徒 发布时间:2008-09-16 12:01:00 

标签:JavaScript,浏览器,编程

Brendan Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着AJAX和Web 2.0的发展,人们逐渐正视JavaScript。这是一篇Computerworld对Brendan Eich的一次采访,对JavaScript的过去、现在和未来都做了阐述。

是什么促使你去开发JavaScript? 

对于JavaScript的早期历史,我在自己的博客中写过:http://Weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html 

我在1995年4月4日加入了Netscape,当时的目标是把Scheme语言或者类似的语言嵌入到Netscape的浏览器当中。由于申请没 有通过,我加入了Netscape的Server团队,这个团队负责Web服务器和代理服务器方面产品的开发,我在这里工作了一个月,主要进行下一代 HTTP的研发。到了五月份的时候,我就被调回当初想加入Client团队,从此我就开始了对JavaScript雏形的开发。 

Marc Andreessen和我,连同在Sun工作的Bill Joy,坚信HTML需要一种脚本化的语言,这种语言就算对于新手和业余者来说也会很容易上手,而且这种语言的代码可以直接写在HTML的标记之间,以源 代码的形式作为网页的一部分发布。这种信念同时成为了我们的动力。我们打算开发一个”胶水语言“,面向网站的设计者和兼职做网站开发的程序员,以替代以前 那种通过图片、插件和Java小程序搭建网站的方式。我们把Java看成是由高薪程序员使用的组件语言,而胶水程序员,也就是那些网页设计师,将通过 JavaScript把组件组合起来实现交互。 

从这个意义上说,纵观在微软的操作系统和应用程序中使用的编程语言家族中,JavaScript应该和Visual Basic是类似的,而Java和C++类似。贯穿在编程语言金字塔的分工差别促进了更多的创新,使我们除了可以选择像Java和C++那样”真正“的编 程语言以外,还可以选择一些”小巧“的脚本式语言,比如JavaScript。 

遇到过什么特别的需要解决的问题么?
 

不可编程的网页是静态的,堆砌着文字,充其量把图片放到表格里或者干脆浮动在网页的两侧。通过JavaScript这样的脚本语言,我们可以控制网页上的元素,更改他们的属性并响应事件。可以设想这样一个更具有活力的网络,只通过一些网页就可以实现以前应用程序才能实现的效果。 

实际上,一些早期的开发者从1995年下半年就开始通过JavaScript和framesets中的框架来构建Web应用程序,这应该是最早的 ”Ajax“或者”Web 2.0“风格的Web应用程序,但是采用这种方式开发会导致机器速度变慢。JavaScript在最初的时候就有一个操作浏览器的函数库,但这个库的功能 很有限。和服务器之间的通讯方法也仅限于重新加载整个网页。 

JavaScript和Java在本质上是不相干的,但为什么要给他取这个名字呢?
 

通过上面的链接,在我的博客中可以找到答案。 

JavaScript最初的名字Mocha和LiveScript是根据什么起的? 

Mocha是Marc Andreessen起的项目名称,但Netscape的市场部发现这个名字存在潜在的商标冲突,所以对外决定启用新的名称,他们为Netscape的产 品名称启用了Live这个前缀,比如LiveWire、LiveScript等。但在1995-1996这个时间,Java的发展势头太猛了,所以大家决 定沾沾光,把名字修改为JavaScript。 

JavaScript和ECMAScript有什么不同? 

ECMA-262第三版是ECMAScript标准的最新版本。第一版的制定建立在我在Netscape时的工作成果,同时吸收了JScript(微软在IE平台上对JavaScript进行反向工程的成果)的内容,还包括Borland和少数其他公司的成果。 

ECMA-262第三版明确允许对之进行各种扩展,JavaScript所能作的就比标准多得多,这门语言的演化已经赶在了当前执行标准的前面。 比如Mozilla的SpiderMonkey(SpiderMonkey也是Firefox中的JavaScript引擎)和Rhino引擎。 

Ecma标准只是描述了核心的语言,不包括DOM,大家还是会把DOM当成JavaScript的一部分看待。 

你认为JavaScript和JScript是两个可以或者应该互相被替换的术语么?
 

在跨浏览器的文档和书籍中,当提到这门语言,没有人会使用JScript。JavaScript才是这些书籍、文档、参考手册等中使用的名字,无论你认为这个名字好还是坏,JavaScript就是这个语言的真实名字。 

在JavaScript的开发过程中,遇到过什么必须面对而且特别困难或者讨厌的问题么?
 

在语言的设计阶段冻结以后,每一个小的开发周期主要就是在检验设计时的想法。我在1995年的5月,用了大概10天的时间开发解释器,包括除了 Date对象以外的其它内置对象。在这期间,Netscape的Ken Smith用C语言重写了Java的java.util.Date类,这个类的千年虫Bug也在无意间被带进了JavaScript。 

1995年剩下的日子,我的工作就是把这个引擎嵌入到Netscape浏览器中,并建立那个后来十分著名的DOM(文档对象模型),准确的说应该 是第0级DOM,这时候已经可以在JavaScript中通过一系列函数接口控制窗口、文档、链接、图片等对象了,并可以响应事件和通过定时器运行代码。 

在1996年中期以前,在Netscape只有我一个人在做JavaScript的开发。 

在你所见过的用JavaScript编写的程序中,你认为哪个是最有趣的?
 

TIBET是早期很有野心的一个模仿Smalltalk的框架。 

现在有很多用JavaScript写的程序非常叹为观止。比如HotRuby,在这里可以看到更多的内容,这个程序完全可以让用户在浏览器中通过JavaScript运行Ruby的代码。有人还用JavaScript实现了一个Java虚拟机,叫做Orto,在这里可以看到更多的信息,需要注意的是,我不确定Orto究竟实现了Java虚拟机多少的功能,但确实人人都说这是一个非常出色的程序。 

还有很多用JavaScript编写的游戏,这其中有新开发的,也有从其他平台移植过来的,比如以下两个: 

http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html 
http://canvex.lazyilluminati.com/83/play.xhtml 

John Resig移植的Processing Visualization Language是我认为最棒的。 

你见过最差的是哪一个?
 

我可能选不出一个最差的JavaScript程序。但老实说在过去,JavaScript主要被用来做弹出窗口,在状态栏滚动文字等这些令人讨厌 的事情。一个像Firefox这样的好浏览器,提供带有默认值的用户控件来实现功能,Netscape在最开始也应该这样做,这样JavaScript就 不会被滥用了。 

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com