查看原文
其他

Java 会走向晦暗吗? Kotlin 会取而代之吗

点击上方 "程序员小乐"关注, 星标或置顶一起成长

每天凌晨00点00分, 第一时间与你相约


每日英文

Be yourself and stay unique. Your imperfections make you beautiful, lovable, and valuable.

做最特别的自己,正因为你的不完美,你才如此美丽、可爱、珍贵。


每日掏心

人生在世会受许多委屈,别因此而难过,一个人越成功,他所遭受的委屈也会越多。




来自:DEV社区 | 责编:乐乐

程序员小乐(ID:study_tech)第 738 次推文   图片来自 Pexels


往日回顾:大白话带你全面了解 Kafka



   正文   


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»

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

欢迎各位读者加入程序员小乐技术群,在公众号后台回复“加群”或者“学习”即可。

猜你还想看


阿里、腾讯、百度、华为、京东最新面试题汇集

Redis Sentinel 架构原理详解

面试官问:平常你是怎么对Java服务进行调优的?

一次SQL优化的体验


关注「程序员小乐」,收看更多精彩内容
嘿,你在看吗?
: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存