前端的诞生 - 2.JavaScript与网景

上一次我们说了HTML和伯纳斯.李,这一次我们来说说网景和JavaScript的故事。

javascript的诞生是和网景公司紧紧的关联在一起,所以说起javascript不得不说说网景这件公司的命运。

网景公司的创始人是吉姆·克拉克和马克·安德森,克拉克是一个很牛逼的老爷子,在硅谷有创业之神之称,有一个书叫做《新新事物—一个硅谷故事》就是围绕他的经历写的,这本书入选了在2002年《福布斯》评选的最近20年20本最佳商业书籍。



吉姆·克拉克

老爷子1944年出生,他的家庭比较贫穷,14岁时遭遇父母离异,16岁时他由于在乐队汽车上引爆一枚烟雾弹而被学校赶了出来,他之后参军,在海军工作了4年。20岁以后他的人生开始走上正轨,他参加杜兰大学夜校,考入了纽奥良大学,然后获得了学士学位和物理学硕士学位,并且在1974年获得了计算机科学博士学位,之后便进入计算机相关的创业领域。

他后来创建了著名硅谷图形公司,《侏罗纪公园》,《星球大战》都是硅谷图形公司制作的特效。



吉姆·克拉克与马克·安德森

在1992年,马克·安德森还在伊利诺伊大学就读大三,这年他被国家超级计算机(NCSA)聘为临时工作人员,当时的互联网非常简陋,只有文本,没有图像、声音,更没有色彩操作过程非常繁琐,安德森在那个时候向他的主管提出了一个建议,设计一款便捷的浏览器以便于对联网资料的检索有序化,主管同意了这个建议,并且和他其他几个程序员花了六周时间开发出了浏览程序。



马克安德森



年轻的马克安德森

1993年初,这浏览器程序被命名为Mosaic(马赛克),安德森把它放在互联网上供人免费使用,,这个程序一年内用户超过了200万人。也就在那一年安德森大学毕业开始了工作,大不就之后他就见到了吉姆·克拉克,两人一拍即合决定合伙搞事情。



马赛克浏览器

“一个如此不同、如此有用的应用程序,它可能从零开始创造一个新行业。”这是1993年12月份的一期《纽约时报》对马赛克的评价。

1994年4月4日一家名为马赛克通信公司(Mosaic Communications Corporation)的公司在利福尼亚州的山景城(Mountain View)成立,它由克拉克出资400万美元成立。该公司第一次会议讨论的是开发一款类似任天堂的产品,单是最终没有达成共识。后来他们还是决定开发浏览器,安德森火速赶回大学,把原来的马赛克开发小组的六名成员招到麾下,但研发团队要从零开 始设计新的浏览器。



早期的网景浏览器

1994年10月13日,公司发布了第一款产品Mosaic Netscape 0.9,并且在发布的4个月内迅速的占领了四份之三的浏览器市场,为了避免商标拥有权产生问题(NCSA Mosaic是一款1993年发布的浏览器),这个产品后来改名为Netscape Navigator,并且公司更名为Netscape(网景),安德森通过免费策略让网景领航员浏览器迅速占领市场,网景公司也随之成长起来。

1995年8月9日,网景进行首次公开募股,当天发行价14美元,当第一天收市估价就已经上涨到了75美元,这几乎是当时创记录的首日涨幅。”美国通用动力公司花了43年才使市值达到27亿美元,而网景只花了1分钟。”《华尔街日报》对其火爆的交易情况做出了如上的评论。

让我们先忘掉网景公司的创始人, 再回来看看JavaScript,那么主角才刚刚要登场。

1994年4月网景公司招聘了一个新员工, 他叫布兰登·艾克(Brendan Eich),当时招聘他的目的是是研究将Scheme语言作为网页脚本语言的可能性。Brendan Eich本人也是这样想的,以为进入新公司后,会主要与Scheme语言打交道。



布兰登·艾克

补充一下的是布兰登·艾克曾在1986年伊利诺伊大学获得硕士学位,所以他和马克·安德森是校友,然后他去SGI这家公司上班了7年,而这家公司的创建人是吉姆·克拉克所以技术圈还是比较小的。

再说回浏览器脚本的语言,之前网景就有讨论过这个问题,当时0.9版本的Navigator发布,当时浏览器并没有与用户互动的能力,网景公司需要一种可以与网页互动的脚本语言,当时有两个方案,一个是采用现有的语言如Perl、Python、Tcl、Scheme等等,另一个方案是发明一个新语言。

1995年Sun公司将Oak语言改名为Java,正式向市场推出。网景公司当时决定于Sun公司进行联盟,当时网景公司整个管理层其实都是Java语言的信徒,Sun也参与了网景的决策中,所以”Java+script”并不是偶然的,最开始的计划甚至考虑直接将Java作为脚本嵌入网页中,但因为这样会使网页过于负责才放弃这么做。

1995年5月,网景公司做出决策,未来的网页脚本语言必须”看上去与Java足够相似”,但是比Java简单,使得非专业的网页作者也能很快上手。布兰登被指定为这种”简化版Java语言”的设计师。

其实布兰登对Java一点也不感兴趣, 为了应付公司安排的任务,他只用10天时间就把Javascript设计出来了。他的设计思路是:

  • 借鉴C语言的基本语法
  • 借鉴Java语言的数据类型和内存管理
  • 借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位
  • 借鉴Self语言,使用基于原型(prototype)的继承机制

所以这个混合简化函数式编程+简化面向对象编程的语言应运而生。

与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物“,虽然javascript是布兰登·艾克的作品,但可以看出他似乎对javascript没有多少喜爱。有一段对javascript的评论是这样的,”它的优秀之处并非原创,它的原创之处也并不优秀“。因为种种原因javascript在很长的一段时间里,它的作用也仅仅是做一些网页效果的脚本语言的定位。

javasciprt在发明之处并不叫这个名字而是叫做LiveScript,当时完全是为了蹭Java的热度而改名为JavaScript

布兰登·艾克后来成为了Mozilla公司的CEO,但比较讽刺的是他仅仅只是当了10天,因为出任Mozilla的CEO的同时,传出了他之前支持过加州的“第8号提案”,这个提案的主要内容就是反对同性混应,这个提案最终没有通过,布兰登·艾克的作为遭到了大多数人的反对,在他上任CEO的短短的时间里,董事会中的6个人就有3个人提出了辞职,很多为Firefox开发应用的开发者也表示只要布兰登在位一天他们就不会为公司开发任何应用程序。

在1995年还有另外一件事情发生,微软从Spyglass手中买下了Mosaic的授权,以此为基础开发了Internet Explorer,1995年8月16日微软正式发布Internet Explorer 1, 直接拉开了浏览器大战的帷幕。



早期IE浏览器



浏览器大战

当时Internet Explorer 1.0还是Windows 95的附赠品,微软J续推出了多个连续版本,这些版本捆绑与window并且免费试用,而当时网景导航者确是一个收费软件。这个时期网景和微软为了彼此超越,快速的为浏览器增加功能(很多功能不一定可以正常运行),版本号增加很快,但是IE不然从人才还是资金都要比网景强大很多,大概到Internet Explorer3.0版的时候基本已经和网景功能上差不多,而到了4.0版,用户认为Internet Explorer运作比较稳定。

微软的IE在浏览器中也实现了Javascript但是为了避免命名侵权,他命名为JScript,这也导致Javascript的语法因为没有统一的实现标准导致的语法混乱,这个直到1997年5月ECMAScript1正式发布,这些被浏览器大战玩坏的程序员们才等来了第一版JS规范。

网景不仅无法对抗微软的免费策略,而且网景面对越来越多的程序错误的批评。网景大快速增加功能的策略,让他忽视了程序的运作稳定性,紧跟着他在1997年第四季度和1998年初进行了大规模裁员,而在1998年网景浏览器依然占有着50%以上的市场规模,但是紧跟着第二年微软的IE就超越了网景。

1998年1月网景决定以另一种方式展开一次拼搏,Mozilla项目成立,它的主要目标是发挥互联网上的成千上万程序员的创造力,并且推动浏览器市场达到前所未有的创新水平,简单的说就是开源浏览器源码作为底层代码,并且接受社区提交的代码和功能。当年3月31日,Netscape在源码开放许可证的安排下,网景公布了大部分源代码。不过由于网景浏览器之前的代码质量实在不敢恭维,接受社区支持后基本源代码全部被抛弃。在2002年6月新的Mozilla诞生,之后的Netscape 6和Netscape 7基本基于该版本。



Mozilla

但是Mozilla并没有太多的改变网景的命运,1998年11年美国在线(AOL)宣布收购网景,成为美国在线与微软讨价还价的筹码,减少美国在线对Internet Explorer的依赖。

网景虽然离开了我们的视线,但是他还是为前端留下了很多的东西,其中网景发明了SSL、Cookie,是前端技术的重要推动者。