kotlin 可以完美平替 Java 吗?

2024 年 3 月 20 日
 YugenFring

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

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

求解, 感谢

24110 次点击
所在节点    程序员
110 条回复
russ44
2024 年 3 月 20 日
前几天看到站里老哥发的 Kotlin 教程中文译版 /t/1023394 之后学习中
meeop
2024 年 3 月 20 日
理论上可以,实际上短期内不行

可以是因为 kotlin 可以直接调 java,可以和 java 可逆变换,所以肯定是能当 java 用的

不行是因为有学习成本,特别是其中的协程需要基础库支持,使用协程就不能直接用 java 的很多涉及多线程库了(几乎所有网络,数据类的库),java 又不是不能用,加上 lombok,mybatin 生成器之类的项目降低 java 开发成本,综合来讲用 kotlin 收益大于成本
fredweili
2024 年 3 月 20 日
kotlin 用 java 库没什么问题,kotlin 的高级语法多
TONYXUELI
2024 年 3 月 20 日
@cloud107202 是的,入手才知道扔无线朱老师都是这个方向
monkeyWie
2024 年 3 月 20 日
可以的,就是编译有点慢
28Sv0ngQfIE7Yloe
2024 年 3 月 20 日
竟然有人在说 Java 消亡是早晚的事情
lisongeee
2024 年 3 月 20 日
说一下看起来和 java 无关的问题,kotlin 团队现在主要工作应该是完善 multiplatform

kotlin multiplatform 对我真的非常有用,因为我的一个 Android 项目的某个功能 <https://github.com/gkd-kit/selector> 就是用 kotlin multiplatform 实现的

好处是代码可以直接编译为 JavaScript/Wasm ,这样用户在 浏览器/nodejs 就能直接在线使用这个功能

如果是以前,我得手动实现 JavaScript 端代码,手动维护一个功能的两套代码实现想想都麻烦
echo1937
2024 年 3 月 20 日
总有人说 Java 消亡是早晚的事情,这谁都知道啊,问题是多久,五年、十年、十五年?

三种情况,应对的措施完全不同。
h3ejkuXr64B1T2Uj
2024 年 3 月 20 日
之前在做一个谷歌云盘同步的功能,发现官方都没有提供 kotlin 的包
ohmycodeape
2024 年 3 月 20 日
个人偏见还是认为 kotlin 依旧是谷歌和甲骨文博弈下的特殊产物.
另外 ts 的发展势头看起来也一般了.
基于另一套平台之上的语法糖平台.总是有些局限性.
zed1018
2024 年 3 月 20 日
@YugenFring 对,后端开发。

我用 kotlin 主要两大需求,一个是空安全,一个是 kt std 带来的各种便利。
vlinx
2024 年 3 月 20 日
当然,完成可以
pdog18
2024 年 3 月 20 日
@weijancc 「必须写成 object 是误传」,可以直接在文件中已 top level 的方式存在,比 static ‘方便’多了
Helsing
2024 年 3 月 20 日
可以,开发 Android 比 Java 好用多了
编译速度和之前用 Java 没多大区别了
kenvix
2024 年 3 月 20 日
Kotlin 唯一的缺点就是由于语言自身的复杂性,编译开销比 Java 高很多,但是加配置就行。
除此外没有任何缺点
xingchenxf
2024 年 3 月 20 日
可以。
楼上说的编译器卡之类的问题,我都没遇到过,我猜测差不多的开发机应该都能正常编译。
语法上,基本上是集各家之大成了。 我用过的各种语言:C 、java 、js 、ts 、python 、dart 、lua ,kotlin 应该是最好用的了,体验上只有 ts 和 dart 能和 kotlin 打一打,但也还是不如 kotlin 。

唯一的缺点,就是 kotlin 有时候写起来语法糖太多,有的人写的代码太飘,不太容易看懂。 好在都是基于 jvm ,很容易看到源码,实在不行就编成 class 再反编译成 java ,总是能看懂的。
lmshl
2024 年 3 月 20 日
说实话平替 Java 有点过于低估 Kotlin 了
yongdaimi
2024 年 3 月 20 日
用了一段时间了,感觉如下:
1. 编译慢;
2. 语法糖多,编码确实更容易, 确实解决了 java 上的一些痛点;
3. 源码阅读困难,尤其在滥用语法糖和高级特性的情况下,感觉读起来好痛苦,对团队中水平参差不齐的程序员是个挑战;

小项目或许会用一用,大型项目不考虑
yule111222
2024 年 3 月 20 日
我爱 Kotlin~
支持 Kotlin~
vanishxiaoma
2024 年 3 月 20 日
正在使用 kotlin 开发新的后端项目。使用感受写着比 java 爽太多

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

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

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

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

© 2021 V2EX