本文翻译自popularity,为了更好的阅读我把部分内容进行了增删改,如果你英语比较好,建议直接阅读原文,因为这篇文章是我通过google翻译再进行修改的。

貌似(根据一位精神导师的说法)JavaScript最终流行了。

对我来说,从小时候起就是一个书呆子,当然这是一场诅咒与玩笑。

Brendan Eich在Netscape上说服了他的尖头老板,我们应该有个自己的脚本语言,并且是一种新的语言。

我不知道Doug为什么要编故事,他并没在Netscape呆过,在Ajax会议的主题演讲中,他已经听到了我关于JavaScript诞生的回忆,他是为了在Web开发者中推广C#么?

谁知道呢,不过本周是我参与创建mozilla的第十个年头,我想聊一点历史。

我是以在浏览器中搞Scheme的名头被招募到Netscape的,至少客户工程管理包括Tom Paquin,Michael Toy和Rick Schell以及叫做Marc Andreessen的那些家伙,认为Netscape应该以HTML格式在源代码中嵌入编程语言,所以并非是我说服的“尖头老板”。

javascript是否是Scheme,那就仁者见仁,智者见智了,不过我加入Netscape却是因为Scheme的。(Brendan Eich的主要方向和兴趣是函数式编程)

当时需要一个有说服力的例子(也就是一个demo),我完成了它,而它随即变成了事实。

1995年Sun公司将Oak语言改名为Java,Netscape决定与Sun公司结成联盟,希望将其包含在浏览器中。

因此,Netscape的大辩论成为“为什么要用两种语言?为什么不只是Java?“答案是需要两种语言来服务于编程,在编程领域有两类不相干的受众用户,他们最需要专门的编程语言,一类是组件作者,他们用C ++或Java,另外一类是那些编写“scripters”的作者,他们可能是业余或专业的,那么谁将来编写直接嵌入HTML的代码呢。

是否可以使用现有的语言,而不是去发明新的语言,这不是我决定的,因为整个管理层希望这种语言必须看起来像Java,但要比Java简单,这个决策导致排除了Perl,Python和Tcl以及Scheme。

我不骄傲,但我很欣慰将Scheme中的function作为第一等公民以及借鉴Self将原型作为继承机制,但受到Java的影响,数据分成基本类型(primitive)和对象类型(object)两种,比如字符串和字符串对象,以及引入了Y2K问题,这真是不幸啊。

回到1995年春天,记得在那段时间里我遇到了比尔·乔伊,并与他讨论了垃圾收集,从一开始Bill就将这个脚本语言作为Java的小兄弟来看,类似于VB在Microsoft平台中与C ++的关系。

Kipp Hickman和我在1995年4、5月期间一直在研究Java,Kipp已经开始编写自己的JVM,Kipp和我写了第一版NSPR,作为他的可移植性JVM底层,在5月初至5月中旬我开始制作“摩卡车”并将其用于相同的目的。

Bill相信我们删除Kipp的JVM,因为它将减少Sun在JVM中的兼容性Bug。在这一点上,“摩卡”已经通过快速原型设计和嵌入到Netscape Navigator 2.0中,NetView Navigator 2.0处于其前alpha开发阶段。

其余的是反常的,无情的历史, JS在客户端上打败了Java,只有Flash才能支持JS,ActionScript的后代。

回到JavaScrip,我们知道某些Ajax图书馆很受欢迎, JavaScript受欢迎吗很难说,一些Ajax开发人员自称喜欢它,还有许多人诅咒它,包括我。我觉得它就像是C语言和Self语言的一夜产物,不免想到约翰逊博士的一句话:“它的优秀之处并非原创,它的原创之处并不优秀。”

推荐阅读

Javascript诞生记
JavaScript创始人Brendan Eich访谈录

JavaScript之父谈JavaScript的更多相关文章

  1. 【javascript】浅谈javaScript的深拷贝

        前言: 最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时 ...

  2. 再谈javascript面向对象编程

    前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...

  3. [转载]浅谈JavaScript函数重载

     原文地址:浅谈JavaScript函数重载 作者:ChessZhang 上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试).面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都 ...

  4. JavaScript之浅谈内存空间

    JavaScript之浅谈内存空间 JavaScipt 内存自动回收机制 在JavaScript中,最独特的一个特点就是拥有自动的垃圾回收机制(周期性执行),这也就意味者,前端开发人员能够专注于业余, ...

  5. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  6. 从setTimeout谈JavaScript运行机制

    从setTimeout说起 众所周知,JavaScript是单线程的编程,什么是单线程,就是说同一时间JavaScript只能执行一段代码,如果这段代码要执行很长时间,那么之后的代码只能尽情地等待它执 ...

  7. 浅谈javascript函数节流

    浅谈javascript函数节流 什么是函数节流? 函数节流简单的来说就是不想让该函数在很短的时间内连续被调用,比如我们最常见的是窗口缩放的时候,经常会执行一些其他的操作函数,比如发一个ajax请求等 ...

  8. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

  9. javascript数组浅谈2

    上次说了数组元素的增删,的这次说说数组的一些操作方法 join()方法: ,,] arr.join("_") //1_2_3 join方法会返回一个由数组中每个值的字符串形式拼接而 ...

随机推荐

  1. 废旧鼠标先别丢,用来学习nRF52832 的QDEC

    刚发现nRF52832有一个 QDEC,SDK13.0中还有驱动,但是不太友好.  如果大家有废旧鼠标,建议拆一个编码器下来“学习”.鼠标的一般原理如下: 图一 图中那个SW4 ALPS EC10E  ...

  2. 无序列表li横向排列的间隙问题

    今天在写页面的时候,无意中遇到这样一个问题,就是无序列表li横向排列即做成导航栏时,列表项间有间隙. 如: 将列表项li变成列表块后(即将li标签设置为,display:inline-block后), ...

  3. Tomcat之URL查找的过程

    Tomcat之URL查找的过程     webapps目录: tomcat共享目录.需要共享的本地资源放到此目录中.  

  4. {style}/index_article.htm {style}表示什么意思啊

    LS有点安全意识好不好.... 在你的后台系统设置有个"模板默认风格:________  cfg_df_style " 默认是default也就是 {style}=模板路径+模板默 ...

  5. php switch case语句用法

  6. Python3 字符串格式化

    1.字符串的格式化: 按照统一的规格去输出成为一个新的字符串 2.字符串格式化的方法: 1)format方法 fomat()有两个参数位置参数和关键字参数用中括号括起来{ } #{0}{1}为位置参数 ...

  7. 【笔记】vue-cli 开发环境中跨域连接后台api(vue-resource 跨域post 请求)

    在vue-cli 项目中很多人会用到mock 数据(模拟数据),但是我觉得如果在真实的数据库交互中开发会更有安全感一些,所以查了一下百度很多人推荐的就是: 跨域! 跨域是什么概念?不同的主机名,同主机 ...

  8. Servlet--继承HttpServlet写自己的Servlet

    前面2篇关注的都是Servlet接口,在实际编码中一般不直接实现这个接口,而是继承HttpServlet类.因为j2e的包里面写好了GenericServlet和HttpServlet类来让我们简化编 ...

  9. 无废话XML--XML细节

    今天开始研究xml,其实在实际的开发中,我们参与到真正的XML开发并不是很多,最多写一个配置,但是我还是觉得很有必要把XML的知识整理一遍.作为基本的2种的数据交互载体(还有一个是json),基本的X ...

  10. awkOFS问题

    awk改变了OFS,$0却没变化一个文件1.txt,内容如下 a b c d e 目的把列变行,输出为: a b c d e 脚本如下: awk 'BEGIN{RS="";FS=& ...