TypeScript:又一個終將逝去的青春

WashingtonHua發表於2019-10-09

本文首發於我的個人部落格

硬幣的另一面

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 —— 一門靜態型別語言」

TypeScript:又一個終將逝去的青春

相關文章