话说20世纪90年代出现了互联网,一开始只是用来看看静态文档。但是人们发现在浏览器网页上通过几个输入控件就可以做类似于发邮件之类的事情,慢慢就有了交互的概念。以cgi,pl,php,asp为代表的模板(template)语言盛行,它们可以生成动态网页,于是第一代界面渲染技术诞生了。
后来,随着页面功能慢慢复杂,服务端runtime逐渐被面向对象语言Java领导的servlet/jsp技术占据主流,并提出了MVC模型的概念。这后来也成为J2EE企业级开发web层的编程规范。
再到后来,人们对网页交互能力的要求越来越高,浏览器中脚本语言(javascript)的能力也越来越强,可以大大增强渲染效果并提高交互体验。还有css技术也分离出来,网页可以拥有更漂亮的布局和样式。于是前端开发的三架马车出现了。
这时候涌现了大量的前端框架,比较有名的有ext、prototype、jquey等。这也就是第二代渲染技术,即先采用template语言在服务端渲染出页面骨架,然后再到客户端Browser继续渲染细节的部分。这个技术的最高水平也是sun公司提出的,叫JSF(Java Server Faces),他还首次提出了组件树、组件生命周期管理、数据绑定等界面渲染的新指导思想。
正在这时候,我进入了阿里巴巴集团B2BCRM,跟随牛人一起开发了一个牛X的前端框架(shy3),采用了当时非常先进的XML语言来定义界面语义,然后通过template渲染,再加上js渲染,实现了当时软件开发的极致速度,增删改查功能半天就能搞定。
再到后来,随着互联网公司的群雄征战,以Google、Facebook公司为首的前端开发工程师又一次做了颠覆性创新,他们极致地提高浏览器、js引擎的性能,并在2011年提出了HTML5标准,并且css和http协议也相继跟进,近期javascript已经完成了ES6的标准制定,正在迈向ES7。。。。,还有移动互联网时代也到来了,又需要软件开发能够覆盖到三个端(PC、Pad、Mobile)。这时候涌现的技术标准有MVVM(提出了directive、双向绑定等概念)。于是最近期干脆有人提出界面渲染引擎——UI Engine的概念,即在JS Runtime之上搭建一层界面渲染层,写一次代码就可以实现三端合一,前端开发速度将进一步提升!
这也就是第三代渲染技术时代的到来!比较代表的技术有前两年的angular、近期的React、以及最近淘系前端团队刚刚开源的Weex技术等。
最后总结一下最新一代UI Render Engine的三大特征:
1、组件生命周期管理
2、基础组件定义
3、虚拟Dom技术实现双向绑定
各位开发工程师亲们,让我们拥抱前端开发的这些变化,这样才能在软件开发领域一直立于不败之地。