1

我对技术潮流的一些看法

 2 years ago
source link: https://www.cnblogs.com/xiao2shiqi/p/14840866.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

主流技术很少会变化


我对技术和工具的看法是这样的,主流技术很少会变化,每年关注 TIOBE 的排行榜发现一个有趣的现象,头部的几个主流的技术栈基本是恒古不变的,并且会有一些细微的竞争,但是底部的其他语言变化是比较大的,经常有其他语言加入进来,也有其他语言排名下降出局。

这就非常类似我们看到的世界 500强的排名,
头部的公司永远是那几家,例如:微软、苹果、亚马逊、谷歌,Facebook 等

其他编程语言也遵循经济市场的运行规则,就是 马太效应,强者恒强

越是流行的编程语言,会吸引开发者的使用,那么就有更多的开发者为他贡献工具库、文档、插件、开发工具等,丰富它的生态,因为生态的丰富,带来使用的方便,从而会吸引更多的新人,包括学校也会选择它作为教学语言,为它源源不断的贡献开发者的,这就是为什么说技术潮流是马太效应,强者恒强的本质。因为它的生态建立起来后是很难被替换的。

什么情况下会发生变化 ?


如果只是在同纬度竞争,那么主流的技术不太会出现很大的变化,例如:现在出了一个新的后端编程语言,性能比 Java 快,你觉得大家会换技术吗?很多人是不会换的,为什么 ?
因为仅仅是一些性能的优化,语法的优化,也很难让大家放弃现有的生态环境,例如 Go 现在就面临这种情况,性能很好,语法也很好,但是不可能替代 Java,因为它的生态是没办法超越 Java,他们只能在不同维度存在,避开竞争关系。

就是说如果你想要相同赛道去竞争超过巨头,基本是不可能,就算你能做出更好的搜索引擎,你也不可能替代 Google,你能做出更好用的手机,你也不可能替代苹果,类似案例,不胜枚举。。除非新的竞争者是从其他维度过来,进行的降维打击,例如特斯拉(新能源,航空领域),这就是为什么Go 为什么只能在 PaaS 层发挥自己的作用了。在相同赛道上应用层是很难和 Java 竞争的。想想当年的 Plan9 想要通过实现一个更好的操作系统来替换 UNIX 最终失败就是一个很好的例子。
就是现在有一家公司推出一台新手机,价格更便宜,性能比 iPhone 更快,但是因为它是新的系统,没有 App Store,所有软件需要重写和迁移,那么我相信只有小部分的人才敢于去使用,而且不会作为主力机(生产环境)来使用。但是你会说给他一些时间,他的生态会慢慢建立起来,例如 Go,但是不同的是,那些主流的技术他们不会等待,他们也在完善自己的生态,只有很低的概率会被超越。

技术迭代的三个必要条件


新的技术必须是要从三个维度全面的碾压,才有可能替代现在的流行技术方案:

  1. 近乎碾压的性能和效率, 例如苹果 M1 芯片的效率和功耗比,近乎碾压英特尔的芯片
  2. 差不多的生态:光有性能,几乎不可能让大家去迁移,在新的技术上必须要有几乎相同生态环境和工具使用,这也是为什么苹果花那么大力气开发 rosetta 2 的原因,就是为了把英特尔的生态迁移过来
  3. 大公司的长期支持和背书,这个就不多说了。例如 Go 语言背靠 Google ,M1 背靠苹果,Java 背靠 Oracle 等等

所以基于以上的结论,我认为起码未来10年内不会出现全栈逆袭,主流技术也不会发生大的变化。人们总是说技术是多变的,但是变化的都是那些不成熟的技术,主流成熟的技术是很少变化的,例如:C/C++/Java/Javascript,从目前的行业趋势来看(TY,Java,Go,Rust),我愿意相信未来会是强类型,静态编译型的天下,性能什么的还好,代码的可读性对于团队协作真的太重要了。所以我的结论是,尽量选择主流的技术栈和遵循行业的选择,这样风险更小,而且在生态的加持在也会让你的应用更加的健壮。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK