昨天晚上一众大佬背书的 Astro 发布 1.0 版本了,我在给团队里的大佬们布道。
在 Astro 的官方宣传中,有和 Next.js 的性能对比。
于是我们的话题又跑到性能上面去了。
这时团队内一位大佬突然说看不出 Astro 多 NB,因为它也是基于 React 和 Vue 这些框架开发的。
Astro 的性能提升主要体现在两方面:
- runtime 体积
- 岛屿架构
这和使用什么框架,关系其实不是很大。
于是继续聊,一直聊到了 React、Vue 这种固定 runtime 的框架和 servlet、solid 这类通过编译产生 runtime 的框架的区别。
这也算是一个对前端框架基本的认知。
但是大佬还是不认可,于是说前端框架都是💩,没什么鸟用。
大佬从业 20 多年了,其实从年龄上讲,我可以称呼大佬叔叔。
而且大佬是一位精通前后端技术的全栈大佬,说的话自然有些分量。
但是对前端有些许冒犯,我作为团队的首席前端架构师自然要反驳一下。而且这和我的理解是稍微不同的,因为全世界关注和使用前端框架的人有几百万,实在是没理由这么说。
于是我提醒他,存在即合理,合理即必然。
但是大佬还是固执的认为,React 和 Vue 这种框架没什么技术水准,就是前端开发者整体水平太菜了,整天把精力都花在研究这种东西上面没什么意义。
他的话我完全认可,这也是事实。
但是不能因为某个东西很好用,但没有太高的技术含量就去贬低它吧?观点太主观化了。
毕竟不是每个人都有那么高的技术品味和技术追求,现实世界里,实用主义者占据了大多数。
其实我能理解大佬的话,不止大佬一个人,我认识的技术圈一些工作十几年二十年的资深和知名大佬都是多少有些看不起现在的前端框架的,认为它们没什么技术含量,都是些花架子。
于是大佬继续说:
在这一点上,我认为大佬的认知是非常正确的。
在性能方面的技术深度上面,React、Vue 这类框架确实有些比不过 fresh。
因为无论是 React、Vue,还是 servlet、solid。
它们提高性能的方式都在努力降低 runtime 的体积和优化 rerender 的流程。
但 fresh 是基于 deno deploy 在做基于全球地理分布式的边缘渲染,本质上是在做就近计算和计算下沉。
所以它们不在一个 Level 上面,强行对比优点降维打击的味道。
另一方面,fresh 同样是在做岛屿架构。但是岛屿架构绝非某个框架独有,理论上所有的前端框架都可以实现孤岛架构。
毕竟无论前端怎么发展,本质上的渲染模式只有两种:SSR 和 CSR。
其他所有的模式都是在它们之间进行取舍诞生的衍生品。
于是我找了一张我以前画的渲染模式图给大佬看。
放一张高清图,感兴趣的小伙伴可以看下。
大佬看我并不好惹,于是不再争论这个话题,而是换了个论点。
论点换成了前端框架学习成本太高,一味学框架,是舍本逐末的行为。
这话说的很对。
但问题是,广大的前端同学还指望学习框架混口饭吃呢。
虽然我也不想学 React 和 Vue 这种框架,我也更喜欢用 fresh。但是奈何生态不好,更关键的是人招不到啊。
现在国内前端市场几乎把前端程序员和 React、Vue 挂钩了。逢人便问:你是用 React 的还是用 Vue 的?
所以我只能继续劝说大佬,要接受现实,理解那些只是把写代码这件事儿当作养家糊口的工具的人。
其实这篇文章我没有别的意思,大佬的话都是对的,只是有些偏激。
通过和资深大佬的技术观点讨论,可以得到很多观点。让很多还没有达到大佬 Level 的前端可以提前看懂很多东西。
你认为呢?