Java会走向晦暗吗?Kotlin会取而代之吗
翻译: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会取而代之吗相关推荐
- Java和Python中类似Kotlin的生成器,续:附加参数
介绍 在今天的文章中,我们将继续上周的文章,内容涉及用Java和Python制作类似于Kotlin的构建器,扩展构建器API以采用一些可选参数来提高灵活性. 我们继续我们HTML示例,尝试添加标记属性 ...
- kotlin t class.java_尝试Java,从入门到Kotlin(下)
上篇已提(tu)到(cao)Java中的各种坑.习惯了C#的各种特性和语法糖后,再转到Java感觉比较别扭.最后本着反正Java也不是很熟悉,干脆再折腾折腾其他语言的破罐子破摔的心态,逛了一圈JVM语 ...
- java游戏代码_Java与Kotlin系列文章之性能问题详解
作者丨Jakub Anioła 译者丨姜雨生 策划丨田晓旭 随着对 Kotlin 越来越深入的了解,我发现市面上关于 Kotlin 方面,比较深入的资料几乎是 0,所以我决定,将 Kotlin 各个方 ...
- java中使用kotlin_在Kotlin中使用libGDX
java中使用kotlin 最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,并且一种语言对我来说很突出:Kotlin. ( https://kotlinlang.o ...
- java类无法调用值,Kotlin无法调用到Java中定义的interface类的问题记录
问题产生原因概述 一个kotlin类,调用一个Java类中的一个方法.引发了下面这个错误. 因为我在kotlin中调用了了java代码中定义的一个接口,然后就报错一个IllegalAccessErro ...
- Java 程序员最爱 Kotlin?
现在技术每天都在发展,开发框架和库的新版本层出不穷,支持的功能也越来越多.目前最流行的一个是编程语言Kotlin,另一个是JS库React Native.Kotlin是一种静态类型的开源编程语言,是A ...
- 2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发
在进入新的十年之际,各行各业都在进行盘点与展望.SegmentFault 作为开发者社区与科技行业的垂直媒体,一直关注行业的发展与相关动态,近期已陆续为大家整理了各大平台.社区针对技术领域作出的预测与 ...
- kotlin与java混合开发_使用kotlin和Java混合开发Android项目爬坑记录
使用kotlin和Java混合开发Android项目爬坑记录 不定期将开发过程中遇到的问题添加在此处,加深记忆. 主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-s ...
- 尝试Java,从入门到Kotlin(上)
之前一直使用C#开发,最近由于眼馋Java生态环境,并借着工作服务化改造的契机,直接将新项目的开发都转到Java上去.积攒些Java开发经验,应该对.NET开发也会有所启发和益处. 从理论上说,Jav ...
- kotlin为什么比java编译慢_为什么Kotlin编译速度比Scala快? [关闭]
虽然我认为这个问题不适合Stack Overflow,因为它倾向于主要产生基于意见的答案,但这里有一个尝试:你有两种不同的语言,特别是关于类型系统,以及两个完全独立的编译器实现 . 所以期望它们具有& ...
最新文章
- refineFace 笔记
- php根据键值去除数组中的某个元素_php删除数组中指定值的元素的几种方法
- python基本使用-10个易被忽视但应掌握的Python基本用法
- 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质示例 | 证明 原序列实部 x_R(n) 的 傅里叶变换 是 原序列傅里叶变换 的 共轭对称序列 )
- Android开发:什么是IBinder
- Spark 1.4新特性概述
- 【maven】使用(阿里云 aliyun)镜像仓库
- hibernate的二级缓存
- 数据加密 - TDE透明数据加密原理
- c#中常用集合类和集合接口之接口系列【转】
- Eclipse JPBC library安装及测试
- SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)
- java清除运行窗口内容,Java实现软件运行时启动信息窗口的方法
- 第7节 简单抓包实验及帧结构分析——基于科来网络分析系统
- 「管理数学基础」1.4 矩阵理论:相似矩阵
- 保存网页为图片——滚动截取IE(WebBrowse)
- 银行放贷冲动不强:7折房贷利率料最早明年现身
- shell之awk命令详解
- 我对社交电商的了解与看法
- 智能运维案例系列 | 袋鼠云日志助力云南某金融机构日志平台建设,实现核心业务系统运维智能化...