Javascript诞生记:C语言和Self语言X的产物

 

补充:

 

(1)阮一峰老师的文章(包括其大量译文)通俗易懂,语言准确,属于那种人见人爱类型,非常受业界同学欢迎,谢谢阮老师的奉献;

 

(2)前几日,看过一篇文章是有关“骂”JavaScript的。看后深有同感,也想“骂”一通,但是本人本事有限,“泼”不起来。记得其中一句于我最有同感“JavaScript是一门糟糕的面向对象语言”。我坚信,任何一位JavaScript熟手,都不会推荐JavaScript作为程序员的入门级学习语言,或者几乎每一位编程者,包括前端最基础级设计人员,都了解一些JS编程。如果你想踏进程序员的殿堂,你可以首先学习VB,C(甚至是C++,但前期一般先要掌握C),Java,C#,或者是Python。

 

(3)如今的互联网技术发展之快出乎你我的想像,短期内JavaScript成了炙手可热的语言。但是,想系统学习JS,特别是服务器端开发,不了解JS历史,你会有所遗憾。本引文正是想补缺你的这一遗憾!

 

(4)阅读完本文,如果你还想更深一些了解JS编程风格,你可以看看百度文库中的有关Scheme和Self这两种语言的更全面的描述。

 

二周前,我谈了一点Javascript的历史。

只有了解这段历史,才能明白Javascript为什么是现在的样子。我2.

“1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。……网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。”

这两个选择各有利弊。第一个选择,有利于充分利用现有代码和程序员资源,推广起来比较容易;第二个选择,有利于开发出完全适用的语言,实现起来比较容易。

3.

Sun公司大肆宣传,许诺这种语言可以”一次编写,到处运行”(Write Once, Run Anywhere),它看上去很可能成为未来的主宰。

总之,当时的形势就是,网景公司的整个管理层,都是Java语言的信徒,Sun公司完全介入网页脚本语言的决策。因此,Javascript后来就是网景和Sun两家公司一起携手推向市场的,这种语言被命名为”Java+script”并不是偶然的。

此时,34岁的系统程序员Brendan Eich登场了。1995年4月,网景公司录用了他。

仅仅一个月之后,1995年5月,网景公司做出决策,未来的网页脚本语言必须”看上去与Java足够相似”,但是比Java简单,使得非专业的网页作者也能很快上手。这个决策实际上将Perl、Python、Tcl、Scheme等非面向对象编程的语言都排除在外了。

5.

由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。如果Brendan Eich预见到,未来这种语言会成为互联网第一大语言,全世界有几百万学习者,他会不会多花一点时间呢?

(1)借鉴C语言的基本语法;

(3)借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位;

所以,Javascript语言实际上是两种语言风格的混合产物 —-(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。

多年以后,Brendan Eich还是看不起Java。

“Java(对Javascript)的影响,主要是把数据分成基本类型(primitive)和对象类型(object)两种,比如字符串和字符串对象,以及引入了Y2K问题。这真是不幸啊。”

 

var Date(1999,0,1);

 

alert(year1); date2 = var // 100

如果不是公司的决策,Brendan Eich绝不可能把Java作为Javascript设计的原型。作为设计者,他一点也不喜欢自己的这个作品:

 

 与其说我爱Javascript,不如说我恨它。它是C语言和Self语言X的产物。十八世纪英国文学家约翰逊博士说得好:’它的优秀之处并非原创,它的原创之处并不优秀。’(the part that is good is not original, and the part that is original is not good.)”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值