编程语言流行的关键因素
我在想为什么 Scala 里早就有了 Actor,也很好用,简单,而且背后有 Java 丰富的生态圈支持,为什么就比不上 Go 的流行程度?只是在 Spark 周边的大数据圈应用?另一个发展较好的 JVM 语言 Kotlin 境遇差不多,也只是在 Android 开发中流行起来。
这俩编程语言都是轮子丰富、社区成熟,为什么没有 Go 发展的好?其实跟 Go 的比较就是跟 Java 语言的比较——在社区牛逼轮子多的情况下,看谁简单。
而像 Julia,这样的编程语言,号称性能强于 Python,内置了矩阵运算等种种科学分析功能,而且也不难,为什么声势仍远不如 Python?我觉得还是社区、生态的劣势造成的吧。
所以一门技术的发展,首先是简单点,才可能具备流行的条件,特性可以一点点加,不要一下子考虑个周全;其次是社区生态,先找个功能突破口,Go 跟廿年前的 Java 相似,都选择了网络编程功能作为突破口——当今互联网应用的基础,只不过 Java 当时还结合时势多了个 AWT/Swing。
无疑 Java 跟 Go 都是走在了正确的路上。而且简单性跟功能性是绝大部分开发者用户的最大考量点,远超过“优雅”、“性能”,比如 Java 冗长,Go 不够优雅,但这些都不是是否流行的决定性因素。这点上,PHP、Python 的流行也是同理。
也还有一个因素,就是寄生不如原生,偏房不如正房。
编程语言也是产品,产品的发展都有值得思考和借鉴的地方。
Long-press QR code to transfer me a reward
手留余香
As required by Apple's new policy, the Reward feature has been disabled on Weixin for iOS. You can still reward an Official Account by transferring money via QR code.