Breaking changes导致各种编程语言的学习成本剧增

最近用golang1.20强行兼容win7想到的。

初期用基本语法还好,当我要用第三方库导出excel时,使用旧版本号的库依然会引入1.23的包,我需要花好几个小时去处理跟语言关系并不大的版本问题。

在用node编写一些程序时也有这种问题,你node12编写的程序并不能无痛的迁移到node16上,有些库在新版本上没有了甚至改名了。

而用java这种问题少很多,早期第三方库都在兼容jdk1.5 后来都在兼容1.8 再后来兼容jdk21等等,在第三方库上可以很明确的看到,你用哪个版本的jdk可以对应库的哪个版本,即使文档没写,很多社区热心的人也会提供答案。

java8的lamda表达式的语法在出现的5年内还是有维护者看不懂写法注释掉的情况。后来情况少了。java后来的特性也是语法糖性能优化这一类的。java的生态说明,一个语言进入稳定期估计得20年。

golang和node都出现在2009年,然而并没有比java更早的进入稳定期间,各开源项目node 12 14 16 18 20同时存在,golang 1.22还出现的xml不兼容的这种特性。可能还是生态上的问题,一直没能出现和java比肩的这种生态效果。

python是1991年发明的,基本上是linux发行版内置的脚本语言,除了2和3有过大的Breaking changes,其他的发展也是中规中矩。现在AI基本都用它,虽然它在windows上的依赖很恶心。

抛开语言看,现在的win10运行03版的office也没有任何问题。不兼容哪来的生态。虽然兼容的成本高,但是Breaking changes可是实打实的恶心开发者啊。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注