JavaScript: 2016年回顾

JavaScript: 2016年回顾

翻译自:https://www.sitepoint.com/javascript-2016-in-review/

2016年是意义重大的,奇怪的,欢欣鼓舞?/ 可怕的一年,这取决于你的观点。与其他事件相比,只专注于JavaScript可能看起来无关紧要,但它是每个Web开发人员的工作生活的一个巨大的一部分。

JavaScript 人气持续爆涨。不是每个人都喜欢这门语言,但是现在你可能很少听到十年前嘲笑的评论。就个人而言,我一直喜欢JavaScript – 即使在早期,令人沮丧的年头。那些从C++,Java或PHP方向过来使用它的人可能首先会感到困惑:JavaScript看起来似曾相识,却又如此陌生。克服你的推断,你会欣赏它简单的优雅,实用性和灵活性。(That said, date handling is still a nightmare!,这就是说,日期处理仍然是一场噩梦!愚人码头看不懂这句是什么意思。)

JavaScript在五月迎来了它第21个生日,让我们回顾一下它刚成熟的第一年……

ECMAScript演变

ES6 / 2015是这门语言自诞生以来最重要的更新。这份规范花了7年才完成,但现在浏览器和其他运行运行环境终于开始支持箭头函数,let,const,代理和更多令人喜悦的特性。ES6的兼容性也慢慢变得很好。

如果你需要支持更老版本的浏览器,完全切换到ES6可能还有点早。更老版本的意思是,一年多前发布的任何东西。您可以使用编译器将ES6转译为ES5,如Babel,但是如果你不引入额外的构建步骤,开发就会变得复杂。

ES7/2016比起革命更像是一种进化。一个令人激动的新特性是async,它允许以同步的方式编写异步代码,而不需要回调或Promise的复杂语法(它让我一直很头疼)。

渐进式的Web App(Progressive Web Apps)

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应用程序“移动化”。诚然,不能保证苹果是否会实现该技术,但这不重要:你的应用程序仍然可以在Safari上运行,它只是不会从离线执行中受益。我有一种预感,一旦 Android 上的网络体验取得明显的优势,苹果会受到激励并支持PWA。

有关详细信息,请参阅Dev.Opera的Progressive Web Apps:最终资源集合和Google的PWA指南。

框架固定

要做出公正的判断是很困难的,但是React似乎在今年最受关注。你可能会不同意;这取决于你在使用什么,在浏览什么,在和谁交谈!

Vue.js越来越受欢迎,版本2已于九月发布。

AngularJS可能失去了在2015获得的一些势头,但在9月Angular 2发布后,情况可能会发生一些变化。新版本完全是重写的;它不向后兼容v1.0的版本。

新的框架和库是令人兴奋,但是十年前的jQuery仍然强大。3.0版本已于6月9日发布,v3.1随后于7月7日出现。这个库现在以严格模式( strict mode )运行,支持Promises,并应用了各种补丁。(查看升级指南的完整更改列表。)

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,但是大部分都是广告商检测(相当)独特的电池状态和并跟踪用户浏览不同的域。当他们知道用户更加焦急时,某些服务也有提高价格的可能性.…

虽然这不是JavaScript或API问题本身,Mozilla采取了前所未有的措施,从Firefox 53中删除电池状态API,来解决隐私的原因。这个问题不可能出现在IOS设备上;和其他具有类似原因的API也包括近距离传感器和蓝牙。这些问题是多么让人感到羞愧啊,这些API接口都非常有实用价值,我真心的希望以后版本可以把隐私方面的问题解决掉。

新Node

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。它是一个新的Node.js包管理器,旨在比npm更快更稳定。它依赖于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本身。首先学习语言,并继续建立你的知识。您的经验将帮助您了解每个框架的运作方式,以便您做出明智的选择。这个选择可能是完全不需要框架。

新年快乐!

 

0
如无特殊说明,文章均为原作者原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到