React和Vue誰會淘汰誰
大家好,我卡頌。
在我的技術群里大家經(jīng)常會聊一些宏觀的技術問題,就比如:
Vue和React,最終誰會被淘汰?
這樣的討論,到最后往往會陷入技術的細枝末節(jié)的比較,比如:
- 對比兩者響應式的實現(xiàn)原理
- 對比兩者的運行時性能
很多程序員朋友,會覺得:
技術問題,就應該從技術的角度找到答案
但實際上,一些大家糾結的技術問題,往往跟技術本身無關。
誰才是框架的最終贏家?
討論「React和Vue誰會淘汰誰?」這個問題,就像10年前,一個康師傅信徒和一個統(tǒng)一信徒爭論:
哪家泡面企業(yè)最終會被淘汰呢?
他們把爭論的重點放在「口味的對比」、「面餅分量的對比」等等,最終誰也無法說服誰。
實際我們最后知道了,外賣App的崛起,對泡面企業(yè)形成了降維打擊。
回到框架這個問題上,在前端框架流行之前,前端最流行的開發(fā)庫是jQuery,他是命令式編程的編程范式。
取代jQuery?的并不是另一個更優(yōu)秀的jQuery,而是聲明式編程的前端框架。
同樣的,取代前端框架的,不會是另一個更優(yōu)秀的前端框架,而是另一種更適合web開發(fā)的編程范式。
那在前端框架這個領域內部,React和Vue最終誰會淘汰誰呢?
我的答案是:
誰也不會淘汰誰。
任何框架最核心的競爭力,不是性能,也不是生態(tài)是否繁榮,而是開發(fā)者用的是否順手,也就是「開發(fā)模式是否合理」。
React?發(fā)明了JSX這種開發(fā)模式,并持續(xù)教育了開發(fā)者3年,才讓社區(qū)接受這種開發(fā)模式
這種「發(fā)明開發(fā)模式,再教育開發(fā)者」的行為,也只有meta這種大公司才辦得到。
而Vue?則直接使用了「模版語法」這種現(xiàn)成的開發(fā)模式。這種模式已經(jīng)被廣大后端工程師驗證過是最好上手的web開發(fā)模式。
所以像后端工程師或者編程新人會很容易上手Vue。
經(jīng)過多年迭代,他們各自的開發(fā)模式已經(jīng)變成了事實上的前端框架DSL標準。
這會為他們帶來兩個好處:
- 開發(fā)模式是個主觀偏好,不存在優(yōu)劣
所以他們誰也無法淘汰誰,只能說React的開發(fā)模式受眾范圍更廣而已。
- 后來者會永遠居于他們的陰影之下
新的框架如果無法在編程范式上突破,那么為了搶占Vue?或React的市場份額,只能遵循他們的開發(fā)模式,因為這樣開發(fā)者才能無痛遷移。
比如最近兩年比較優(yōu)秀的新框架,svelte?是Vue?的開發(fā)模式,Solid.js?是React的開發(fā)模式
在同樣的開發(fā)模式下,占市場主導地位的框架可以迅速跟進那些競爭者的優(yōu)秀特性。
比如Vue?就準備開發(fā)一個類似Svelte的版本。
一句話總結就是:
你是無法在我的BGM中擊敗我的
總結
總體來說,在新的web編程范式流行之前,React、Vue還會長期霸占開發(fā)者喜歡的前端框架前列。
在此過程中,會出現(xiàn)各種新框架,他們各有各的特點,但是,都很難撼動前者的地位。