这几天,我读到三篇文章,全部是工程师后悔使用了新技术。
第一篇文章《为什么我们放弃 Elm 语言》。
(说明一下,原文都是英文,为了方便展示,我把截图用"翻译"功能转成了中文。)
第二篇《GraphQL:从兴奋到幻灭》。
第三篇《为什么我后悔使用 ionic》。
上面三种新技术,都是最近10年诞生的。当时,都号称解决了开发的重大问题,看上去很有希望。 因此,一诞生就成了热点,非常吸引眼球,这些工程师就都采用了。
我说说这些技术的优点。
Elm 语言保证网页脚本不再报错。
GraphQL 只发一个请求,就满足前端的所有数据需求。
ionic 让你使用任意 JS 框架,开发安卓和苹果的手机应用。
如果你是前端工程师,一看这些技术特点,大概立刻就会心动。
但是,当你真把它们用在生产环境,各种问题就会慢慢暴露出来,几年以后你可能就像上面的文章作者一样后悔莫及。
Elm:最新一次更新是2019年,与当前 JS 生态的融合越来越困难。
GraphQL:使用后的性能提升不明显,反而使后台架构变得复杂,而且分页、缓存等问题很麻烦。
ionic:文档不足且混乱,没有社区和生态。
等到后悔了,想要更换技术栈,就晚了。上车容易下车难,项目都持续投入好几年了,再修改架构谈何容易。
这件事的教训,就是使用新技术要谨慎。新技术有一个最大风险,往往被忽视,那就是它们没有经过足够的使用,问题都没有暴露出来。
我记得,有人做过研究,企业软件的成本,只有20%是早期的开发成本,剩下的80%都是后期的维护和更新成本。
很多的新技术,看上去可以节省前面20%的开发成本,但可能大大增加后面80%的维护成本。
现实生活中,那么多企业选择 Java,而不是那些时髦花哨的新技术,原因就在这里:Java 是经过考验的,不会出现奇怪的问题,有良好的长期维护,企业长期使用的风险和成本相对较低。
如果开发者真为自己考虑,想将来简单一点,不必每天为复杂奇怪的技术问题操心,应该优先选择那些可靠的老技术,用于公司的长期项目。
老技术的问题是,它很乏味:所有可能性都被探索过了,创造发挥的空间不大。很多程序员(尤其是新程序员)因此觉得,老技术展现不了技术能力,也不够好玩,新技术更有乐趣,对自己的提升更大。
这种想法并没错,但前提是你的项目不需要长期维护,否则使用未经考验的新技术是非常冒险的。
来自 https://www.ruanyifeng.com/blog/2023/04/weekly-issue-250.html
文章评论