我确实是「前端已死派」。不过是片面已死,而且死得好

我觉得经历过前几年的互联网都应该知道,市场对于「前端」的需求是有点畸形的。大量的电商微商,无论是各行各业都在追求「数字化」而制造出很多所谓「ToB产品」,再接着是很多公司「嗅」到一种莫名的商机,开始制造这些价值很低的「ToB产品」并进行 SaaS 化、PaaS 化……大批量的为了以此赚快钱的外包……这制造了一个非常务虚的市场,使得这几年前端环境都很乱,大批量没有任何软件知识的人通过一些非常荒谬的培训之后开始自诩「程序员」上岗……这其中还不包括就是看中程序员工资高但本身毫无追求的「冒充程序员」

所以当经济支持不了这样的市场之后,大规模的裁员变得显而易见,许多公司所谓的「大前端」开始分解

所以我说的前端已死,指的是这些毫无意义,不学无术,能轻易替换的前端。因为他们只是在使用 Ant DesignElement-UI 进行无意义的拼凑而已

甚至 Levy 曾经跟我分享:

我认识一个前端说:前端不需要懂业务也能做

关于部分会换到另一篇进行更细致的讨论,把它带出来只是想说明我时刻都在自我怀疑和开始不解。没有人对「科技向善」有感,没有人对「技术发展」有感,没有人对「WebNN」、「WebAssembly / WebGPU」有感。我有时会听到别人问我,用 rust / elixir 能不能赚钱,甚至我见过太多人打开 ChatGPT,在输入框输入「如何利用xx赚钱」甚至是「有什么办法让我有钱」……

直到我遇到了「有效加速主义」

什么是「有效加速主义」

有效加速主义基于热力学第二定律 —— 熵增原理提出来的

即使局部熵减,宇宙系统而言也是持续熵增,因为熵减的过程会带来额外的能量损耗,即也是熵增。生命复制消耗自由能转为熵,进化也是这个原则里的其中之一

很巧合,看了一个视频:人类什么时候被AI送走?_哔哩哔哩_bilibili

视频有提到,在薛定谔的《生命是什么》之中,记录这么一段话

生物这一辈子,总是在努力降低自己的熵

熵最大的状态即是它死亡的状态

熵增其实还算比较好理解,就是事物从有序变无序。「死亡状态是熵最大的状态」,指的是当动物死亡的时候,对于这个个体来说已经无法做任何事了,所以只会朝着无限混乱发展下去

所以人这一生总是在做让无序变有序的事件:让自己整洁、让自己学会使用更多工具……

一切生物在追求进化时,都首先有保底的路线:自然繁殖

但是人类之所以能称为高级动物,是因为即使其他动物可以使用工具,例如水獭拿到贝壳之后会拿它去拍石头,或者抓一块石头去拍壳类——它们只能是「拿到什么用什么」,而人类可以基于工具创造工具,用更新的工具解决更新的问题,并且能解决的问题类型和数量会随着时间和获得的素材呈指数级增长

另一边,E/acc 的官网 Effective Accelerationism 是这么讲的:

e/acc is not an ideology. It is not a movement. It is simply an acknowledgement of truth.

But it is also a blow against technocratic control, against the doomers and decelerationists who would have us consume less free energy and create less entropy. Top down control only lowers the dimensionality of civilization.
(但它也是对技术官僚控制的一种打击,对那些希望我们消耗更少自由能量并创造更少熵的末日预言者和减速主义者的反击。自上而下的控制只会降低文明的维度。)

E/acc 的提出,可能的原因也是有一些声音在反对技术或者通用人工智能发展得太快,亟待重新审视方向和相关的约束。但这个理论应该并不局限于 AI,我认为适用很多东西,包括我所在的前端

一直以来的疑问或许得到了解释

不管什么领域,实际上都一直在做「无序到有序」。若干年前我在知乎(懒得找)曾回答过一个前端发展相关的问题,大概是:

一开始没有前端,就是网页设计,那个时候只不过是切切图,从 fireworks 到 dreamweaver

再后来开始对交互提出了需求,所以开始有 CSS3 和 JQuery,布局也从 table 变成更灵活的 div + css。但网页依然还是网站程序员在做

棘轮继续转,又对交互提出了需求,简单的脚本已经顶不住更多的交互,开始需要像传统应用一样给代码分组和使用设计模式

棘轮继续转,又对交互提出了需求,并且对即时性也提出了要求。所以开始需要单页了,vue 官配一家子和 react 野生一家子,需要更强大的工程化

以下是我续写的:

再往下又对交互性和及时性提出了要求,这个时候已经更多的计算都在端侧了,所以开始产生了 PWA 之类的实现

再往下又对交互提出了要求,这个时候开始不满足 JavaScript 的密集计算性能了,并希望已经成熟的人类智慧积蓄继续发光发热,所以 WebAssembly 开始发展

再往下又对交互提出了要求,这个时候已经不满足让浏览器管渲染了,需要能直接调用 GPU 做一些更精细的渲染工作,于是轮到了 WebGPU

再往下又对交互提出了要求,这次要将当时没活成的 VR 推成 XR……

这个时候人类,或者相关的软件工程师,总是尽力在将无序变有序,其中还不包括我这段时间一直在尝试往前推进的「前端领域驱动设计」—— 让代码架构和逻辑「从无序到有序」

抛开所有「重复造轮子」和「KPI轮子」不谈,在「造轮子」这件事上,就是人类正在追求「无序到有序」。正如上面的回答,每一次技术迭代和更新,看着都像是消费升级,但有没有一种可能:技术只能是这样油门焊死发展下去的

HTML5 之前的 HTML,DOCTYPE 那可真是百花齐放,17 年去 DJI 面试的时候还被问过 DTD 的事。而 HTML5 之后,不管是标签还是规范,一切都统一了。而接下来的 WebGPU,或是 WebNN,其实都是因为技术发展而开始有新活可整

就像游戏引擎、图形学、计算硬件的关系,游戏引擎的诞生就是为了让游戏开发更有序和便捷,同时可以让游戏的技术能使用当前最前沿的技术,甚至对当前技术提出挑战。当一个个挑战解决之后,原本因为了用来玩 Quake 开始产生需求的显卡已经发展到甚至可以用来让 AGI 开发 Quake 了,虽然有点夸张

「指数发展文明」从人类组合的第一个工具开始就已经在加速发展,这或多或少又间接解答另一个困扰我很久的问题:我这一路活到现在,如果仔细回想一下,似乎总有迹象能说明「我这一路都像是有人早已设计好的,甚至我以为这一切的结果是因为我这一刻会发力也是被设计好的」

技术的发展似乎也是随着时间肯定会被逐渐发现,只不过是谁先发现而已,例如勾股定理

但关于「自然繁殖文明」,这玩意其实应该依然还存在 DNA 里。因为我始终很难理解,为什么直到现在还是会有人会想不断的生孩子,并且将自己的欲望和做不到的事强加给下一代,让下一代能完成

无法理解

刚好我又看了另一个东西

综上所述,「有序到无序」是否也可以看成 O(n)O(1)

这个时候让我看到了这个:〖FEDAY〗我的大前端世界观 - 黄玄 Hux_哔哩哔哩_bilibili

(老实说我当时玩知乎的时候还挺粉 Hux 的)

这个视频的一开始让我觉得有点好笑。其实这个角度说,我觉得有点好笑在于:Web 是前端,前端为什么是 Web。编译器有编译前端和编译后端,编译前端算「前端」吗?

不过,大体上可以将这个视频总结为:「前端工程师」身份认同正在逐渐消退。写页面叫前端,用 ReactVue 的叫前端,那开发 ReactVue 的人算前端吗?

接着又引用到了另一个跟 AI 相关的分享,来自陆奇的《我的大模型世界观》:

社会性拐点的核心,是一项大型成本,从边际成本变成固定成本

我是赞同的,因为我逐渐发现,我正在离「页面」越来越远。虽然我的工作依然有页面和交互的内容,而且做页面的速度早就没有增长。那我上班时间都花在哪了?答案是上一篇提到的类似的那些工具,以及上上篇提到的各种为了架构化的框架

而所谓「正格前端」,可能需求会越来越少,但并不是已经不需要交互了。简单说一下发生在我身边的现状:所谓的内容管理后台,现在已经交给 langChain + LLM 了

omni-frontend 这个概念提出来也很精彩。也像我之前曾经给前端下的定义:只要靠近用户的那一端就是前端。那作为一个日常也在使用终端设备的人,自己是最知道最想要的下一代交互是怎样的。能为终端用户做的事情还是太多了

WebNN 的诞生就是希望能在端侧跑一些小模型甚至随着计算能力的发展,形态越来越大。但无所谓,它诞生的目的就是能更即时得到交互结果,就跟明明有成熟的云计算又诞生出边缘计算一样

所以,有谁让你停止追求,把油门松开,大胆回答一句 QNMD 就行了。人活这一遭就应该尽自己的理解狠狠加速