本文翻译自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. [OpenCV学习笔记2][Mat数据类型和操作]

    [Mat数据类型和基本操作] ®.运行环境:Linux(RedHat+OpenCV3.0) 1.Mat的作用: Mat类用于表示一个多维的单通道或者多通道的稠密数组.能够用来保存实数或复数的向量.矩阵 ...

  2. [学习OpenCV攻略][017][ARM9下移植OpenCV]

    安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...

  3. javaScript事件流是什么?

    一.事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字. 事件是javaScript和DOM之间交 ...

  4. Mac下安装MySQL及启动等常用命令

    总结了下mac下的mysql安装步骤:   eclipse JavaEE 下载         JDK -9 macosx下载   一.安装及启动服务 1. MySQL Server 下载.(以mys ...

  5. Button重写onClick两种方式

    实现接口和匿名内部类 下午没课,自己又继续安卓的学习,照着书上做了一个left碎片Button点击后动态加载right碎片布局的Test,准备自己再继续做一个单击左碎片的button1 加载右碎片布局 ...

  6. 织梦DedeCMS v5.7 实现导航条下拉菜单

    首先将下面这段代码贴到templets\default\footer.htm文件里(只要在此文件里就行,位置无所谓) <</span>script type='text/javasc ...

  7. 怎么用Sublime查找替换整个文件夹下的所有文件内容?

    https://segmentfault.com/q/1010000003946095 工程目录下有很多图片路径要修改,很多散落在各个文件夹. 2015年11月03日提问 评论 邀请回答 编辑 4个回 ...

  8. JAVA WEB之Spring4.x JdbcTemplate

    jdbcTemplate 说白了,他就是Spring提供用于简化数据库访问的类 基本jdbc驱动访问数据库 /* 一个简易好用的数据库连接和访问类 */ package cslg.cn.control ...

  9. 怎样用PS对照片进行美白?

    摘录自:http://product.pconline.com.cn/itbk/software/ps/1408/5336118.html 步骤1.打开需要美白肤色的照片.本教程为防止侵犯他人肖像权, ...

  10. 配置python+mod_wsgi+apache 时 在浏览器中访问服务器时报错:Invalid HTTP_HOST header: 'XXXXX'. You may need to add u'XXXXX' to ALLOWED_HOSTS,在setting.py中添加‘*”无效的原因

    配置python+mod_wsgi+apache 时 在浏览器中访问服务器时报错:Invalid HTTP_HOST header: 'XXXXX'. You may need to add u'XX ...