我对技术和工具的看法是这样的,主流技术很少会变化,每年关注 TIOBE 的排行榜发现一个有趣的现象,头部的几个主流的技术栈基本是恒古不变的,并且会有一些细微的竞争,但是底部的其他语言变化是比较大的,经常有其他语言加入进来,也有其他语言排名下降出局。
这就非常类似我们看到的世界 500强的排名,
头部的公司永远是那几家,例如:微软、苹果、亚马逊、谷歌,Facebook 等
其他编程语言也遵循经济市场的运行规则,就是 马太效应,强者恒强。
越是流行的编程语言,会吸引开发者的使用,那么就有更多的开发者为他贡献工具库、文档、插件、开发工具等,丰富它的生态,因为生态的丰富,带来使用的方便,从而会吸引更多的新人,包括学校也会选择它作为教学语言,为它源源不断的贡献开发者的,这就是为什么说技术潮流是马太效应,强者恒强的本质。因为它的生态建立起来后是很难被替换的。
如果只是在同纬度竞争,那么主流的技术不太会出现很大的变化,例如:现在出了一个新的后端编程语言,性能比 Java 快,你觉得大家会换技术吗?很多人是不会换的,为什么 ?
因为仅仅是一些性能的优化,语法的优化,也很难让大家放弃现有的生态环境,例如 Go 现在就面临这种情况,性能很好,语法也很好,但是不可能替代 Java,因为它的生态是没办法超越 Java,他们只能在不同维度存在,避开竞争关系。
新的技术必须是要从三个维度全面的碾压,才有可能替代现在的流行技术方案:
所以基于以上的结论,我认为起码未来10年内不会出现全栈逆袭,主流技术也不会发生大的变化。人们总是说技术是多变的,但是变化的都是那些不成熟的技术,主流成熟的技术是很少变化的,例如:C/C++/Java/Javascript,从目前的行业趋势来看(TY,Java,Go,Rust),我愿意相信未来会是强类型,静态编译型的天下,性能什么的还好,代码的可读性对于团队协作真的太重要了。所以我的结论是,尽量选择主流的技术栈和遵循行业的选择,这样风险更小,而且在生态的加持在也会让你的应用更加的健壮。