TypeScript:又一个终将逝去的青春

5,494 阅读4分钟

本文首发于我的个人博客

硬币的另一面

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 —— 一门静态类型语言」