NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

抽风预测五年后的 Web 发展,却被现实啪啪打脸

  • 2023-08-22
    北京
  • 本文字数:2875 字

    阅读完需:约 9 分钟

抽风预测五年后的Web发展,却被现实啪啪打脸


Google Trends 中的“oracle”搜索结果,看来“先知”(暗指甲骨文)在全球市场上的存在感越来越低了

 

没什么比预测未来更愚蠢的了,毕竟咱们人类向来不擅长这门技能,而强加上“人类”二字只是想让我在审视自己过往言论的时候,稍微感觉不那么尴尬……

 

风险投资商和天使投资人早就意识到这个问题:事实证明,就连这些专业人士的预测能力,也就是正、反之间五五开的水平。我甚至怀疑,他们自己都不清楚到底是凭什么赚到那么高的工资。

 

总之,七年前我曾经就未来五年的 Web 发展做出七条预测。现在是时候揭晓谜底了,咱们一起看看我当初的胡言乱语有多少成真、有多少被证伪。

 

当然,回顾的主要目的还是为了反省自我,这样之后再做预测时也许我的思路能更靠谱一点。

 

1. 渐进式 Web 应用的投资回报率将超越移动应用,但短时间内还不至于挤占后者的生存空间

 

很明显,移动应用还远远没到生命周期的末端。我们有 Instagram、有 TikTok,还有 UberEATS 等无数针对 Web 之外手机设备定制并优化的应用产品。当然,也有办法在 Web 上提供类似的使用体验,只是考虑到这样做对开发技能和 JavaScript 的功能演进要求过高,而效果也仅仅是跟移动应用持平,所以完全没有必要。

 

Google Trends 显示,2018、2019 和 2020 这三年间渐进式 Web 应用获得了高度关注。而随着 2021 年的到来,这一数字开始大幅下降,直到 2023 年才有所回升。



但 Web 应用却一刻没有停止增长的脚步:



看到这里我很好奇,为什么每年的 9 月份都会出现一波峰值?

 

而网站这边却始终保持平稳:



所以看来 Web 本身已经开始进一步分裂了。下一股新势力会是啥,Web 加密货币?



好吧,2021 年一过就凉了……

 

2. Web 将全面基于组件

 

一语中的!当然,这里我还得再做一点延伸和解释。

 

现如今,一切 Web 开发都围绕着组件展开,就跟 10 年前的“类”一样。React 和 JSX 作为目前最流行的工具,纷纷力挺组件开发原则。至于代价嘛,其一是牺牲 JS 的普适性,另外还把前端首次运行时的最低负载大小提升到了 GB 之巨。

 

当然,这样的“现代 Web”配置已经完全可行,包括 React、Webpack 还有那无穷无尽的依赖项。毕竟客户的手机性能确实越来越强,小小的移动芯片以雄浑无比的内力承受着沉重负载的冲击,越来越快的互联网连接也让区区 MB 甚至 GB 级别的数据流量显得没那么夸张……

 

总之,每家企业似乎都想复制 Facebook 的技术栈,背后的思路当然是复制 Facebook 获得的商业成功。我不确定这到底现不现实,但问题的核心在于:到底是 React 因为组件而走向辉煌,还是组件是因为 React 才成为主流?

 

恐怕只有时间能带给我们答案。

 

说到 React,它把在类中将 render()用作方法,改为使用接收 props 并返回 JSX 的函数。这项变更已经是几年前的事了,也是对函数编程范式做出的一项重大简化改进。我之前曾经预测,未来的前端组件将会是一个返回视图的函数,很高兴看到现实确实走上了这个路子。

 

而函数式编程虽然逐步成为主流,但似乎还没有脱离 JS 社区。好在我当初也没做过它能“破圈”的美梦:



我想说的是,Java 和 C#仍然非常重要,微软则打算把 JavaScript 当中的“Java”部分去掉,用 C#这类“Type”来替代。下面看看 TypeScript 跟 JavaScript 之间的恩怨情仇:

 


  1. 函数式编程将成为 JS 开发的基础

 

React 之前用类来接收 props 并返回 JSX,但现在确实开始用函数了。函数式编程已经无处不在,我也有好几年没看过讨论 JS 中原型继承的博文了。

 

所以我猜,这一点应该算是预测正确吧。

 

4. Brave 浏览器将成为全球人气第二的浏览器方案,并会像当初 Opera 推动“选项卡”理念那样让广告拦截成为客观事实

 

但我没想到的是,Brave 的创始人 Brendan Eich 居然直接把自家浏览器的 USerAgent 改成了 Safari 的,预测失败。

 

有人说 Brave 的实际市场份额只有 0.5%,但目前确实很难找到能够明确跟踪 Brave 用户占比的好办法: https://kinsta.com/browser-market-share/

 

但至少有一点我还是说对了:Chrome 是永远的第一。

 

而 Safari 则位列第二。

 

5. 带有事件溯源(即 Redux)的基于状态架构,将会成为前端设计的标准模式

 

从 Web 的角度来看,标准并没有发生改变。Web 内容仍然被混乱无章地存储在 S3 当中,什么架构、什么设计通通是废话。尽管顶着不同的工具名称,但内里全都乱七八糟一个熊样。那么谁预测正确呢?应该是 Kevlin Henney 的“新瓶装旧酒”( Old is the new New):

 https://www.youtube.com/watch?v=AbgsfeGvg3E

 

事后来看,我对技术的发展态势还是太过乐观了。

 

衡量前端事件溯源的最佳方式,就是看看 Redux 库到底有多受欢迎。它只是个还不成熟的浏览器函数事件溯源实现,会在 Object Literal 中将“描述发生了什么”称为“action”而非“event”。

 

Redux 的 star 增长相当稳定,但目前似乎正逼近瓶颈期:



React 的增长更快,而且更容易预测其趋势走向:



Vue 跟 React 的增速基本同频,双方就像动漫英雄那样在相互追逐中一飞冲天:



另一方面,人们明显已经厌倦了 Bootstrap:



Redux 的走势则跟 jQuery 基本保持一致:



相比之下,比特币在 2017 年完成了一次飞跃,似乎代表人们开始对加密货币和分布式系统给予关注。

 


但比特币 repo 的受欢迎程度仍然只能跟 jQuery 处于同一水平,也许是因为人们的热情被如雨后春笋般涌现的加密货币项目给摊薄了吧。

 

6. JavaScript 库和项目核心将逐步成型,不再依赖于特定基于状态的架构实现或框架

 

我很久之前就用 js-cookie 实现过这个目标,但似乎其他组件并不打算跟进。Angular 成了新的 jQuery,NPM 也成了新的 jQuery。如今 React 又成了新的 NPM,但还继续使用 NPM 做分发,所以情况真的有点神奇。总之,一切都是“React”组件。人们并没有更多用“可插入”的框架和库在 JS 中构建前端组件,也可能永远都不会。毕竟精通 JS 组件创建,并不能帮助我们在大厂里晋升成高级开发工程师。

 

7. JavaScript 当中,将出现 CSS 的标准编写模式

好吧,我知道大家想怎么评价。我甚至不确定样式组件如今到底算不算是主流。React 虽然提供样式组件,但现在似乎很少有人愿意去用。我是很高兴自己的预测是错的:



总结

 

我对过去这五年的 Web 发展做了七项预测,具体包括渐进式 Web 应用的兴起、基于组件的页面设计、JavaScript 中的函数式编程、Brave 浏览器的成功、基于状态的架构与事件溯源将成为主流,以及 CSS 将被整合进 JavaScript 当中。

 

现在回头来看,虽然移动应用仍然拥有勃勃生机,但渐进式 Web 应用也确实经历了发展顶峰到后来的回落和复苏。随着 React 和 JSX 的流行,Web 在很大程度上开始以组件为基础。函数式编程现在成为 JavaScript 和 React 的根基。然而,Brave 浏览器并没能取得可以明确量化的成功(也许这是开发团队故意为之,毕竟 Brave 主打的就是隐私功能)。此外,Redux 的采用率很低,React 的 Web 架构依旧复杂,JavaScript 也没有像预期那样将 CSS 纳入开发标准。

 

从结果上看,我的预测算是有对有错。这样挺好,想当“先知”的人必然要被现实啪啪打脸,我也乐于接受这一切。

 

敬请期待我的下一波抽风预测……

 

原文链接:

https://fagnerbrack.com/i-made-7-predictions-for-the-web-for-the-next-5-years-d750d93b1b5a


相关阅读:

Web3当下,最佳投资就是投资自己

Web3的反思,不要抱怨

给Web3创业者的28个原则

和我一起学习Web3

2023-08-22 16:062779

评论

发布
暂无评论
发现更多内容

Python Qt GUI设计:QSpinBox计数器类(基础篇—15)

不脱发的程序猿

Python PyQt GUI设计 QSpinBox计数器类

一物一码可追溯!看区块链如何帮助消费者

CECBC

(文末福利)如果代码莫名其妙跑起来了,就不要去动它了……吗?

Zilliz

数据库

Java线程的生命周期包括哪几种状态?

程序员万金游

java线程

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

热爱java的分享家

Java 面试 程序人生 经验分享 P8

译文 | Apache Pulsar 集群如何确保消息不丢

Apache Pulsar

Java 分布式 云原生 中间件 Apache Pulsar

激荡十年,从未来窗口 re:Invent 看云计算发展变迁 | Q推荐

亚马逊云科技 (Amazon Web Services)

数据库 云计算 云原生 re:Invent

封神总结!蚂蚁金服+滴滴+美团+拼多多+腾讯15万字Java面试题

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

博文推荐|腾讯专家深度解析 Apache Pulsar 五大应用场景

Apache Pulsar

架构 分布式 云原生 Apache Pulsar 消息中间件

我滴个乖乖!首次公布Java10W字面经,Github访问量破百万

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

程序员如何应对职业天花板

石云升

职场天花板 职场经验 11月日更

天翼账号网关系统架构演进历程

架构 网关 亿级流量 双十一

豪华阵容!13位专家力荐Spring5为企业级开发提供一站式方案

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

博文推荐|深度解析如何在 Pulsar 中实现隔离

Apache Pulsar

Java 架构 分布式 云原生 Apache Pulsar

小谈C#异常

喵叔

11月日更

2021年底Java最新学习路线图

程序员万金游

Java

Tapdata 在线研讨会:DaaS vs 大数据平台,是竞争还是共处?

MongoDB中文社区

mongodb

直播预告|11.27(周六)观测云&思否联合举办的开发者线上沙龙巡演第3站来啦

观测云

直播 沙龙

博文推荐 | Apache Pulsar 三大跨地域复制解决方案

Apache Pulsar

Java 架构 分布式 云原生 Apache Pulsar

活动预告|AICon全球人工智能与机器学习技术大会

第四范式开发者社区

机器学习 开源 OpenMLDB

【死磕Java并发】-----J.U.C之AQS:阻塞和唤醒线程

chenssy

11月日更 死磕 Java 死磕 Java 并发

JavaScript 数组展平方法: flat() 和 flatMap()

devpoint

11月日更 flat flatMap

架构原则

卢卡多多

架构 11月日更

顺丰科技 x StarRocks :双十一实时运单分析实践

StarRocks

数据库 大数据 数据分析 StarRocks

学习Java需要掌握哪些技能?

程序员万金游

Java

DPDK 网络协议栈-vpp-OvS-DDos-虚拟化专家之路

赖猫

Linux 网络协议栈 DPDK

Java Collectors API实践

FunTester

Java API 测试开发 FunTester Collectors

头条观察 | 元宇宙成为必然趋势的三种可能

CECBC

风口上的低代码:我们看到了这些变化与趋势

脑极体

为什么要学习linux内核源码以及如何学习Linux内核源码

赖猫

c++ Linux 运维 嵌入式 Linux内核

声网下一代视频引擎架构探索与实践

声网

音视频 视频处理 RTE 技术详解

抽风预测五年后的Web发展,却被现实啪啪打脸_架构/框架_Fagner Brack_InfoQ精选文章