Javascript的前世今生,和Java又是什么关系?

2022-04-28

71

1989年,Tim Berners-Lee发明了万维网(World Wide Web,简称WWW),两年后,世界上第一个网站在CERN搭建,它在1991年8月6日上线,运行在Berners-Lee的NeXT计算机上。当时的网站我们当然访问不到了,CERN在2013年复刻了原版网站,可以让我们清清楚楚地看到人类文明历史的这个重要转折点。


世界上第一个网站


网站有了,快用浏览器访问它!世界上第一个浏览器是Berners-Lee开发的,名字也很霸气,就叫WorldWideWeb,它也是一个所见即所得的网页编辑器。


Berners-Lee写的浏览器是运行在NeXT系统上的,后面他找实习生妹子Nicola Pellow写了世界上第二个浏览器Line Mode Browser,让浏览器可以运行到其他的平台。


万维网发布之后,各路英雄好汉争相开发自己的浏览器,各种xxxWWW浏览器层出不穷,其中,1993年,大学生Marc Andreessen和NCSA程序员Eric Bina在NCSA开发出了非商业化的图形化浏览器Mosaic,令人愉悦的易用性以及独特的创意功能使它大受欢迎,同时它也推动了互联网的爆发式成长,让数百万人突然发现了Web的魅力所在。


Mosaic的火爆让投资人James Clark嗅到了巨大商机,1993年底Marc Andreessen毕业后,James Clark找到Marc Andreessen说服他并和Eric Bina一起共同创建了Mosaic通信公司,后面因为NCSA的抗议改名成Netscape,并于1994年正式推出了新一代浏览器Netscape Navigator,这也是现代浏览器的雏形。


也就在同一年,Java研发团队因为在嵌入式领域商业化的失败,准备将目标瞄准互联网,他们开发了支持在网页中运行Java的浏览器HotJava。与此同时,Java团队的母公司Sun和Netscape眉来眼去,郎有情妾有意,一个看上对方在Internet服务器市场的领先地位,一个看上对方在浏览器市场的主导地位,两家公司一拍即合,达成了深度合作协议。


这时,走在市场前沿的Netscape敏锐地预见到网页需要变得更加动态灵活,技术上讲就是需要一种能够在标签里运行的脚本语言,让浏览器可以和网页互动。由于Netscape已经和Sun合作让浏览器支持Java,Sun当然希望浏览器使用Java来操作网页内容,但Java出生于名门正派,专业且复杂,更加适合专业的开发者,Netscape更加希望这个脚本语言能更加简单,可以吸引更广大的非专业开发者,像微软的VB一样简单易用。商业合作中永恒不变的就是利益本身,可能是Sun在合作中的主导地位,亦或是Netscape为了讨好Sun,Netscape最终决定发明一种新的语言,作为一种营销手段,它看起来应该像Java,但同时它应该是一种轻量的脚本语言。


这个脚本语言,就是Javascript。


Javascript降生的过程也是一段佳话。Netscape在1995年4月招募到Brendan Eich来开发它,而这位大神在1995年5月用了10天就成功完成了最初版本(还觉得老板让你们10天上线一个应用是在难为你们吗?)!最开始,这门语言叫Mocha,到1995年9月Netscape Navigator 2.0 Beta版发布的时候,它被改名为LiveScript。而就在几个月前,1995年5月23日SunWorld大会,Java正式对外发布,受到媒体的热捧,风头一时无两。Netscape为了蹭Java的热度,最终将它改名为Javascript(“以你之名,冠我之姓”),于1995年12月正式发布,并对外宣称Javascript是Java的补充。


1995年11月30日的一条新闻


10天的设计开发时间,加上公司的强制要求(要看起来像简化版的Java),注定了Javascript生来就不是什么大家闺秀,用作者的话说,“它是C语言和Self语言一夜情的产物。”


<----警察叔叔,就是这个人(Brendan Eich)


Javascript“继承”了C语言的基本语法,从Self语言中“遗传”了基于原型的面向对象特性,再加上作者本身对Scheme语言的偏好,让函数成为一等公民,让Javascript又支持了函数式编程,而为了满足公司对它的要求,Javascript的数据类型、内存管理又有了Java的模样。正是有这么多不同的语言特性杂糅拼凑在一起,才造就了这样一个看起来奇怪又特别的Javascript,连作者自己对它的评价都是:“它的优秀之处并非原创,它的原创之处并不优秀。”


可是,世事风云诡谲,谁承想,Javascript这样一个身世坎坷、被亲爹嫌弃的可怜虫,随着web技术的普及和飞速发展,能够在20多年后成为世界第一流行语言!甚至冲出地球,成功上天,运行在外太空!


不得不感慨,Java和Javascript这两个看起来沾亲带故、但实际上又没有任何血缘关系的老家伙,在阴差阳错之间,在历史的某一点相遇,然后又在各自的轨迹上越走越远,成为软件历史上不可省略的两颗明星。


-----------------------------------------------------


云端IDE(TITANIDE):打开浏览器即可随时随地编码,无论是Javascript还是Java,更多语言都支持。

免费体验>


低代码平台(Methodot):全栈在线开发平台,完善的低代码开发套件,开箱即用的研发设施,为开发者提供 All in One 的云原生开发体验。

免费体验>


技术交流
我们建了一个云原生技术交流群,里面有来自Oracle、Citrix、华为、腾讯等国内外云计算专家,立即扫码,拉你进群。目前已有1000+开发者加入我们......
在云原生时代,行云创新致力于通过赋能开发者,实现企业快速迭代与交付,大幅提升创新效率。
免费试用