大家好,我是Kason。在我的技术群里,经常有人讨论一些宏观的技术问题,比如:Vue和React,最后谁会被淘汰?这种讨论,到最后往往会陷入技术细节的对比,比如:对比两种响应式的实现原理,对比两者的运行时性能。很多程序员朋友会觉得:技术问题应该从技术的角度去寻找答案,但实际上,一些大家纠结的技术问题往往与技术本身无关。欢迎加入人类优质前端框架群,谁才是框架的最终赢家?讨论谁将淘汰React和Vue?这个问题就像10年前,一个康师傅信徒和一个统一信徒争论:哪家方便面企业最终会被淘汰?他们着重于口味的比较,面包量的比较等等,结果谁也说服不了谁。事实上,我们终于知道,外卖APP的兴起,给方便面企业带来了一次降维打击。回到框架的问题,在前端框架流行之前,最流行的前端开发库是jQuery,它是一种命令式编程的编程范式。取代jQuery的不是另一个更好的jQuery,而是声明式编程的前端框架。同样,取代前端框架的也不会是另一种更好的前端框架,而是另一种更适合web开发的编程范式。在前端框架领域,谁将最终淘汰React和Vue?我的回答是:没有人会消灭任何人。任何框架的核心竞争力不是性能,也不是生态是否繁荣,而是开发者是否顺手使用,即开发模式是否合理。React发明了JSX的开发模式,并持续教育开发者3年,才让社区接受了这种开发模式。这种发明和开发模式,进而教育开发者的行为,只有meta这样的大公司才能做到。而Vue则直接使用现成的模板语法开发模式。这种模式已经被广大后端工程师验证为最好的web开发模式。所以无论是后端工程师还是新手上手Vue都会很容易。经过多年的迭代,各自的开发模式已经成为事实上的前端框架DSL标准。这会给他们带来两个好处:开发模式是一种主观偏好,没有好坏之分,所以他们无法淘汰任何人,只能说React的开发模式有更广泛的受众。后来者永远活在自己的影子里。如果新框架不能在编程范式上有所突破,那么要想抢占Vue或者React的市场份额,就只能沿用他们的开发模式,因为这样开发者可以无痛迁移。比如近两年有比较好的新框架,svelte是Vue的开发模型,Solid.js是React的开发模型。在相同的开发模式下,主导市场的框架可以快速跟进那些竞争对手的优秀特性。例如,Vue正在准备开发一个类似于Svelte的版本。一句话总结就是:你在我的BGM里打不过我的总结一般来说,在新的web编程范式流行之前,React和Vue会长期占据开发者最喜欢的前端框架的前列。在这个过程中,会出现各种新的框架,各有特点,但很难撼动前者的地位。
