TechCrunch在去年一月时曾发布过一篇文章,预测2016年编程方面的主要趋势,但软件开发的世界总是变幻莫测,很难明确预测到会有哪些全新的开发语言、框架以及工具出现。如今已是2016年底,之前的预测实现了多少呢?
2015年6月,JavaScript/ECMAScript 6(即ECMAScript 2015或ES6)发布。根据之前的预测,在2016年JS语言将会获得广泛采用——这一预测基本实现。超过九成的主流浏览器,以及开源的JavaScript运行时Node.js都已兼容ES6。目前,不仅企业内部工具及不太重要的小型系统都有更多用到ES6语法,面对客户的主流系统也出现了更多ES6的痕迹,像Airbnb和谷歌这样不依赖旧版客户端的公司都在内部编程风格指南中明令要求使用ES6的语法。
然而,ES6并未在全球范围内普及,仍有一些开发者必须对老版的JS提供支持。一方面想要在程序中使用ES6注释,但仍有老版本浏览器客户需要维护的开发者们可以通过transpilers或者polyfills这样的工具,将ES6代码转为旧版语法。此外,某些ES6的功能尚未在所有JS环境中实现,比如正确的处理尾调用。这里有张表格,列出了目标平台是否兼容ES6的情况。老版的JavaScript不会一夕消失,但2016年间ES6的应用确实取得了很大的进展,希望来年再斩佳绩。
与预测一致,后端即服务(BaaS)在2016年间也有所增长。BaaS即通过第三方服务,执行项目中特定重复任务,比如云存储、推送通知等。有了这些服务的出色工作,开发者也更能专注于自身专业。由于前端框架不断发展,跟这些服务交互更加容易,因此后端API服务也在蓬勃发展。开发者也偏向采用整合技术,通过一些较小的应用组合成整体系统。
如同预期那样,类似Docker和Packer这样的服务成为了许多开发团队的支柱。工程师可以运用这些服务,快速生成、复制被称为“容器”的机器镜像——其中捆绑有运行时、软件、系统工具及数据库等,确保在任何环境下都能快速运行起来。在一个带有预先版本控制的轻量级虚拟环境中构建项目的原型,再轻松将新版本部署到多台服务器上非常简单。手工配置服务器费时费力,因此被自动化取代也是可以预见的。
去年间相关的配置管理工具都在普及开来,包括Vagrant、Puppet、Chef和Ansible。使用以容器为基础的系统来工作成为了开发人员的基本技能,其大势所趋,不可阻挡。
类似Haskell、Clojure、Scala等函数式编程语言在2016年间也逐渐热门起来,随着智能手机与联网设备的普及,为了在这些设备上获得更好的体验,服务器端语言也随之兴盛。随着计算机、平板电脑、智能手机和物联网小物件的日趋强大,服务器也成为了性能表现的瓶颈。目前发展方向就是:增进服务器性能,实现任务并行,并在与大量互联设备互动时获得更积极的响应。
大多函数式编程模型都是无状态的,也就是说无需复杂的同步,这些软件便能更简单、更高效地在不同的CPU内核或者机器上实现并行运行,函数式范式在执行类似网络请求这样的并行任务时具有天然优势。
2016年的视觉设计前端非常有趣,谷歌果然在系列产品中加入了更多的material design元素,涉及范围包括操作系统(ChromeOS、Android),应用(Chrome、Drive、Google Play Music),网站(YouTube、AdSense)甚至其网络搜索,从Slack、Twitter、Spotify、Airbnb以及Wikipedia等安卓应用,还有Asana、Geekbench等网站中都能看到material design的痕迹。不过除了Ubuntu有少量应用之外,其它平台无论是iOS、Tizen、Windows、MacOS,我们都未见到相关的应用。
其它平台的开发者也在努力推进相关平台的特定风格。预测到2017年,开发者会抛弃传统的设计风格,转向非视觉界面——Amazon Alexa、Siri、Cortana、Google Home等语音助手,或AR、VR等超视觉界面。
2016年,软件开发方面出现了许多振奋人心的变化,我们预测在2017年,容器和函数式编程语言将获得广泛的采用,同时JavaScript语言将成为标准开发实践中更为核心的部分。
原文链接: 2016’s top programming trends (编译/孙薇 责编/钱曙光)
温馨提示:文中所有下划线部分均可阅读原文获取详情。