文档章节

前端编年史

老司机带你撸代码
 老司机带你撸代码
发布于 2017/11/15 23:56
字数 1882
阅读 553
收藏 22

前言


  笔者学习一门知识有一个习惯,就是会先去了解这门知识的一个大致历史框架,而后再学习具体的知识内容。这样做有以下两个目的: 1.可以增添兴趣,对于越枯燥的知识越是有效。 2.可以知道这门知识的来龙去脉,可以知道依托于这门知识,自己将会去向何方。毕竟古人也说过,以史为镜可以知兴替嘛。

  然而,查阅无数资料之后,笔者绝望地发现没有一篇完整地准确地描述前端历史的文章可以借鉴,因此萌生了自己动手写一篇一直持续维护的前端编年史以便查阅。

正文


日期 事件
1989 html正式诞生,由物理学家蒂姆·伯纳斯·李为了方便学术文档的分享而创造,这也是前端的起始时间。
1994.10.13 Mosaic Netscape 0.9正式发布,一代浏览器霸主开始展露它的锋芒。
1994.10 Web技术领域最具权威和影响力的国际中立性技术标准机构正式成立,创立者就是html的创造者大神蒂姆·伯纳斯·李。
1995.05 前端中最重要的成员JavaScript(原名LiveScript)诞生,创造者是网景的布兰登·艾奇。他仅仅用了10天的时间就完成了这项创举。
1995.12.24 html2.0标准由IETF正式发布。
1996.08 JScript1.0由微软正式发布,矛头直指网景的JavaScript,成就IE的同时也开启了自己声名狼藉之路。
1996 ActiveX由微软正式发布,虽然很蹩脚,但是基于这个技术,我们终于可以在IE上完成桌面端程序的任务了。
1996.12.17 W3C正式发布了CSS1标准,从此,前端有了自己的样式规范。
1997.02.14 W3C正式发布了html3.2标准,丰富了html的语义。
1997.05 ECMAScript1正式发布,在浏览器大战中被玩坏的程序员们终于等来了他们的第一版JS规范。
1997.12.18 W3C正式发布了html4.0标准,这也是我们使用时间最长的html版本。
1998.05 ECMAScript2正式发布。
1998 IE5.0引入了XMLHttpRequest技术,实现了异步调用服务器的功能。但是,谁也没有想到它会带来一场前端革命。
1999.05 W3C正式发布了CSS3标准中的首批模块(CSS3标准并不是一次性发布,而是分模块发布的)。
1999.12 ECMAScript3正式发布。
1999.12.24 W3C正式发布html4.01标准,该标准只是基于html4.0的部分调整。
2000 Douglas Crockford定义了JSON格式数据,至此前后端的数据交换可以不再使用冗余信息较多,而且还需要来回解析的XML,转而使用JS原生就支持的JSON格式数据了。
2004 Gmail和Google地图用ajax轰炸大家的视野,互联网迎来Web2.0时代。
2004.07 Ruby on Rails发布了第一个版本,5分钟构建一个博客网站的演示视频惊艳了全世界。
2006.01 John Resig发布了JQuery工具库的第一个版本,这个工具库一经出世就风靡全球,一直持续到现在,是前端史上最成功的JS库。
2006.04.05 W3C正式发布XMLHttpRequest标准,为之后的Ajax爆发提供技术基础。
2007.01.09 第一代iPhone发布,移动互联网的起点。
2008.08 iPhoneDevCamp上出现的PhoneGap向我们展示如何使用纯JS、Html、CSS开发APP。从此,我们在开发APP的解决方案上又多了一条道路。
2008.09.02 Google 强力的V8引擎诞生,ie王朝开始瓦解。
2009.01 CommonJS项目正式启动,由Kevin Dangoor主导。
2009.11.08 Dahl 向我们展示了可以用JS编写服务器代码的Nodejs。
2009.11.13 Jeremy Ashkenas提交了第一个CoffeeScript版本,开启了其他语言转换为JS的风潮。我们竟然还可以用比JS更简单的代码来书写JS(不过JS难道还不够简单吗?)
2009.12 ECMAScript5正式发布,这个版本也是我们使用时间最长,各个浏览器兼容最完全,现在大部分程序使用的版本了。
2009 Miško Hevery创造了angularjs框架,它不仅基于MVC框架开发,而且实现了SPA,前端工程化的需求越来越强烈了。
2010.01.12 npm发布了第一个版本,自此,前端就拥有自己的包管理工具了。
2010.10.13 Jeremy Ashkenas发布了BackboneJS的第一版本。
2010.10.20 angularjs由google发布了第一个版本。
2010 RequireJS第一个版本发布,前端的模块化开发时代正式来临了。
2011.05 ECMAScript5.1正式发布。
2011.06.07 CSS2.1发布(从2004-02-25成为备选草案开始,经过多次修改才最终发布)。
2011.09 微软发布Windows 8操作系统,将JavaScript作为应用程序的开发语言之一,直接提供系统支持。
2011.12.08 Ember第一个版本正式发布。
2011 twitter开源了其前端GUI框架bootstrap,为多设备多分辨率适配做出了杰出贡献,解放了无数程序员。
2012.10.01 微软发布了TypeScript第一个版本,提供了更加规范地书写JS的解决方案。
2013.02.21 Mozilla基金会发布手机操作系统Firefox OS,该操作系统的整个用户界面都使用JavaScript,JS已经无处不在了。
2013.10 ECMA正式推出JSON的国际标准,这意味着JSON格式已经变得与XML格式一样重要和正式了。
2013.05 Facebook开源了其前端框架React,引入了新的JSX语法,使得UI层可以用组件开发。
2014.10.28 W3C正式发布Html5标准,废弃了无用标签,新增了许多新标签,语义化再次得到了极大地丰富。
2015.03 Facebook公司发布了React Native项目,将React框架移植到了手机端,可以用来开发手机App。
2015.05 ECMAScript6正式发布,后更名为ECMAScript2015;Node模块管理器npm超越CPAN,标志着JavaScript成为世界上软件模块最多的语言。
2016.05 ECMAScript2016正式发布。
2016.11.01 W3C正式发布Html5.1。
2017.05 ECMAScript2017正式发布。

历史性节点   1989年,Html诞生,前端从此进入我们的视野中。1995.05,JS诞生,我们终于拥有可以直接在浏览器上运行的语言,但是,当时谁也没有想到这个不起眼的脚本语言会成为如今的互联网第一大语言。1996.12.17,CSS1.0标准发布,至此,前端三剑客正式集齐。2004年,Google公司的Gmail和Google地图惊艳了全世界,同时也给沉寂了几年的JS带来了重生,JS携着Ajax重新回到了浪潮之巅。2008.09.02,Google公司的V8引擎诞生。不仅极大地提升了浏览器性能,而且给前端带来了许多新的可能,例如:Nodejs。在所有的基础准备完毕之后,2009年开始迎来了前端的大爆炸。出现了AMD、CMD等前端模块化解决方案,Angular、Ember、React、Vue等各种框架,npm等包管理工具,grunt、gulp、weppack等自动化构建工具......总之各种框架、各种工具、各种解决方案使人眼花缭乱,每周都有新的技术出现一直持续到现在。

文中有遗漏或者错误位置欢迎大家指正,作者会以最快的速度修改更新,持续维护这个系列文档

欢迎关注我的微信公众号:

© 著作权归作者所有

老司机带你撸代码
粉丝 53
博文 22
码字总数 36413
作品 0
武汉
高级程序员
私信 提问
加载中

评论(7)

NewGuid
NewGuid
写的很详细,很全面,收藏了,期待作者大大后面的更新😁
老司机带你撸代码
老司机带你撸代码 博主

引用来自“李嘉图”的评论

引用来自“老司机带你撸代码”的评论

引用来自“李嘉图”的评论

前端中最重要的成员JavaScript(原名LiveScript)诞生,创造者是网景的布兰登·艾奇。他仅仅用了10天的时间就完成了这项创举。
这也是现在前端各种混乱的原因之一吧?

是的,当时34岁的布兰登加入网景就是想研究使用scheme语言作为网页脚本语言的可能性。但是,公司上层都是java的狂热粉丝,公司的决策也是这门脚本语言要和java足够相似。因此,像scheme这类非面向对象语言自然被排除在外。对java完全不感冒的布兰登非常不满,所以就随便应付交差了。一直到现在,作者本人对js这个作品还是持嫌弃态度,多次在采访中表达自己的不满。
哈哈,这人,现在丢了一大堆坑出来

还好,留给我们更多的发挥空间嘛
李嘉图
李嘉图

引用来自“老司机带你撸代码”的评论

引用来自“李嘉图”的评论

前端中最重要的成员JavaScript(原名LiveScript)诞生,创造者是网景的布兰登·艾奇。他仅仅用了10天的时间就完成了这项创举。
这也是现在前端各种混乱的原因之一吧?

是的,当时34岁的布兰登加入网景就是想研究使用scheme语言作为网页脚本语言的可能性。但是,公司上层都是java的狂热粉丝,公司的决策也是这门脚本语言要和java足够相似。因此,像scheme这类非面向对象语言自然被排除在外。对java完全不感冒的布兰登非常不满,所以就随便应付交差了。一直到现在,作者本人对js这个作品还是持嫌弃态度,多次在采访中表达自己的不满。
哈哈,这人,现在丢了一大堆坑出来
老司机带你撸代码
老司机带你撸代码 博主

引用来自“甜玉米和咸玉米”的评论

vue呢?

首先,非常感谢您的建议。之前列这张清单时,我的初衷是先列出那些有开创意义的事件,后续再将其他重要事件填充进来。vue非常优秀,也是现在前端非常重要的框架之一,但是它主要的贡献是基于angularjs的简化、优化与重要功能的扩充。因此,我会在下一阶段把缺失的部分补足进来的。
老司机带你撸代码
老司机带你撸代码 博主

引用来自“李嘉图”的评论

前端中最重要的成员JavaScript(原名LiveScript)诞生,创造者是网景的布兰登·艾奇。他仅仅用了10天的时间就完成了这项创举。
这也是现在前端各种混乱的原因之一吧?

是的,当时34岁的布兰登加入网景就是想研究使用scheme语言作为网页脚本语言的可能性。但是,公司上层都是java的狂热粉丝,公司的决策也是这门脚本语言要和java足够相似。因此,像scheme这类非面向对象语言自然被排除在外。对java完全不感冒的布兰登非常不满,所以就随便应付交差了。一直到现在,作者本人对js这个作品还是持嫌弃态度,多次在采访中表达自己的不满。
专业写BUG30年
专业写BUG30年
vue呢?
李嘉图
李嘉图
前端中最重要的成员JavaScript(原名LiveScript)诞生,创造者是网景的布兰登·艾奇。他仅仅用了10天的时间就完成了这项创举。
这也是现在前端各种混乱的原因之一吧?
世界观 9.2.2.5.12 虚拟监狱12

外部编年史是科学家和工作人员对宇宙1.0系统发展历程的记录,系统内部觉察不到。而智人对地球的征服开始后,他们就在地球上留下各种痕迹。先是壁画,后来是文字,逐渐在各地形成了内部编年史...

好香帅
2019/04/05
0
0
resources_plugins

UI插件 工作流插件timesheet.js。生成工作流的图表,类似项目管理的任务时间表一样,官方网站 图片切换插件/幻灯片,3D旋转木马插件 迷你型小内嵌图表插件jquery.sparkline 类似编年史那样在...

前端届的科比
2014/12/13
409
0
世界观 9.2.2.5.11 虚拟监狱 11

三叶虫,恐龙,剑齿虎,长毛象等,地球远古时期的生物纷纷登场。工作人员制造了恐龙的繁荣和恐龙灭绝的劫难。 科学家细心的保护着灵长类的演化,和古猿的兴起。使一支分支越来越接近智人。终...

好香帅
2019/04/04
0
0
2018年毕业生编年史| 掘金年度征文

这篇是毕业一年的自我审视,不讲技术的问题。 从2018年6月份毕业来到作业帮一直到现在,回首这一年半,颇多感慨。家在重庆,背井离乡来到北京,因为北京充满了未知,充满了希望。中途有困惑,...

B_Cornelius
2019/12/16
0
0
Unix家族编年史

Unix是多用户、多任务的操作系统,它的历史悠久,也有多种版本。在Unix接触过程中常使用到的词,BSD,Linux等。初学者,甚至是接触unix很久的用户也未必对其家谱了如指掌。这篇文章描述的是U...

王二狗子11
2018/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 提前接受社会的毒打教育

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @爱吃蛋挞的kk:分享Buddy Guy的单曲《I Need You Tonight》 《I Need You Tonight》- Buddy Guy 手机党少年们想听歌,请使劲儿戳(这里) 凌...

小小编辑
12分钟前
23
0
成都哪里可以开租赁费发票-成都新闻网

成都哪里可以开租赁费发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了...

提供格
14分钟前
21
0
成都哪里可以开钢材发票-成都新闻网

成都哪里可以开钢材发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该...

多徐重
16分钟前
17
0
成都哪里可以开医疗器械发票-成都新闻网

成都哪里可以开医疗器械发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用...

识过人石
18分钟前
43
0
函数

if ( ) {return 10;}else {return 20;}//“单一出口”理念,虽然上面这么写可以,但是最好只有一个return//把需要返回的值赋值给一个变量,最后统一返回,这样将来修改方便 void ...

heronos
29分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部