1、要成为主流编程语言是非常困难的。它需要很长的时间来建立动力:社区、库、工具和整个生态系统。今天许多流行的语言,如java、C、C或python,已经存在了几十年。 语言设计只能让你走到这里。人们似乎低估了一种语言成为并保持流行所需的其他一切的重要性。当涉及到适应新的语言时,软件行业往往是相当保守的,而程序员毫不奇怪地经常为一种语言的生态系统做出贡献。 2、向后兼容。这也是scala多年前失败的地方。每一个新的语言版本都会破坏旧的lib,而这些lib需要由维护者来修复,以适应新的版本。 正如其他人提到的生态系统。SpringBoot和其他开源软件。伟大的工具,如IntellijIDEA。很多人都在使用它,所以有很多指南和stackoverflow答案等。 Java仍在不断发展。一些功能特性,如lambdas和流API被添加进来。 3、Scala仍然存在,找到了自己的小众市场。但是Akka许可证的变化令人不安。 4、太多的人专注于语言本身,而忽略了生态系统、开发者队伍和它所要解决的一系列问题。 有所有这些替代的JVM语言是件好事。他们中的许多人用新功能创造了竞争,然后Java吸收了它们。 SUN公司是Java的一个薄弱的监管者。200年代初的那些EJB垃圾让我觉得他们并没有真正理解JVMJava的力量。尽管甲骨文可能很邪恶,但他们有足够的实力与微软抗衡。 5、Java之所以受欢迎,是因为它的生态系统令人惊叹。我真的不在乎语言当我在该区域时,我什至没有注意到语言。 我认为他们最大的优势(尽管很糟糕)是确保JavaEE可以拥有多个供应商。这保证了企业承诺的广泛生态系统。 6、是Sun让Java变得自由和开放。甲骨文永远不会这么做。Java发展方式的重大机会在Sun期间就已经开始了,而且Java团队的很大一部分人(幸运的是)在甲骨文公司继续工作。 EJB这套东西起源于IBM,Sun采用了它,再加上其他大的企业公司,如Oracle,以及其他一些可能在这个时候被IBM或Oracle收购的公司,它演变成了一个可怕的软件工程理念的大例子。 7、在OpenSTEP时代,EJB垃圾是受ObjectiveC框架影响,这是ObjectiveC如何影响Java的另一个谜题。它宣称分布式对象无处不在。 8、Scala解决了大多数开发人员从未真正关心的语言语法问题。 9、为什么会出现groovy、Scala、Kotlin等替代JVM语言?答案是Sun让Java闲置了太久,它落后于开发人员在生态系统中想要的东西。人们厌倦了等待Sun并开始对Java进行自己的改进。一旦Oracle开始改进Java并且我们采用了新的6个月发布格式,这些其他语言的优势很快就消失了。由于甲骨文和谷歌之间的法律问题,Kotlin得以延续至今。 10、业余爱好者谈论编程语言。专业人士谈论生态系统。 为什么Java流行了这么久,而Scala来去匆匆?Reddit