Java会走向晦暗吗?Kotlin会取而代之吗? - DEV社区

19-01-13 banq
                   

Stackoverflows上的趋势图显示Java从2015年以后走下坡路,而Kotlin开始上升。该图形中的Java趋势不断下降,Java很容易失去其作为一种非常流行的编程语言的地位。Java会逐渐趋于衰落?并且会有很多不同的语言取而代之吗?

似乎JavaScript是目前流行的唯一一种真正护城河的语言,因为它在浏览器中运行,可能因为WebAssembly而消失。

来自Dev.to网友的观点:

1.我相信Java 作为一个平台永远不会消亡。JVM及其拥有令人难以置信的高质量库包的生态系统,加上其在大型企业环境中的深厚根基,使其成为一个值得开发的平台,并将永远继续存在。

但是,我确实认为Java 作为一种语言将越来越多地被Kotlin所取代。其他JVM语言(Scala,Groovy,Clojure)可能试图取代Java,但他们从未真正实现过这一承诺。使用Java作为主干,他们都做了截然不同的事情,但对于习惯于以“Java方式”做事的开发人员来说,他们感到很不舒服。Scala带来了纯函数式编程。Groovy让它充满活力。但是Kotlin是第一个真正被创造成为更好的Java的人,而且如果你习惯于编写Java8风格的代码,你会非常快速地接受Kotlin并坠入爱河。

但Kotlin成功的一个主要部分是它与Java的完美互操作。Kotlin很棒,因为引擎盖下,它只是Java。与普通的Java相比,Kotlin没有任何根本的不同。Scala和Groovy都有自己的运行环境,虽然它们运行在JVM上,但与Java不完全兼容。Kotlin只是编译与Java完全相同的事情,这对于增量迁移来说是一个巨大的优势,特别是在大型,缓慢移动的企业中。

2. 这是一个很好的总结。我要补充一点,Kotlin实际上真的很努力(至少对我来说似乎这样)才能摆脱JVM的束缚。Kotlin Native(LLVM编译)似乎指向了那个方向。

3.我认为Kotlin根本没有试图摆脱JVM的锁定。Jetbrains团队非常高兴Kotlin仍然是一个更好的Java。我认为他们只是看到了一个很好的机会,通过使用不同的技术堆栈在多个项目中重用代码,从而提高Kotlin的知名度。

特别是Android的采用使得想要在iOS上使用相同的代码很自然,因此Kotlin / Native诞生了。同样,在服务器上使用Kotlin使得在Javascript客户端上使用相同的代码很自然,因此我们得到了Kotlin / JS。

但在这两种情况下,我认为与其他平台的分支是由与Java平台的深厚联系所驱动的,并且这将继续成为其中的佼佼者。

4.Kotlin与Java互操作很好,但并不完美。在涉及反射时尤其糟糕(请参阅data class Data(val SomeKey:String)使用jackson 反序列化时会发生什么。)

其他问题围绕着命名的函数to,in并且is在某些情况下无法使用。

更不用说一个gremlin dsl类命名了__!

Kotlin很不错,但互操作性不如Clojure的互操作甚至F#/ C#互操作

5. 将安卓 IOS 和Angular react.js和vue.js相比:

6. Stackoverflows这些图表的下降趋势实际上是由于人们的较低兴趣,或者只是答案已经存在且不再需要被问及。向上趋势肯定表明增长,但下降趋势......可能只是成熟和时间的标志,不一定是人气下降。

7. 在讨论Java时,企业环境会被提及很多,但在非企业环境中也是如此,任何人都在做数据科学。

Python和R可能是数据科学的工作语言,但Java仍然支持数据科学的语言。

想想所有Apache项目(Hadoop,Kafka,Solr等等) - 这些都是用Java编写的。那些不会消失或被重写或更换我不认为的任何时候。

8. Java可以越来越受欢迎和使用,同时相对于其他更流行的语言也逐渐消失。它也可以变得无处不在,就像C一样无形。

这就像Perl比以往任何时候都更受欢迎,但已经从20世纪90年代曾经占据主导地位的位置上滑了很长一段路。

也许Java已经陷入了相对默默无闻的境地。

9.一些传统的Java“模式”(Synchronized SingletonFactory Factory 和Builder,继承地狱)等趋向于默默无闻,因为Java开始获得更多函数特性,如lambdas,更好的模式匹配(即将推出)和记录类型。对于值类型,JVM本身即将发生更改,在运行时期间不会擦除泛型类型,这将使​​JVM作为多语言平台变得更好。

10.我认为我们会看到Java逐渐下降是一种非常受欢迎的语言,特别是在普通大学生中 - 我喜欢相信大学已经将Java推向学生很长一段时间了。这是我在CS课程介绍中学到的语言,但现在情况并非如此,或者至少那是我所看到/听到的。很多大学现在都提供Python或JavaScript的这些入门课程。

正如其他人所说的那样,Kotlin可能会替代Java,因为它几乎可以完成Java的所有工作,只需少量代码(如果我错了就纠正我) - 网络应用程序,后端程序,Android应用程序等等......

11. 对我来说很烦人,不时有人会提出java已死的主题。虽然这只是普通的无知话题,但是听到java语言消失的时候更让我烦恼,不是因为它是不是真会这样,而是因为谁更关心?现在有closure 和kotlin,dotty和即将到来eta。请注意,同时java语言的确会慢慢演变。

12. Ruby很活跃,Python擅长数据科学、人工智能和ML而飙升,Java活得很好(可能不太适合新的Android应用程序,就是这样)。所有三个都是相当古老的语言。

要有效衡量“默默无闻”真的很难。

Perl就是一个很好的例子,我多年没有听说过它,它不是每个人都在谈论的酷工具,但它也没有死。

13. »从长远来看,我们都死了« John Maynard Keynes

                   

2