在WWC22上,NPM联合创始人(目前是??Netlify的数据分析师)“LaurieVoss”发表了预测未来的演讲“web开发”的发展方向。LaurieVoss的“web开发”在未来5年将如何发展?在说出他的预测之前,“劳瑞”说:“在座的每个人可能都讨厌我的预测。”因为他自己也不等着看这个预言的结果。那么他的预测依据是什么呢?简单地说:太阳底下并无新鲜事作为拥有26年Web开发经验的数据分析师,“Laurie”总结了技术发展的模式。简单来说,一个技术的生命周期会经历一个循环:提出一个解决思路起初,人们在项目开发过程中遇到了一个问题,有人开始尝试解决这个问题。一旦有人提出了一个让人觉得“这个想法很棒”的解决方案,当遇到类似的问题时,每个人都会尝试用自己的理解来实现这个解决方案。例如,当Dan提出Redux模型时,社区还没有更好的状态管理方案,于是这个方案被广泛接受,出现了很多“基于Redux模型的状态管理方案”。这是一个不断重新发明轮子的过程(也是很多KPI项目的来源)。确定最佳实践随着解决方案的实践,“最佳实践”将逐渐出现。当“最佳实践”产生时,开发人员通常会感到无聊,因为在这个方向上没有什么可探索的(可以造轮子)。这时候无聊的程序员就会想:我可以打造一个“大而全”的框架/系统/产品来一劳永逸地解决这类问题。也就是说,“商品化”最佳实践。最佳实践的商品化“商品化”过程通常很激烈,涉及许多团队/公司/个人,提出自己的产品并攻击竞争对手在某些领域的缺点。比如各种前端框架,可以认为是前端工程师等消费者消费的商品。消费者有自己的喜好,有些人可能喜欢Vue,有些人可能喜欢React。但作为一种商品,最终还是有一个事实上的赢家。这是一个不变的经济规律——为了达到某个目的,可能有很多产品可供选择,但一旦某个产品被更多人选择:作为老板,更容易招募到会使用该产品的人程序员,可以更好的利用这个产品的社区生态,进而让这个产品被更多人选择,最后产生马太效应(强者愈强)。例如,有很多与Wordpress同时出现的博客构建产品。但到了2022年,全球43%的网站都由WordPress提供支持。第二名和他的差距恐怕不是一个数量级的。抱怨没有基础。当一个产品成为主流时,你会听到一个声音:不要只使用产品/系统/框架,你要了解它背后的原理。“Laurie”最初开发时,主流的标记语言是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。HTML只是SGML的一小部分。它的特点是规范更宽松,但更容易学习。如果你当时正在使用HTML,高级工程师会告诫你:不要只知道如何使用HTML,还要了解它背后的SGML,否则你很长一段时间都做不出来。大规模应用当某种产品成为绝对主流并被大规模应用,以至于成为事实上的“基础设施”时,下一代的技术人员很可能接触不到所谓的“原理知识”上一代的。比如现在HTML已经成为前端基础设施,谁还记得SGML?再比如,现在很多老前端都用过jQuery。在前端框架兴起之前,大家使用jQuery来操作DOM。面试期间还将检查jQuery源代码。毕竟,每个人都同意——原生JS是基础。jQuery中的选择器好用到主流浏览器都内置了,这就是querySelector的选择器语法。最终,querySelector成为选择DOM时的事实标准。谁在乎它背后的原理?回到原点,基于新“基建”的发展最终会遇到新的问题。于是,一切又回到了原点。比如最初的开发者使用JSP、PHP来开发前端页面。然后是企业社会责任。后来为了解决CSR的各种问题,就有了SSR。但是从实现原理上来说,JSP和PHP不就是SSR吗?劳瑞的预测最后,“劳瑞”基于上述轮回模型,对“网络发展”做出了预测。在21年的一项调查中,68%的开发者使用React开发页面。“Laurie”说:在他的职业生涯中,React是唯一可以达到jQuery规模的。也许将来React会作为基础设施直接在浏览器中实现(就像jQuery的选择器一样)。但与其“直接集成React本身”,不如将目前不太好用的WebComponents重新设计成类似ReactComponent的形式。目前有很多基于React实现的新框架,比如Astro、Remix、Next.js、Solid.js。这些框架的开发者假设他们的用户已经知道如何使用React并且喜欢使用React(否则他们不会使用他的框架),这从侧面反映了React已经被用作前端基础设施。如果接受这个设置(React将被用作前端基础设施),那么我们就回到了轮回模型的起点。现在的开发者用React反复实现,觉得无聊是什么情况?一种答案是:编写组件。因此,“Laurie”认为,在未来5年内,基于“React组件”的可视化编辑器将成为主流。像ReactBricks这样的产品:当时,一些开发人员负责实现具有各种功能的React组件。此类组件称为Bricks(砖块)。另一方面,大多数开发人员使用可视化编辑器来拖放基于积木的不同页面。这样的开发者连HTML都不碰,在他们的基础设施中,最小的单位就是一块砖(React组件)。其实,早期的浏览器(“蒂姆爵士”开发的WWW)就是通过拖拽、打字等方式实现的富文本编辑器,呵呵,天底下无新鲜事。总结如果您厌倦了看到这个预测-就这样了吗?正如文章开头提到的,“劳瑞”本人非常讨厌这种预测。但历史一次又一次证明,曾经被人厌恶的设计,最终很可能成为主流(比如2013年前端人对JSX的态度)。26年前的开发人员会认为只有HTML,而不是SGML是不可靠的。10年前的开发者会认为只懂jQuery而不懂原生JS不靠谱。现在的开发者会认为自己只懂前端框架,不懂实现原理是靠不住的。难不成5年后的开发者会认为只能拖拽生成页面,不会开发组件不靠谱?
