JavaScript创始人Brendan Eich访谈录
作者:Computerworld 来源:站徒 发布时间:2008-09-16 12:01:00
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就 不会被滥用了。
猜你喜欢
- 第一种情况:有RAID,还需要做数据库备份吗?回答:需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。
- 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。几天
- <script>alert(escape("人"));alert(encodeURI("人&quo
- Filed under 数据库技术Leave a commentSQL Server命令行导数据两种方式bcp和sqlcmd先说一下bcp:
- innerHTML,outerHTML innerHTML检索或设置标签内的内容;outerHTML检索或设置整个标签的内容(包含标签)。&
- URL 编码是什么东东呢?看看我从网上抄的定义: 引用: url编码是一种浏览器用来打包
- 到目前为止,我们连接的都是两张不同的表,那么能不能对一张表进行自我连接呢?答案是肯定的。有没有必要对一张表进行自我连接呢?答案也是肯定的。
- 当你准备全面进军web标准时,有时候你是不是被表格的弄得焦头烂额呢?比如,原来使用“非法”的nobr现在要用什么来代替呢?今天,就让我来一个
- 常见的双倍边距类问题都遇到过,但很少遇到这种有意思的,所以记录一下。这个BUG是发生在Standards模式下(就是包含XHTML或者HTM
- 我们先看一下JavaScript中关系运算符的类型转换规则:关系运算符(<、>、<=、>=) 试图将 express
- 总经一下前段时间用于的jQuery方法:find及children。需要的朋友可以参考下。首先看看英文解释吧: children方法:fin
- 在给blog加上无刷新搜索和即时验证检测后,又看了下代码,感觉太过麻烦,就把XMLHttpRequest请求封装到一个类里面,用起来方便多了
- 目前定时的操作有:一、Html页面的定时刷新(Refresh--刷新 ) 1,Refresh (刷新) 代码使用说明 说明:让网页多长时间(
- Q0.创建用户【前提】 你必须有CREATE USER系统权限。当你使用CREATE USER语句创建一
- 最近几个不错网站被封,让人感觉很不爽,现在既不方便用,也不方便学习参考。正好想到曾经“截图”的事情,其实我认为互联网产品还有个特点,更新换代
- Web Accessibility Initiative Accessible Rich Internet Applications认识AR
- 翻译:ShiningRay简介你是否知道JavaScript其实也是一个函数式编程语言呢?本指南将教你如何利用JavaScript的函数式特
- 可视性的问题几乎在每次不同产品的用户测试中都会出现:用户总是对页面的某些元素、功能视若无睹,或根本无视。基于此,对这个问题进行了一番小小的研
- 近日大家热议的盗版XP黑屏问题想必很多人都知道了,在这里就不多说。据媒体报道,微软公司将实施逐步投放策略,预计本周将投放5%黑屏,下周投放2
- 不错,这个是一个文章详细页,没有左右两栏布局,不过这里我重点要讲的是合理的布局,在稍后的文章中我会详细的介绍浮动元素。好,回到刚才的话题,大