之前在网络上看到这篇文章,引在此处分享一下
2018年7月25日,Mislav Marohnić发了一条推文,宣布GitHub.com前端已经彻底删除了jQuery。而且,还自问自答地解释(低调炫耀),删除jQuery之后也没用其他框架,而是全部依赖原生API。
2018年7月27日奇舞周刊上推送了一篇文章:再见jQuery,我的老朋友,作者是07年最早翻译jQuery1.1文档的为之漫笔
。由此可见jQuery在前端疯狂发展的背景下正缓慢的流失生命力。
jQuery的辉煌
jQuery最初诞生于2006年8月,作者是John Resig。10多年前,网页开发者(当时还没有“前端”这个概念)深受浏览器不兼容性之苦。以jQuery为代表的一批JavaScript库/框架应运而生:
- Dojo
- jQuery
- MooTools
- Prototype
- Yahoo! User Interface Library (YUI)
- Script.aculo.us
这些库有的像jQuery一样是主打通用性,比如Dojo、Prototype;有的则走更专业化的路线,比如YUI(组件化)和Script.aculo.us(动画交互)。从通用功能看,这些库大都提供了如下特性:
- 语法糖:链式调用、实用函数
- 选择元素:基于各种标准选择符和库自定义的选择符,以及通过回调进行筛选
- 操作DOM:创建和操作元素,乃至各种属性操作
- 处理事件:ready事件及各种注册和触发事件的方法,乃至委托
- 动画:基于animate的CSS属性动画,以及内置动画方法
- Ajax:封装原生的XMLHttpRequest API,简化请求方法及回调处理
一批宣传和推广这些库和框架的书籍相继面世,迅速推动了这些库的采用。2010年出版的DOM Scripting, 2nd(《JavaScript DOM脚本编程艺术(第2版)》)就是其中之一。这本书专门有一个附录,介绍当时流行的库,主推jQuery。
jQuery凭借其选择器方法、面向集合的链式调用、对事件和Ajax的完善支持、简单而强大的动效等独有优势,迅速风靡,成为几乎所有网站开发必备的JavaScript库,乃至开创了jQuery编程风格。
开发者选择jQuery的理由简单直接:
- 跨浏览器
- 简单高效
- 稳定可靠
- 插件丰富
2011年新版的“犀牛书”第6版——JavaScript: The Definitive Guide, 6th甚至拿出第19章整整64页篇幅隆重讲解了jQuery(“Chapter 19. The jQuery Library”)。
jQuery从此走向鼎盛和辉煌。后来,随着前端交互越来越重和移动应用的普及,jQuery UI、jQuery Mobile相继面世。
时至今日,jQuery仍然在支撑着数以千万计各种规模网站的运作——尽管聚光灯下已经不常看到她的身影。
历史的选择
最近10年,是“前端行业”有史以来发展最快的10年。
移动社交时代的到来不仅没有让桌面Web失色,反倒刺激了Web标准的迅猛改进。HTML5不仅带来了极大的向后兼容性,也带来了更丰富的原生DOM API。CSS从CSS3开始走上模块化的快车道,文本样式、排版布局、媒体查询,各种新模块让人目不暇接。
各大主流浏览器也在快速跟进,Firefox、Chrome、Opera、Safari、IE乃至Edge,都在积极重构甚至重写内核,争做支持Web标准的“楷模”。在这个大背景下,各大互联网公司不断调高兼容的IE版本号,从8到9到10,再到11。
当然,还有ECMAScript语言标准。自从划时代的ES6(ECMAScript 2015)发布之后,JavaScript终于真正开始摆脱“玩具”语言的尴尬境地。更重要的,从ES6起,ECMAScript也进入了快速迭代、每年发一版的节奏。ES7、ES8,以及ES9,每次都会给这门语言注入更强大的语言特性。
与此同时,Node.js和Babel等服务端运行时及转译工具的出现,也让前端工程化,以及向传统工业级软件开发最佳实践靠拢的速度日益加快。
2012年,图灵社区中一篇文章总结“JavaScript宝座:七大框架论剑”(http://www.ituring.com.cn/article/8108)。当时的“七大框架”是:
- Backbone
- Knockout
- Spine
- CanJS
- Ember
- AngularJS
- Batman
- Meteor
后来,谷歌主打SPA(Single Page Application,单页应用)的Angular终于一枝独秀。不久,脸书推出的“在JS里写HTML一样优雅”的React则一路高歌猛进。最终,集各家所长且简单易用的Vue横空出世。
前端开发已经从后“刀耕火种”时代的“农业文明”,逐渐进化为以大规模、可扩展、规范化、自动化为特征的准“工业文明”。
俗话说:“皮之不存,毛将焉附。”随着时代变迁、技术进步,jQuery赖以存在的环境正逐渐消失。如前所述,新的环境催生了一批框架新秀。曾经辉煌的jQuery终于走到了可以华丽谢幕的时刻。
尾声
如今,时移世易,jQuery即将谢幕,新一代组件化开发框架粉墨登场。然而,“太阳底下没有新鲜事。”不管是使用Angular,还是React,抑或是Vue,还是要真正理解它们背后的工作原理。
jQuery作为第一代前端库的优秀代表,成就了今天Web的繁荣,也成就了一代Web开发者。既不希望它离开,又希望它早点离开,这应该是很多早期接触jQuery的前端开发者的心声吧。
在这里引申知乎上流传的一句话:
jQuery以后会退出前端世界,但jQuery会长期存活在教科书里成为活化石一样的存在。