几年前,对 JavaScript 的现状调查将是一件非常简单的事情,两个问题搞定,问题一:你使用 jQuery 吗?问题二:你还有什么意见?Done!
随着 Web 技术的快速发展,JavaScript 生态系统变得空前的繁荣和丰富,各种新技术、框架层出不穷,仿佛一年就是一个时代。作为一名前端开发人员,如何及时汲取业界优秀资源,同时又不让自己陷入盲目的跟风困境中?
这份调查报告是向全世界超过 28,000 名 Web 开发人员进行问调得出的结果,内容涵盖了从前端库到 Web 后端框架,有当前数据分析,也有后续趋势研判。通过这份报告,我们可以了解业界 Web 项目使用的主流技术及未来趋势,为我们自身的技术竞争力构建提供参考。
如下是针对调研结果的一些分析:
React vs Angular vs Vue
React继续在前端领域占据着主导地位,并在 2017 年发布了最受期待的版本之一——React 16。 其实,React 在去年所取得最重要的成就不是它推出的新特性,而是把它把开源协议修改为 MIT。
然而,这并不代表Angular已无存在感。Angular 仍有强大的用户群体和社区,而且新版的优化速度非常喜人,更重要的是,它试图构建自己的差异化竞争力,从使用场景、组织上与其他框架区分开来:它更关注企业级大型应用,从 Angular一开始大胆采用 TypeScript 就可窥见一斑,虽然这种做法让一些开发者不爽,但是这个决定也带来了企业级应用程序所需的可靠性和安全性。
即便 React 获得了巨大成功,Vue(作者尤雨溪)仍然越来越受欢迎。该框架提供了易基于组件的架构,是 React 的主要替代方案之一。个人认为其缺点是这是一个个人维护项目,从背后团队的力量来看,与 Angular、React 的差距不小,而这个会对它的长远发展带来隐患。
GraphQL 可能会在2018年火爆
GraphQL 是由 facebook 的工程师构建的,在此之前,他们严重的依赖于 RESTful API,大量的并发请求和对补充数据的二次请求给他们造成了很大的麻烦,尤其是响应时间,而GraphQL 则非常巧妙地解决了这些问题。
GraphQL 似乎在 REST 之上迅速占据了一席之地,Samer Buna 甚至声称 REST 已经死亡(个人认为 GraphQL 并不会完全取代 REST )。GraphQL 允许客户端声明式的定义所需的数据,并从一个断点中检索所有需要数据,而不是管理多个端点以及获取不必要的数据。
它非常流行,GitHub 已经使用 GraphQL 编写了最新版本的 API,与此同时为了使 GraphQL 对所有开发人员可用,许多公司正在开发产品,例如 Johannes Schickling 开发的 Graphcool 框架。
类型化 Javascript(Typed JavaScript)正在兴起
虽然 JavaScript 开发人员一直享有编程的自由,没有其他语言那样会有编译器报错的顾虑,但是这种自由是一把双刃剑:它意味着一种不太可靠,甚至会影响开发者的体验。
但在2017年,事情终于发生了变化,如TypeScript 这类的编程语言开始被广泛应用,其实这并不是巧合,开发人员也正在向类似 IDE 的文本编辑器(如VS Code)迁移,以更好地利用类型提供的额外好处。
Progressive Web Apps
我们一直在寻找弥补 Web 和其他客户端之间体验差距上的解决方案。Google 一直主导通过将 web 应用转换为 Progressive Web Apps(PWA)来增强它的能力,而这一方法在 2017 年迅速获得采用。一个 PWA 应用利用现代浏览器技术来提供更像移动应用程序的 Web 体验。它提供了改进的性能和离线体验,以及以前仅可用于移动的功能,例如推送通知。 PWA 的基础是一个 manifest.json 文件和对 service workers 的利用。
静态网站生成方案
2017 见证了静态网站卷土重来。像 Gatsby 这样的框架使您能够使用 React 和其他现代工具构建静态网站。不是每个网站都需要或应该成为一个复杂的现代 Web 应用。由于采用与预构建标记(原文 prebuilt markup),静态网站生成方案使你获得服务器端渲染的好处和绝无仅有的速度。如果你正在寻找一个很好的例子,React 官方文档就是用 Gatsby 构建的。
静态网站生成方案引发了另一个被称为 JAMStack 的趋势:“JavaScript, APIs, Markup”。JAMStack 使用相同的静态预构建 HTML 文件以及可重复使用的 API JavaScript 来处理请求/响应周期内任何的动态构建。Netlify 是开始使用 JAMStack 和免费静态主机的绝佳选择。Brian Douglas 写了一篇很棒的文章,通过构建 Hacker News 应用对比了 JAMStack 和服务器端渲染应用的不同。
2018,我们应该期待些什么?
在我们想出如何处理基于组件应用中的样式的最佳方式时,CSS 的战斗就会激化。
越来越多的公司采用具有统一代码库的移动解决方案,如 React Native 或 Flutter。
因为离线能力和无缝的移动端体验,Web 变得更加原生。
WebAssembly 可以取得长足的进步,提供一个更好的 Web 体验。
GraphQL 正在并继续挑战 REST。
由于不再有对开源协议上的争议,React 强化了它的地位(是的,甚至更多)。
Flow 和 TypeScript 采取更强大的举措,使 JavaScript 更具结构。
Containerization 的影响在前端架构中变得越来越普遍。
虚拟现实使用类似 A-Frame、React VR 和 Google VR 这样的库正在向前迈进。
人们使用区块链和 Web3.js(由 Marek Kotewicz 和 Fabian Vogelsteller 创建)构建了一些非常酷的应用程序。
— END —
作者: 魏珂
点个赞再走么
各位同学,欢迎留言交流~
免责声明:以上图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。
领取专属 10元无门槛券
私享最新 技术干货