上世纪50年代,计算机研制进入了第一个高潮期。英国曼彻斯特大学的一对情侣正在参与世界上第一台商用计算机曼彻斯特1号(Manchester Mark I )的研发。男的叫康威·伯纳斯·李,女的叫玛丽·李·伍兹。1955年6月8日,他们诞下一子,取名蒂姆·伯纳斯·李。蒂姆1976年从牛津大学物理系毕业,当了个“码农”。1980年,到瑞士的CERN(欧洲原子核研究中心)下属实验室工作。这个实验室的首席研究员就是大名鼎鼎的诺奖获得者,华裔物理学家丁肇中。该组织于1954年由12个创始成员国发起成立,后来还在陆续增加。参与该组织的项目人员众多,遍布欧洲各国,蒂姆要做的工作就是让这些科学家能通过计算机网络进行及时的沟通和文档分享。我们看看他都干了什么:
1980年-开发出第一个浏览器原型“Enquire”,实现数据共享
1989年-开发出世界上第一个web服务器和web客户机,取名为World Wide Web,简称WWW
1990年-和同事一起创建HTML标记语言、HTTP协议
1994年-创建非盈利性组织万维网联盟,简称W3C,致力于WWW技术标准化
别人是干了一件大事而载入史册,而这位兄弟是搞了个套餐。随便拎出一样来都能让他富得流油,但他没有选择做像比尔盖茨那样的大商人,至始至终走在学术研究第一线,致力于推动技术发展,甚至在2003年,W3C宣布该组织所提出的所有技术均可以免费使用。他也被誉为“互联网之父”,各种科学界大奖拿到手抽筋,因为其对互联网的卓越贡献,获得2016年度图灵奖。
目前蒂姆依然担任牛津大学和麻省理工学院的计算机科学教授,依然在为web的技术革新奋斗。他曾经说过这么一句话:
对我来说,Web是人和人连接成的网,不是机器和机器,也不是文档和文档。
CERN为了表彰他所做的贡献,20多年来一直维护着世界上第一个网站http://info.cern.ch/的运行。
蒂姆大神缔造了万维网,但他醉心于科学研究,所有心思都放在了WWW的推广、基础建设和标准规范修订上。说老实话,蒂姆搞出来的世界上第一款浏览器并不是很好用,至少在马克同学的眼里是这样。
此时,马克·安德森是美国伊利诺伊大学的计算机系学生,该系是全美最好的计算机系之一,他在校期间,还在该校的国家超级计算机应用中心(NCSA)勤工俭学,该中心可是互联网的前身ARPANET早期的少数几个节点之一,这些为马克同学提供了极好的创新条件。1993年,马克和同学一起开发出了更加简单好用的图形化浏览器马赛克(Mosaic),该浏览器功能丰富,支持图形、动画,可以播放声音,显示颜色,还具备历史记录等创新功能,最大的亮点是在这款浏览器中,HTML首次引入img标签,浏览器不再只显示文字了。爆款,绝对的爆款!这无疑于“瞎子见光乐,色盲玩彩虹”,放到今天,马克同学不得个“大学生互联网+创新创业大赛”特等奖都说不过去。
1994年,马克同学离开NCSA,和吉姆·克拉克(Jim.H.Clark)一起创立了Mosaic Communication Corporation公司,但这引来了NCSA的不满,毕竟当年马赛克的开发NCSA是给予了资助的,为避免知识产权等法律纠纷,马克将公司更名为Netscape Communication Corporation,大名鼎鼎的网景公司诞生了。马克同学担任联合创始人和技术副总裁,开发团队重新开发了浏览器代码,并于1994年12月推出Netscape Navigator 1.0,即网景导航者浏览器的第一个版本,因为功能丰富,在市场上大受欢迎,当时的浏览器软件是付费软件,网景的收入每季度就上升一倍,1995年,网景在纳斯达克上市,开盘价28美元,上市第一天就彪升到每股75美元,华尔街日报说,通用动力花了43年才让市值达到27亿美元,网景只用了1分钟。简直就是当红炸子鸡,马克同学那当然更是达到了人生巅峰。
网景的成功给了当时的另一大巨头微软极大的威胁,微软想办法买到了马赛克浏览器的源代码授权,并以此开发出自己的浏览器Internet Explorer,简称IE,微软的“独门绝技”此时发挥出了威力,通过捆绑Windows操作系统出售,IE浏览器给人以“免费”的感觉,用户当然也无需再付费去购买浏览器咯,剩下的当然就是网景的死忠粉。于是互联网第一场商战拉开大幕,微软的IE与网景的导航者平分秋色,为争夺用户打得不可开交。当然,浏览器作为当时互联网最大的蛋糕,聪明人都能看到, 比如1995年创立的欧朋(Opera)浏览器以及一堆小众浏览器厂商的诞生。不好意思,作为次世代的浏览器优秀代表safari和chrome还得等好些年才出生呢。
说说后话,付费的网景导航者怎么能干得过“免费”的微软IE呢?1998年,网景战败,被美国在线收购,不久美国在线也落得委身时代华纳的命运。2003年,网景被迫解散,所留唯一商标于世。我们的马克同学因为掀起了浏览器热潮,被成为“互联网民用化之父”,离开网景后他并没有停止战斗,而是成为了一名成功的风险投资人,投资过GitHub等知名企业,还被人叫做“硅谷未来预言家”。2020年,他以12亿美元排名福布斯全球富豪榜第1730位,目前已经是这个样子的光头胖大叔了。
好在网景内部人才济济,他们也看到了网景的不足,于当年战败之时便秘密筹划免费的浏览器项目,取名Mozilla,2003年解散时,网景残部便顺势将该项目转而成立为Mozilla基金会,并将开源免费的火狐(Mozilla Firefox)浏览器推上舞台继续与微软抗衡。在这群残部中,一人名叫布兰登·艾奇(Brendan Eich),他是我们下面要讲的主角。
1995年,那是“浏览器大战”如火如荼的一年,大家发现浏览器的一个不足,就是只能看,不能交互,比如用户在网页的文本框输入了什么,浏览器不知道,也无法判断对不对,只有发送给服务器端去处理。要解决这个问题有两条路,一是开发一种全新的语言,让浏览器能运行;二是将现有的语言嵌入到网页中去运行。网景内部为此争执不休,高层也难下决断。
此时,发生了一件影响深远的大事,Sun公司雄心勃勃的嵌入式项目倒闭,无心插柳的创业团队看重了火苗越烧越旺的万维网,于是将为之前项目设计的Oak语言应用到浏览器中,因注册商标时发现Oak已被使用,遂更名为Java,公司试水性地推出了Java Applet,一种可以嵌入网页并能实现程序运行的技术,让静态网页一下子“活”了起来,Java一夜爆红,而后在编程语言领域更是一飞冲天。
也是在这年,网景雇佣了系统程序员艾奇同志,他的工作便是让网景浏览器能够实现交互功能。艾奇同志的研究方向是将Scheme语言作为脚本语言嵌入网页运行,他本人也是Scheme语言的忠实粉丝,这是一种函数式的编程语言。但随着Java的爆红,网景公司的高层都成了Java语言的信徒,当然直接把Java语言嵌入网页又太过于庞大了,所以他们做出决策,要求艾奇设计出一种“和Java相似”的网页脚本语言。
艾奇同志对Java不感兴趣,也许是为了应付领导任务,也许是怀着抵触情绪,他用10天时间设计出了公司想要的脚本语言,取名Livescript。网景高层出于对Java的偏爱,当然可能也是为了蹭热度,选择与Sun公司结成联盟,在网景导航者2.0发布前夕,将Livescript更名为JavaScript,宣布和Sun公司一起携手推广该网页脚本语言。就这样,web前端开发的基石,JavaScript诞生了。
艾奇同志当年对JavaScript不太上心,所以该语言的一些细节考虑不周,导致后来很长一段时间被计算机牛人骂,被JavaScript的程序员骂,大家对此语言又爱又恨。我们从后面对JavaScript的学习,能陆续感受到这个语言的一些设计思路:
(1)语法上借鉴C语言和Java语言(领导要求);
(2)借鉴Scheme语言,确定函数的崇高地位(函数式编程的死忠粉);
(3)借鉴Self语言,使用基于原型的继承机制(就是不面向对象,能奈我何);
从艾奇自己说的一段话中,我们能感受到他当时内心的煎熬:
与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之 处并非原创,它的原创之处并不优秀。' (the part that is good is not original, and the part that is original is not good.)
web前端界的大神,后来发明JSON的道爷也在他的文章中“骂”过JavaScript:
Some of the earlier implementations of JavaScript were quite buggy. This reflected badly on the language. Compounding that, those implementations were embedded in horribly buggy web browsers.[1]
虽然网景倒台,快枪手艾奇同志依然在Mozilla发光发热,2014年从CTO晋升为CEO,但艾奇同志没管好自己的嘴,因为乱说话被网友一阵喷,于是辞去了CEO职务,前后干了也是差不多10天。可能是他早已与浏览器许下今世不再爱他人的诺言,这哥们又紧跟区块链浪潮,搞出了一个去中心化的勇敢者(Brave)浏览器,浏览器大战依旧火热。
[1] Douglas Crockford,JavaScript:The World's Most Misunderstood Programming Language,2001