2016 年 JavaScript 回顾
本帖最后由 断天涯大虾 于 2017-3-9 10:01 编辑取决于你的展望,2016也许是具有纪念意义的、奇怪的,有些欢欣鼓舞/可怕的一年。只专注于JavaScript可能和其他事件相比是无关紧要的,但它是每个web开发人员工作的生活中的一个巨大的部分。
JavaScript人气持续爆发性增长。不是每个人都热爱这门语言,但是你在过去的十年都可能很少听见嘲弄的评论。就我个人而言,我一直喜欢JavaScript——即使是在早期令人沮丧的那些年。那些从C++、Java或者PHP方向过来使用它的人可能在一开始会感到疑惑:JavaScript看起来很熟悉,但其实不是。放下你的傲慢,你就会到欣赏它的简单优雅、实用性和灵活性。(这就是说,日期处理仍然是一场噩梦!)
JavaScript在五月庆祝了它的第二十一个生日,让我们回顾一下它刚成熟的第一年……
-----------------------------------------------------------------------------------------------------------------------------
ECMAScript进化ES6/2015是这门语言自诞生以来的最重要的更新。这个规范花了7年才建立起来,但是浏览器和运行时终于开始支持箭头函数(arrow functions)、let、 const、代理和其他令人喜悦的特性。ES6的兼容性变得很好。
如果你在支持更老版本的浏览器,也许完全转换到ES6还有点早。更老的意思是,任何一年以前发布的东西。你可以使用一个ES6-to-ES5编译器,例如Babel,但即使没有引入额外的构建步骤,开发已经足够复杂。
ES7/2016比起革命更像是一种进化。一个令人激动的新特性是async,它允许以同步的方式编写异步代码,而没有回调或承诺的语法复杂性(它让我一直很头疼)。
-----------------------------------------------------------------------------------------------------------------------------
渐进式Web App在2016年,我最喜欢的基于JavaScript的技术是渐进式Web App。PWA( Progressive Web Apps)在Google的2015 Chrome开发者大会上首先被提出,但是稳定的技术和工具最终在7月抵达Chrome 52。PWA允许离线第一的功能和取代了奇怪的AppCache方法。Web App终于可以和原生App竞争,并且提供了如下的优点:
[*]一个首屏的图标。
[*]快速启动和自定义启动屏幕
[*]更快的执行
[*]没有Internet连接的脱机功能
[*]网址,链接和书签
[*]全屏或主题接口
[*]沙箱执行
[*]本地和/或基于云存储与同步
[*]更少的设备空间和处理资源
[*]更加安全 (前提是使用HTTPS协议)
[*]从任何搜索引擎中很容易发现
[*]先试后安装
[*]更简单的部署:它只是一个Web应用程序
[*]没有应用商店一说: 你的应用可以包含你最 原始的,最疯狂的想法,而且没有人会向你收取30%的利润。
最优秀的是:任何网站或者应用程序可以在几个小时之内转换为PWA。步骤如下:
[*]在你的服务器上启用HTTPS。
[*]创建一个应用程序清单(manifest)——在你的应用程序根目录下的一个JSON文件,它定义了名称、颜色、图标和显示选项。
[*]创建一个服务工作者(Service Worker)— 在你的应用程序根目录下的一个JavaScript文件,它拦截网络调用和根据需要返回缓存或实时数据。
这是在早期,例子很少,但是PWA提供一个机会去“移动化”你的Web应用程序。不可否认的是,苹果不一定会实现这个技术, 但这没太大的关系:你的app仍然可以在Safari上运行,它只是不能从离线执行中受益。 我有预感,一旦安卓上的网络体验取得明显的优势,苹果会受到激励并支持PWA。
更多资讯,查看Dev.Opera的渐进式Web App:资源的最终集合和Google的PWA指南。
-----------------------------------------------------------------------------------------------------------------------------
框架固定要做出公正的判断是很困难的,但是React似乎在今年最受关注。你可能会不同意;这取决于你在使用什么,在浏览哪里,在和谁交谈!Vue.js越来越流行,版本2在九月已被发布。
AngularJS可能失去了在2015获得的一些势头,但在9月Angular 2发布后,情况可能会发生一些变化。新版本完全是重写的;它不向后兼容v1.0的版本。
新的框架和库是令人兴奋的,但有十年历史的jQuery依然强劲。3.0版本已于6月9日发布,v3.1随后在7月7日也发布了。这个库现在在严格的模式下运行,并应用了各种补丁。(查看升级指南以获得修复列表)
jQuery在96.4%的使用JavaScript的网站上被采用。相对比之下,Angular——最常用的现代框架——只有0.5%的市场占有率。jQuery 1.x是最流行的版本,占93.5%的安装。其次是2.x版本,它有6.0%的占有率,3.x版本是0.5%。
我一直很对为每个项目默认使用jQuery的开发人员很不满。当一个更好的选择或者一个普通的JavaScript就足够的时候,这可能是一种过度使用。然而,它提供了一个较浅的学习曲线,而且比大多数选择更灵活。要让其他框架或库**jQuery,将需要很长一段时间。
-----------------------------------------------------------------------------------------------------------------------------
API滥用啊,电池状态的API。在2013年讲述它的时候,它看起来很有用;什么会比当你的app检测到用户的手机准备要自动关机时,负责任地减少网络请求和处理更好呢?
不幸的是,Mozilla评估到大约6%的网站都在使用这个 API,但是大部分都是广告商检测(相当)独特的电池状态和跟踪浏览不同领域的用户。当他们知道用户更加焦急时,某些服务也有提高价格的可能性.…
针对隐私原因,Mozilla已经采取了前所未有的举措——从火狐53版本中移除电池状态API接口,这已经不是JavaScript或者API本身的问题了,这个问题不可能出现在IOS设备上。其他有风险或者类型原因的API接口包括近距离传感器和蓝牙。这些问题是多么让人感到羞愧啊,这些API接口都非常有实用价值,我真心的希望以后版本可以把隐私方面的问题解决掉。
-----------------------------------------------------------------------------------------------------------------------------
新节点Node.js计划每年更新版本两次,今年的四月和十月版本号为6.0和7.0。这个平台正处于上升的趋势,尽管W3C技术小组报告Node.js服务器的使用率占比仅为0.2%相比于占比高达82.3%的PHP。这个数据或许稍微有一些误导,因为就算Node.js被安装了,Node.js服务器也识别不出来。
没有服务器端的运行时可以赶得上PHP:它已经被使用了很长一段时间,仍然是主机选择提供的最实用的语言。然而,Node.js开始走出了它的一条路,而且被所有信仰语言的开发者广泛使用。
-----------------------------------------------------------------------------------------------------------------------------
Yarn的故事(The Yarn of Yarn)我喜欢npm,而且我认为它是Node.js工具爆发的初始原因之一。我从来没有经历过太多的问题,但我没有工作在像Facebook那么大的项目上。Facebook的工程师在十月发布了Yarn。它是一个比npm更快更稳定的新的Node.js包管理工具。它依赖于npm注册表,所以应该是完全兼容的。
Tim Severien的Yarn vs npm:你需要知道的每一件事描述了提供的优点。我同意他的结论:尽管Yarn不是一个分支(fork),它改善了npm的很多缺陷。但如果npm从中学习,并且Facebook、Google和其他Yarn贡献者帮助npm继续完善,而不是新建Yarn,不是更好吗?
-----------------------------------------------------------------------------------------------------------------------------
对疲劳的厌倦2016年的I-can’t-take-this-any-more(我不能再忍受了)文章被转到了Jose Aguinaga的在2016年,学习JavaScript感觉如何。其他对疲劳的厌倦的表达还有:dayssincelastjavascriptframework.com。
这些可能都是对JavaScript的当前状态的一种幽默的调侃,但跟上现在的趋势、框架和推荐确实变得越来越困难。当开发者面对过多需要评估的选择时,确实需要在内心做一番斗争。
我的建议:不要试图去跟上更新速度。这是不可能的。不管是你今天看好的哪个系统,明天都可能被其他东西替代。为你的项目选择一个选项,坚持它,除非这个选项变得站不住脚了。
能够绝对确定的事情只有一件:JavaScript本身。首先学习这门语言,并持续建立你的知识。你的经验会帮助你理解每个框架是如何运转的,这样你就可以做出明智的选择。这个选择可能会完全不需要框架。
原文链接:https://coyee.com/article/11631-javascript-2016-in-review
页:
[1]