JavaScript的由来, 浏览器的20年
在很久以前那时候还没有Yahoo,Google....人们还在用28.8kbit/s的"猫"上网, 用户注册或者登录的时候所有的验证都是在服务器验证的, 如果用户注册的时候用户名或者密码输入有误却提交了, 然后过了60秒服务器返回了一条消息说,"xxxx"错误, 用户疯了。
然后netscape navigator公司希望通过一种方式直接在客户端验证, 如果客户端验证通过, 那就再通过服务端验证,即减少了服务端的压力, 也提高了用户体验。
当时最牛逼的浏览器公司Netscape navigator决定开发一种客户端的语言, 委任公司的Brendan Eich (1964)进行开发:

Brendan Eich 用10天写了javascript的第一个版本。
1995年2月发布了第一个版本Netscape navigator2(mosaic是该浏览器的前身,只是mosaic浏览器被卖了,mosaic的开发者自己创建了公司重新生产浏览器,浏览器名字为Netscape),Netscape navigator2浏览器中嵌入了一种叫做livescript 的语言,同年1995年Sun公司将Oak语言改名为Java,正式向市场推出,Sun公司说java很牛逼,java貌似要开始改变世界了,Netscape决定要与Sun结盟,想要让java也能在浏览器中运行,网景公司的整个管理层,都是Java语言的信徒, Sun公司完全介入网页脚本语言的决策。 因此,Javascript后来就是Netscape和Sun两家公司一起携手推向市场的,所以就把语言重命名为Javascript....
Brendan Eich 的设计思路是这样的:
()借鉴C语言的基本语法;
()借鉴Java语言的数据类型和内存管理;
()借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;
()借鉴Self语言,使用基于原型(prototype)的继承机制。
所以,Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。 这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。
如果不是公司的决策,Brendan Eich绝不可能把Java作为Javascript设计的原型。作为设计者,他一点也不喜欢自己的这个作品:
"与其说我爱Javascript,不如说我恨它。它是C语言和Self语言one night stand的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之 处并非原创,它的原创之处并不优秀。' (the part that is good is not original, and the part that is original is not good.)"
虽然但是, 这款浏览器的发布使得Navigator获得巨大成功, 又发布了同款navigator3, 微软也眼红了, 1996年8月, 微软发布的IE浏览器中加入了一个名字为JScript的JavaScript实现, 然后js就越来越火了, 然后Microsoft和navigator浏览器大战就开始了。

现在就有两款浏览器了, 而且微软和Netscape各玩各的。
1997年以navigator 的JavaScript1.1版本的蓝本规范提交给了ECMA(欧洲计算机制造协会),协会指定了TC39(technical committe)完成该语言的跨平台的标准,年底完成了一个叫做ECMA262的语言标准, 该标准就是用来规范JS的;
伴随着Windows 98系统的发售以及微软与ISP以及主机厂商的合作;可以加入IE专属标签的FrontPage软件的普及;对CSS的抢先支持, IE浏览器火了, Window 98自带IE 5.0. 浏览器战争结束了;
1998年2月23日。网景公司内部成立Mozilla组织(Mozilla org),该组织独立运作来负责Mozilla Application Suite的研发。Mozilla Application Suite(简称Mozilla Suite)是一套自由的、跨平台的因特网应用套装软件,它的组件包括Navigator(网页浏览器)、Mail & Newsgroups(电子邮件客户端)和Composer(HTML编辑器)。3月31日,网景决定依托NPL(Netscape Public License,网景公共许可证)开放NN的源代码,意图在于吸引来大量的开发者完善软件。这一时期网景放弃了绿色蜥蜴的造型,开始使用一只凶猛的、线条粗犷的、红色的、类似霸王龙的形象。在后来看到的《Mozilla之书》“3:31”章节中明显可以看出反攻的意图。并且使用了“玛门(Mammon)” 这一闪米特族语汇,用其贪婪和财富的内涵来隐喻微软,在与“七宗罪”有关天主教教义中, 玛门(Mammon)是代表贪婪的恶魔。10月网景决定将Mozilla的源代码全部改写。
1998年11月24日,AOL(American On Line,美国在线)以42亿美元免税换股的方式收购了网景。其后Mozilla组织在AOL的资助下继续进行研发,期间IE夺取了浏览器市场的统治地位,并于2002年达到96%的峰值。
2002年9月23日, Mozilla发布了Phoenix 0.1 :

2003年4月14日,因为Phoenix 与BIOS制造商Phoenix Technologies的商标纠纷而更名为Firebird。
2004年2月9日,Mozilla Firebird因为与名字为firebird的自由软件数据库再次更名成Mozilla Firefox(简称Firefox)。

2003年1月7日,Safari发行测试版,并成为Mac OS X v10.3与之后的默认浏览器,也是iPhone与iPad和iPod touch的指定浏览器。
Windows版本的首个测试版在2007年6月11日推出,支持Windows XP与Windows Vista,在2008年3月18日推出正式版,现已支持windows 7。
2012年7月26日,随着苹果的“山狮”系统发布,Windows平台的Safari已经放弃开发。

2007年,Mozilla似乎已经安定了下来。不像过去那么复杂多变,而是基本以一个商标或者品牌的形象出现(虽然大家还是习惯说只用 Mozilla描述基金会和公司)。5月30日,Mozilla放出了Firefox1.5的最后一版(1.5.0.12),并且公布在07年的第三季度放出3.0的正式版。前两个季度Mozilla旗下的Firefox和Thunderbird都在保持持续的增长,不仅在欧洲市场发展稳定而且在亚洲市场也开始被认同。6月下旬Mozilla基金会决定在中国大陆投资成立子公司谋智网络公司(谋智,Mozilla的音译),由前微软Windows Live中国区总经理宫力出任董事长兼CEO。并于7月正式挂牌营业。
2008年9月2日Google Chrome 首个Beta版本发布版本号:0.2.149.27

2009年2月11日,移动版的Firefox,Fennec pre-alpha for HTC Touch Pro发布:

2015现在,chorme42,firefox37 ,IE11, 一晃20年:

作者: NONO
出处:http://www.cnblogs.com/diligenceday/
QQ:287101329
JavaScript的由来, 浏览器的20年的更多相关文章
- 第一百一十一节,JavaScript,BOM浏览器对象模型
JavaScript,BOM浏览器对象模型 学习要点: 1.window对象 2.location对象 3.history对象 BOM也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM ...
- JavaScript单线程和浏览器事件循环简述
JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...
- DalekJS – 基于 JavaScript 实现跨浏览器的自动化测试
在 Web 项目中,浏览器兼容以及跨浏览器测试是最重要的也是最费劲的工作.DalekJS 是一个基于 JavaScript(或 Node.js) 的免费和开源的自动化测试接口.它能够同时运行测试一组流 ...
- 用Javascript编写Chrome浏览器插件
原文:http://homepage.yesky.com/62/11206062.shtml 用Javascript编写Chrome浏览器插件 2010-04-12 07:30 来源:天极网软件频道 ...
- 通过JavaScript判断当前浏览器版本
从别人处拷贝,只用于自己学习之用.参考源自:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html JavaScript是前端开发 ...
- javascript 判断微信浏览器
原文:javascript 判断微信浏览器 用js判断当前环境是否是是微信内置浏览器有两个方法: 1.判断useragent 2.判断是否支持微信内置浏览器才支持的一些方法,比如WeixinJSBri ...
- javascript检测当前浏览器是否为微信浏览器
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- ECMA262,JavaScript引擎,浏览器
相关阅读:https://www.cnblogs.com/970119449blog/p/8080133.html 相关阅读:https://www.jb51.net/article/75888.ht ...
- 不使用JavaScript让IE浏览器支持HTML5元素——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2515 如果我们不做什 ...
- Javascript判断Chrome浏览器
今天分享一下如何通过Javascript来判断Chrome浏览器,这里是通过userAgent判断的,检测一下userAgent返回的字符串里面是否包含“Chrome”, 具体怎么检测是通过index ...
随机推荐
- 如何通过JQuery将DIV的滚动条滚动到指定的位置
这里有一个方法可以将DIV的滚动条滚动到其子元素所在的位置,方便自动定位. var container = $('div'), inner = $('#inner'); container.scrol ...
- 2014 UESTC暑前集训动态规划专题解题报告
A.爱管闲事 http://www.cnblogs.com/whatbeg/p/3762733.html B.轻音乐同好会 C.温泉旅馆 http://www.cnblogs.com/whatbeg/ ...
- AC日记——整理药名 openjudge 1.7 15
15:整理药名 总时间限制: 1000ms 内存限制: 65536kB 描述 医生在书写药品名的时候经常不注意大小写,格式比较混乱.现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即 ...
- 嵌入式Linux 修改启动LOGO
1.嵌入式 Linux LOGO显示原理 嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象. 它 kernel/drivers/video/fbc ...
- [No00000A]计算机的存储单位
位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位. 字节 byte:8个二进制[bit (比特)(Binary Digits)]位为一个字节(B), ...
- HTML-学习笔记(样式)
HTML 样式 style属性用于改变HTML元素的样式. <p style="font-family: arial; color: red;">字体是arial,字体 ...
- 最大M子段和 V2
51nod1053 这题还是我们熟悉的M子段和,只不过N,M<=50000. 这题似乎是一个堆+链表的题目啊 开始考虑把所有正数负数锁在一起. 比如: 1 2 3 -1 –2 -3 666 缩成 ...
- PAT 1027. 打印沙漏(20)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指每行 ...
- Burndown chart
S型的燃尽图 在一次milestone开发过程中,开发者会持续编辑issue列表,每个issue都有自己的生命周期.燃尽图预期这些issues会被线性的消灭掉,所以从第一天直接到最后一天画个直线表示预 ...
- JavaScript的一些知识碎片(1)
打算把使用Javascript的水平从child提升到小学毕业,近期会持续记录一些知识点. javascript的引用机制:只要一个对象赋值为另一个对象,就建立了引用.一旦建立了引用,对象们就公用一块 ...