2020 年 Web 开发展望

3,006 阅读8分钟

作者:Areknawo

翻译:疯狂的技术宅

原文:areknawo.com/web-develop…

未经允许严禁转载

祝大家新年快乐!由于本文的发表日期是 2020 年1月1日,所以我认为这是讨论未来的 366 天中 Web 开发的最佳时机!因为。。。是的,2020年是闰年!

首先是免责声明,然后跳入实际内容。显然我不知道真正的未来会是什么样子,同时也没有什么成熟的数据分析能够作为我假设的基础。这里写的所有内容只是我的个人观点,也是对 Web 开发的方向的个人看法。所有这些都是基于我的经验和观察。如果你不同意我所写的,这很正常!当然你可以在评论中分享你的见解!

摘要

  • JavaScript 和排名前 3 名的 UI 框架将继续继续火热;
  • Svelte 将会继续发展
  • 云计算,服务器端编程和 JAMStack 会不断增长;
  • 预处理和性能优化才是未来;
  • WASM 为Web 带来了很多运算能力;
  • aterial Design、圆角、渐变和深色主题模式是当前的设计趋势。

JavaScript

有人喜欢,也有人讨厌它,但是作为第一集团的成员,我很高兴地说 JavaScript 将会继续存在。不仅以一种基本的方式编码(显而易见),而且以最流行的、用途最广泛的编程语言之一处于领先地位。它遍及 Web、桌面、移动设备、服务器甚至物联网(IoT),并且在开源中的主导地位还会增加。

TypeScript

但是,在这种追求中并非只有 JavaScript。除了 HTML 和 CSS,还有大量的 JS-compilable 语言。在这些语言中,TypeScript 是最著名的一种。由于具有静态类型的所有优点,它最近受到了极大的欢迎。尽管它不会很快成为 W3C 标准,但它受益于 JavaScript 的蓬勃发展。我几乎在所有项目中都使用 TypeScript,希望到2020年会有更多的人这样做。

变化

那些对 JS 持有与我不同态度的人——还有一些适合你的东西。尽管 JS 在可预见的未来不会涉及到所有领域,但又有谁知道它在下一个十年中将带给我们什么呢?目前我只能说这种语言的主要焦点可能会有一些细微变化。我们稍后再讨论。

UI库/框架

React、Vue 和 Angular 将会成为新的行业标准!

好吧,也许我有点夸张了!认真地说,它们都是框架中的佼佼者。独立的生态系统和规模庞大的社区是无法忽视的。他们不会那么简单。 React 几乎是这个时代的jQuery(从其积极性、受欢迎的程度而言),Vue 通过 v3 得到了更多新功能和巨大的改进,并且 Angular……只是 Angular —— 你明白我的意思。

Svelte

但是,在该领域中有一位新成员,对其避而不谈是很不明智的。它名为 Svelte,目前正受到广泛关注。许多人甚至被认为会在 2020 年与“顶尖选手”竞争。

就我个人而言,我认为 Svelte 将很难满足如此高的期望。希望我错了,因为它创建 UI 的方法非常新颖!我说的是它在额外的“编译步骤”中预处理代码,来提供更小、更高效的客户端包。 JS 的兴起导致其功能被严重滥用。如果 Svelte 能够起飞,我们应该在预处理领域看到更多的发展,这对开发人员和用户都将是有益的

服务器端和云

考虑到 Svelte,可以肯定地说,越来越多的计算将会被移出客户端。以众所周知的“云”的形式存在。我们有云计算(例如AWS)、云游戏(例如Stadia)、云存储(例如 Google Drive)以及许多其他服务和tools,它们都基于这种思想。现在它正在进入 Web 开发!

我们已经习惯用云服务和第三方 API 来加速开发过程并提供某些功能。通过依赖来自受信任提供商的多个此类API,我们的软件不仅更安全,而且能够发挥更多潜力甚至性能更高(与客户端所有操作相比)。因此我认为在未来几年中,对云服务的总体依赖将继续增长。

静态网站

但是我也想谈谈与云不同的东西。预处理的概念以及诸如 Svelte 之类的工具提供的众所周知的附加编译步骤。在到达客户端之前,还有许多性能方面的东西要实现。例如,SSRJAMStack 已经流行了几年。他们无需付出太多努力即可提供出色的客户端性能、SEO 和其他许多好处。JavaScript 仍然会被用到,只是越来越少了。

预处理

一切都很好,但是静态网站缺少动态网站所具有的某些功能,SSR 通常需要功能强大的服务器才能正常运行。总而言之,客户端代码对于执行其他许多操作仍然是必需的,并且有时可能成为瓶颈。考虑到这一点,我认为类似于 Svelte 所做的预处理将在“代码”的规模上得到更多的关注。

也许你听说过 Facebook 的开源项目 Prepack,该项目旨在“部分评估” JS 代码?在最终形式下,它应该能够遍历你的代码并对其进行预处理,从而为你提供高度优化的结果。目前该项目尚处于初期阶段,开发工作停滞了,但我认为它很好地体现了预处理的整体构想。

性能

除了预处理和服务器端优化之外,客户端本身还有一些改进的空间。随着 JS 的飞速发展,现在它已用于一些非常苛刻的任务,而 JS 最初并不是为这些任务而设计的。当然 JS 语言本身及其语法都很棒(尽管有时很麻烦),但是我想更多地谈一谈性能和执行方面。

V8

Google 的 V8 是领先于 JavaScript 引擎市场的。它提供了最新功能、顶级性能以及所有出色的东西。它第一个为我们提供了 JIT 编译 功能,从而极大地缩短了 JS 代码的执行时间。得益于这一进步,JS 目前是市场上“最快的脚本语言”之一!

WASM

话虽如此,但 JS 的功能是有限的。这就是创建 WebAssembly(WASM)的原因。这是一种高效的格式,是 RustC++ 等语言的编译目标。根据程序的不同,它可能比 JS 快几个数量级,从而使其成为可移植、高性能计算的理想选择。

重要的是要知道 WASM 并不是要取代 JS。恰恰相反,它将会处理所有繁重的任务,并使 JS 只专注于 UI。凭借其令人印象深刻的性能,我们最终将能够创建可在任何地方运行的重应用(例如游戏),并以其响应能力给用户留下深刻的印象!

自 2017 年推出其最低可行产品(MVP)以来,WASM 一直在缓慢但成功地获得新功能。 W3C 已于 2019 年 12 月 5 日正式批准 WASM 作为第 4 种 Web 语言。但它也可以在浏览器之外作为可移植模块使用。这很容易说明 WASM 将会继续向前发展。谁知道呢——也许几年后,我们将能够在浏览器中玩 AAA 级的游戏!

设计

最后我想通过介绍一些“设计趋势”来总结这些预测。你应该知道,即使代码非常重要,但用户体验最多的还是设计和 UI。

材料设计(Material Design)

我认为今年的设计趋势不会有太大的改变。不,拟真设计(Skeuomorphism)不会再出现了。与前几年一样,Google的材料设计(MD)将会成为主流。但是,由于“可定制性”的需要,所以情况看起来可能会有所不同。

不同的品牌并不会都严格遵循 Google 制定的准则,而是会采用某些设计规范,并使用它们来形成自己的“独特外观”并在竞争中脱颖而出。然而,诸如圆角、渐变、鲜艳的颜色和深色主题暗模式之类的东西将会很常见。同样,简单性、用户体验(UX)和移动设备将再次成为主要的关注点。

可访问性

除了视觉内容外,可访问性(a11y)的重要性可能还会增加。 Web 越来越多地被各种各样的人所占据,为所有人提供良好的体验应该是所有设计师的主要目标。

尤其是像社交媒体和新闻杂志这样更具通用性的网站应该为不同的残疾人提供易用性。但是,a11y 的意义远不止于此,它通过响应键盘按钮、触摸手势等细微细节,甚至提高了日常用户的舒适度。网站实施的这类功能越多,用户越有可能会喜欢它。

该轮到你了

以上就是我对 2020 年 Web 开发的预测。无论你是否同意,我都希望在下面的评论中看到你的建设性反馈和自己的预测!

欢迎关注前端公众号:前端先锋,免费领取前端工程化实用工具包。