本文首發於我的個人部落格
硬幣的另一面
TypeScript 真的是太火了,伴隨著 Vue 3 的登場,三大框架全面支援 TypeScript,全民學習 TypeScript 迎來新一波熱潮,娛樂圈正式進入 TypeScript 新時代。
回頭一看,娛樂圈像這樣的頭條還真不在少數,Flutter、微信小程式、ES6 …… 再往前就不說了,太多了。每一個都曾引起過一陣全民學習的狂潮,感覺學了就能走向巔峰,不學就完了。
關注新技術的誕生,是每個有追求的開發者應該做的。但這一篇,我卻想談談硬幣的另一面。
英雄末路
在人家最火的時候,來這麼一下,難不成是在故意唱反調,博眼球嗎?
作為 TypeScript 早期實踐者中的一員,浪潮初到時我也曾為之激動過,也正因為如此,當後浪來臨時,我反而非常淡定,開始看向新的遠方。
優勝劣汰,物競天擇,大自然的法則誰也逃不過。有誕生,就有毀滅,再火熱的技術,也終將退休。
上一個因為退休而被熱議的技術,應該是 jQuery 了吧。jQuery 年輕時有多火不用多說,如今廉頗老矣,雖尚能飯,但世人卻依然給了它一個大大的「否」字。不是 jQuery 不行了,只是行業發展了,不再需要它了。
回顧歷史,這樣的故事,其實一直在上演。
歷史總是驚人的相似
人們想要一致的 API 來操作 DOM,於是創造出了 jQuery。後來 DOM API 越發標準,jQuery 也就逐漸淡出了人們的視野。
人們想要好用的語法特性,於是創造出了 CoffeeScript。後來 ES 2015 標準釋出,CoffeeScript 的存在感一天不如一天。
人們想要在客戶端也能有良好的模組化支援,於是創造出了 AMD/CMD/UMD 等方案。後來 ESM 成為了主流,就沒人再談這些了。
現在,人們想要型別推斷了 ……
命中註定是個備胎
昔日英雄,都不過是備胎罷了,需要時發展一個,用不著了就丟掉,標準才是永遠的正宮。聽上去很惋惜,但這都是大自然的常規操作。
行業需要什麼,從業者就會去創造什麼,行業從中受益得到發展。行業發展了,曾經的創造不再被需要,日漸被遺忘,最後徹底退出。
即便是 React、Vue、Angular 也是一樣,三大技術棧現在大方向都是奔著 Web Components 去,等哪一天 Web Components 支援度足夠了,或許就又到新一輪更新換代了。
看了尤老師在 知乎專欄 上的評論,我又重新去認識了一下 Web Components。上面這段,大家就假裝沒看到吧。
35 歲這個哏
每年,都有一批 35 歲左右的網際網路從業者光榮退休。有人抱怨企業過河拆橋,但畢竟資本是嗜血的,企業是以賺錢為目的的,大家只是利益驅使下的僱傭關係,而已。一方需要能力,一方提供能力,一紙合同,開幹。
從這一點看,人和技術都是一樣的。行業的走向、企業的需求、開發者的年齡,開發者的能力,這些都是變數。前面 3 種變化都是被動的,不管我們接不接受,該變的都會變,唯有技能,是我們可以控制的。當我們的能力,能夠順應行業的走向,能夠滿足企業的需求,年齡就成了無關變數,否則,它就可能成為一個「溫柔的藉口」。
終將逝去的青春
現在整個前端圈都已經接受了「靜態型別系統」這麼個東西,一個庫如果無法提供良好的型別定義甚至會因此被嫌棄。當一項非標準的技術成為了事實上的標準,那麼它距離成為真正的標準也就不遠了。剩下的,或許只是時間的問題。
屆時,TypeScript 或許也會逐漸消失,成為一代人的記憶,被後世所遺忘。
青春終將逝去,技術也是一樣。來時,我們為之狂熱,去時,我們為之惋惜。
若干年後,當後輩們再次踏上這條征途,他們的起點,或許就已經不同以往:
「JavaScript —— 一門靜態型別語言」