翻译:jdon.com/51453    原文:DEV社区

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

正文结束

推荐阅读 ↓↓↓

1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.感谢上天,我被失联2年后,终于活着从东南亚菠菜公司的技术“魔窟”逃出来了...

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.求助!妹子一个rm -rf把公司服务器数据删没了,我该怎么办

7.日均5亿查询量的京东订单中心,为什么舍MySQL用ElasticSearch?

8.15张图看懂瞎忙和高效的区别!

一个人学习、工作很迷茫?

点击「阅读原文」加入我们的小圈子!

Java会走向晦暗吗?Kotlin会取而代之吗相关推荐

  1. Java和Python中类似Kotlin的生成器,续:附加参数

    介绍 在今天的文章中,我们将继续上周的文章,内容涉及用Java和Python制作类似于Kotlin的构建器,扩展构建器API以采用一些可选参数来提高灵活性. 我们继续我们HTML示例,尝试添加标记属性 ...

  2. kotlin t class.java_尝试Java,从入门到Kotlin(下)

    上篇已提(tu)到(cao)Java中的各种坑.习惯了C#的各种特性和语法糖后,再转到Java感觉比较别扭.最后本着反正Java也不是很熟悉,干脆再折腾折腾其他语言的破罐子破摔的心态,逛了一圈JVM语 ...

  3. java游戏代码_Java与Kotlin系列文章之性能问题详解

    作者丨Jakub Anioła 译者丨姜雨生 策划丨田晓旭 随着对 Kotlin 越来越深入的了解,我发现市面上关于 Kotlin 方面,比较深入的资料几乎是 0,所以我决定,将 Kotlin 各个方 ...

  4. java中使用kotlin_在Kotlin中使用libGDX

    java中使用kotlin 最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,并且一种语言对我来说很突出:Kotlin. ( https://kotlinlang.o ...

  5. java类无法调用值,Kotlin无法调用到Java中定义的interface类的问题记录

    问题产生原因概述 一个kotlin类,调用一个Java类中的一个方法.引发了下面这个错误. 因为我在kotlin中调用了了java代码中定义的一个接口,然后就报错一个IllegalAccessErro ...

  6. Java 程序员最爱 Kotlin?

    现在技术每天都在发展,开发框架和库的新版本层出不穷,支持的功能也越来越多.目前最流行的一个是编程语言Kotlin,另一个是JS库React Native.Kotlin是一种静态类型的开源编程语言,是A ...

  7. 2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发

    在进入新的十年之际,各行各业都在进行盘点与展望.SegmentFault 作为开发者社区与科技行业的垂直媒体,一直关注行业的发展与相关动态,近期已陆续为大家整理了各大平台.社区针对技术领域作出的预测与 ...

  8. kotlin与java混合开发_使用kotlin和Java混合开发Android项目爬坑记录

    使用kotlin和Java混合开发Android项目爬坑记录 不定期将开发过程中遇到的问题添加在此处,加深记忆. 主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-s ...

  9. 尝试Java,从入门到Kotlin(上)

    之前一直使用C#开发,最近由于眼馋Java生态环境,并借着工作服务化改造的契机,直接将新项目的开发都转到Java上去.积攒些Java开发经验,应该对.NET开发也会有所启发和益处. 从理论上说,Jav ...

  10. kotlin为什么比java编译慢_为什么Kotlin编译速度比Scala快? [关闭]

    虽然我认为这个问题不适合Stack Overflow,因为它倾向于主要产生基于意见的答案,但这里有一个尝试:你有两种不同的语言,特别是关于类型系统,以及两个完全独立的编译器实现 . 所以期望它们具有& ...

最新文章

  1. refineFace 笔记
  2. php根据键值去除数组中的某个元素_php删除数组中指定值的元素的几种方法
  3. python基本使用-10个易被忽视但应掌握的Python基本用法
  4. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质示例 | 证明 原序列实部 x_R(n) 的 傅里叶变换 是 原序列傅里叶变换 的 共轭对称序列 )
  5. Android开发:什么是IBinder
  6. Spark 1.4新特性概述
  7. 【maven】使用(阿里云 aliyun)镜像仓库
  8. hibernate的二级缓存
  9. 数据加密 - TDE透明数据加密原理
  10. c#中常用集合类和集合接口之接口系列【转】
  11. Eclipse JPBC library安装及测试
  12. SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)
  13. java清除运行窗口内容,Java实现软件运行时启动信息窗口的方法
  14. 第7节 简单抓包实验及帧结构分析——基于科来网络分析系统
  15. 「管理数学基础」1.4 矩阵理论:相似矩阵
  16. 保存网页为图片——滚动截取IE(WebBrowse)
  17. 银行放贷冲动不强:7折房贷利率料最早明年现身
  18. shell之awk命令详解
  19. 我对社交电商的了解与看法
  20. 智能运维案例系列 | 袋鼠云日志助力云南某金融机构日志平台建设,实现核心业务系统运维智能化...

热门文章

  1. WPF 模拟UI 键盘录入
  2. Ubuntu 16 安装JDK1.8
  3. 【转载】MySQL5.6.27 Release Note解读(innodb及复制模块)
  4. IPv4与IPv6数据报格式详解
  5. 双系统下修复grub
  6. 企业管理的实质和核心是人的管理
  7. 本周小结!(回溯算法系列三)
  8. 苹果macmac效率工具:Alfred
  9. 从“制造”到“智造”,南高齿携手锐捷打造“智能工厂”
  10. EOJ3536 求蛇形矩阵每一行的和---找规律