kotlin 可以完美平替 Java 吗?

2024-03-20 09:00:03 +08:00
 YugenFring

如题, 说是可以完美兼容, 不知道有没有实际用过的大哥.

另外, spring 那一套是否可以完全用 kotlin 开发, 如果有一些依赖只有 java 版本呢?

求解, 感谢

20533 次点击
所在节点    程序员
110 条回复
werls
2024-03-20 09:05:36 +08:00
kotlin 就是 Java 的另一种写法 可以直接使用 Java 库,最后执行的时候都会被编译为 Java.class 执行,类似 js 和 ts 的关系
chendy
2024-03-20 09:07:14 +08:00
多年前( 2017-18 )尝试过
优点挺多,比如 data ,比如不区分基本类型和包装类型,比如 null safe ,巴拉巴拉
缺点也有,最明显的就是慢,一样的机器一样的 ide ,java 就顺滑很多,kt 就卡卡的(不知道现在咋样了
另外就是一些思路要转变,比如 null safe ,比如不可变集合

总体来说挺好玩的,但是公司项目除非团队水平够不考虑
weijancc
2024-03-20 09:11:31 +08:00
不太行, 以前试过 kotlin, 在开发期间比较占资源, 当时机器一般, 挺卡的. 另外就是不能直接使用 static, 必须写成 object, 挺别扭; 比较爽的是有 optional 操作符?. , 有效避免空指针.
zhanlanhuizhang
2024-03-20 09:14:57 +08:00
完美支持。
Melanthius
2024-03-20 09:15:04 +08:00
兼容性没有问题,kotlin 语法糖很香,代码可以写的很飘。但是现在有 AI 补全这种东西,Java 这种死板好读的代码反而成为优势。
iamppz
2024-03-20 09:17:26 +08:00
Kotlin 编译很慢,正在迁移回 Java
zed1018
2024-03-20 09:18:31 +08:00
我们 11 个服务里。只有 3 个 java ,1 个 nodejs 。剩下的全是 kotlin 。
wetalk
2024-03-20 09:20:43 +08:00
什么 kt 、groovy 、scala 之类的,只要还跑在 Jvm 上,最多在某些领域存在一定优势,完美平替 Java 那是不可能的
Akitora
2024-03-20 09:23:06 +08:00
和 spring 的兼容没问题,最实打实的好处大概就是 null-safety 以及 orm 框架比 java 的更好用,其他语法糖倒是个人感觉可有可无,最大的问题就是开发的时候 IDE 确实比 java 卡得多,不知道 k2 compiler 转正之后可否有改善
ychost
2024-03-20 09:24:36 +08:00
@chendy 现在很丝滑了,IDEA 都用 kotlin 写了
ychost
2024-03-20 09:26:34 +08:00
我的 Java + Kotlin + Groovy 混编的服务端项目,兼容性没问题开发效率高很多,IDEA 现在也很丝滑了( M2 的 MBP ),需要注意的就是千万别把 Kotlin 当 Java 写,否则很难受
YugenFring
2024-03-20 09:27:54 +08:00
@chendy
@weijancc
@iamppz
@Akitora
4 个大哥都觉得 kotlin 比 java 用起来, ide 或者编译等方面比较卡.
gongxuanzhang
2024-03-20 09:28:39 +08:00
何谈平替, 简直是高配
除了编译慢没缺点,用了 kotlin 就别用 maven 了,换成 gradle
YugenFring
2024-03-20 09:28:41 +08:00
@wetalk 如何理解呢? 因为说 kotlin 是完美兼容的
qinxi
2024-03-20 09:29:14 +08:00
可以, 我们现在没有 java 代码了, 全部转换到纯 kotlin
qq135449773
2024-03-20 09:30:48 +08:00
Java 消亡是早晚的事情,如果一定要投出来一个 jvm based 的语言能活到未来,我一定只会投 kotlin 。

并且 kotlin 也不止 jvm ,他也有 kotlin native 之类的大杀器,只是现在还不是那么成气候。。
YugenFring
2024-03-20 09:31:21 +08:00
@ychost mac 上的 ide 用着相对于 win 确实平滑很多, 主要不知道 win 下是什么体验
YugenFring
2024-03-20 09:32:39 +08:00
@Melanthius crud 还可以, java 毕竟训练数据太多了
YugenFring
2024-03-20 09:33:53 +08:00
@qinxi
@zed1018
两位大哥都是后端开发吗
Narcissu5
2024-03-20 09:34:07 +08:00
kotlin 在后端的流行度还是不太够,而且 java 21 之后特别是有了虚拟线程之后 kotlin 的优势不太明显了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1025262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX