都 2025 年了,为什么国内互联网大厂技术已经那么强大

360影视 日韩动漫 2025-03-17 08:50 5

摘要:这个问题一直让我感到困惑。照理说,从10年前国内互联网技术大爆发开始,国内大厂对React、Node等开源技术和框架应该已经非常熟悉,相关的源码分析随处可见。技术水平这么高,为什么不针对这些已有技术的局限性,推出一些能够让开源社区眼前一亮的新框架、新的JS运行

这个问题一直让我感到困惑。照理说,从10年前国内互联网技术大爆发开始,国内大厂对React、Node等开源技术和框架应该已经非常熟悉,相关的源码分析随处可见。技术水平这么高,为什么不针对这些已有技术的局限性,推出一些能够让开源社区眼前一亮的新框架、新的JS运行时,或者新的CSS框架?

是因为业务工作太忙,公司不愿投入?还是有其他原因?实际上,国外很多程序员如果有国内大厂员工那样的技术背景,早就自己去搞开源框架了。我至今没见过哪个国外程序员能像国内的高手那样深入理解React源码、Node源码的——大多数人的水平不过是CRUD + Google搜索而已。

希望国内大厂能够给予技术大佬们更多的支持,帮助他们在开源社区做出更具影响力的贡献,让世界看到国内开发者的技术实力。

以下仅代表我个人看法:

React 在前端(Web)打造出了一套范式,已经远远超越 W3C 原本的规划,成为事实上的标准。

在我看来:

react 自己是一个脉络的:createClass(古早写法) -> class component -> fn component & hooks

ember.js/backbone.js -> angular 是一个脉络的,MVVM。这一套主打一个太复杂、太啰嗦(个人看法),我宁愿去写 dom selector。

flutter 是对 angular(主)+ react(次)的升阶。可是最核心的 JSX 他又不屑学,结果带来了代码的臃肿(起码我自己认为 flutter 代码很臃肿,也许使用者不觉得吧)。

Vue 1/vue2 是对前端 template 的强化版,他有代表性,但古早 template 主要是后端玩。我一直是很不屑前端 template 的,主要这玩意给静态 html 流污染得非常严重。

vue3 实际上又搭上了 react 的这条路(抱歉我完全不懂 vue,看不得一点 vue 的代码,看到那些 @ : v- 我就会晕眩、吐、妊娠反应等,所以具体就不展开了)。

首先必须指出的是,W3C 原本的路线规划,如果不存在 React 话的,那么 WebComponents 必然是首推的,在概念上 WebComponents 确实非常针对 Web 开发的各种痛点,实现一个DOM沙箱以确保隔离。

WebAssembly 和 WebComponents 双翼齐飞,是原来的计划(其实这一直也没变过)。

实际上 WebComponents 带来更进一步的就是 HTML 扩展标签,当一个 html 页面加载某个特定的 JS 以后,就能正确渲染自定义的 HTML 标签。

在不考虑中间出现的前端后分离、前端工程化如此蓬勃发展的插曲的前提下,后端可以这样生成的 html 流:

description...

而 React 距离成神,所差的就是支持 WebComponents (还有多用原生事件)。可惜他就不就不就不。

我相信,未来一定会发生如下的场景:

WebComponents 是浏览器原生自带的,我们为什么要额外使用什么前端框架?我们为什么不立足于 WebComponents 进行开发。

是的,所以 Google/Adobe/巨硬 等大厂早就入场了,可是开发体验,到目前为止都很难和 React/Vue 这些成熟的前端开发架构去比拼。

我一直在关注,比如这个 Material Design Web Components:。

毕竟,如果有一天,静态 html 就能有不输于现行前端框架下的交互体验,人们又会纷纷离去。

但眼下实际的情况就是,React 范式所带来的思想改变和开发实践的提升,却是肉眼可见的。所以将来注定会为 WebComponents 留下些什么。

我只是希望 React 能尽早支持 WebComponents ,务实一点,别老关注在一些奇奇怪怪的点上。

实际上,createSignal 也是一个大家不约而同的一种默契。这个东西本质上还是在强调前端开发的动态性,并且可上(进而为一个 Context)可下(仅在一个组件有效,乃至只是一个 local var)。React 不屑一顾是对的,本来就有 Context -> Props -> State 的闭环。

这是站在 W3C 角度的看法。

我自己看法更激进一点,React ,实际上为前端(Web、Mobile、Desktop)提供了一种标准,即数据动态变化以动态驱动View的变化,过去我们是手动去完成这一变化的。

JSX 是 DSL(Flutter那做法,我个人认为是开倒车),编译器处理入口。这玩意,至今也不过发挥出50-60%的功效,他仍大有可为。我一直认为,跨多端,应该从 JSX 的编译器去下手,同一个组件,在不同平台的实际实现,应该交给编译器去实现,应该提供 ReactCompilePlatform 的参数去决定到底输出成什么。这样,世界就安静了。

我很主观,我承认,我说了很多妄语。

来源:松哥唠唠嗑儿

相关推荐