kotlin 可以完美平替 Java 吗?

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

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

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

求解, 感谢

20571 次点击
所在节点    程序员
110 条回复
YugenFring
2024-03-20 09:36:43 +08:00
@qq135449773
java 的势头感觉确实在下降, 只是百足之虫, 想要死掉还是需要很久很久的.

不喜欢用 java 主要就是语言确实不够现代, 就没有兴趣, 虽然想干的都能干, 所以一直想试试 kotlin
liaopen123
2024-03-20 09:37:38 +08:00
兼容没啥问题,kotlin 写的可太爽了。
YugenFring
2024-03-20 09:38:21 +08:00
@Narcissu5 确实是事实, 主要换到 jdk21, 对于现在的 jdk8 项目, 感觉也算是重构了. 排除团队技术栈的问题, 新项目如果能用 kotlin, 是否会优先选择
kneo
2024-03-20 09:39:08 +08:00
@qq135449773 Java 也在进化,特性越来越多,Kotlin 反而越活越尴尬。
Java 必死 Kotlin 是未来这种话不知道怎么想出来的。哪怕你拆开发也没放在一起这么可笑。
LPJD
2024-03-20 09:40:07 +08:00
不能。Java 的优势在于生态圈,Ctrl+C -> Ctrl + V 。使用 Java 开发十有八九是考虑了开发成本问题。个人开发随意
kneo
2024-03-20 09:40:50 +08:00
@YugenFring 非安卓项目不考虑 Kotlin 。放五年前还可以尝试。现在没必要。
YugenFring
2024-03-20 09:41:32 +08:00
@LPJD 不考虑这些, 主要就是自己写的时候爽点, 如果公司嗯要求 java 也可以切换过去
tinyfry
2024-03-20 09:41:42 +08:00
1. 新人容易滥用 kotlion 的特性。
2. 函数式编程很爽。
3. 项目如果大的话,编译非常慢。
4. 在 debug 的时候一些问题可能调试困难。
5. idea 完美支持。你把 java 复制到 kotlin 中,它都会询问要不要自动帮你转。。
结论,适合技术水平稍微好一些的团队使用,或者安卓团队。我持中性看法。
xsi640
2024-03-20 09:43:59 +08:00
用 kotlin 可以大幅提高开发效率,只是有一定学习成本,关键怎么选看楼主。
qq135449773
2024-03-20 09:46:12 +08:00
@kneo #24 啥时候 lombok 死了再跟我讲这种话也不迟。
unco020511
2024-03-20 09:51:49 +08:00
完全可以,不管是 android 还是后台开发,都可以无缝替换
nicholasxuu
2024-03-20 09:52:25 +08:00
可以,甚至 ide 可以完美直接转换语言。几乎可以理解为繁体和简体中文的区别。
MoonLin
2024-03-20 09:53:34 +08:00
kotlin 对比 java 有个完全无法替代的作用:只要你能引入 kotlin 技术栈,就可以用新的标准库新的语法糖,至于 jdk 是 6 还是 8 还是 11 都无所谓,反正最后会脱糖,这给一些不能升级 jdk (我非常认同)的老项目维护和老 leader 开新项目还用 java8 一个非常舒适的开发环境。理论上说服 leader 引入 kotlin 要比升级 jdk 容易一些。
cloud107202
2024-03-20 09:56:07 +08:00
前 kotlin 重度用户。近两年综合 Java 目前的发展趋势与方向,我是认为在 Android 开发之外的服务端编程里,完全没有需要使用 kotlin 的场景
kneo
2024-03-20 09:57:44 +08:00
@qq135449773 啥时候 lombok 死了再说 Java 死不死吧。说不定 lombok 都比 kotlin 活得久。
一个东西的生命力不是由你个人的喜好来决定的。因为你不喜欢 lombok 就说 Java 要完蛋,与其说是评论,不如说是诅咒。
YugenFring
2024-03-20 10:00:47 +08:00
@xsi640 学习曲线感觉和 swift 应该差不多
YugenFring
2024-03-20 10:01:29 +08:00
@cloud107202 请问这里说的趋势是 jdk 的新特性这些吗?
geekjoehome
2024-03-20 10:02:31 +08:00
以前怎么样不清楚,目前看平替 java 应该完全没问题。

我目前每天都在 Jetbrains Academy 上学习 Kotlin Core 课程,用了 kotlin 后就完全不想再回去写 Java 、Javascript 、Typescript 了。Kotlin 除了 Syntatic Sugar 外还有很多非常不错的现代化设计理念,感觉该语言的设计是集市面上众多语言的优点于一体(设计前应该是考察过了很多语言的),又利用了 jvm 丰富的库和跨平台特性。语法精炼且极富表达力( concise and expressive )

根据 kotlin 课程的介绍,该语言设计初衷就是为了改进背负有沉重历史包袱的 java 语言,其设计的第一原则就是保证与 java 的互操作性与兼容性。所以楼主担忧的“如果有一些依赖只有 java 版本呢?” 完全不是问题,kotlin 与 java 互操作 100%兼容。

最新的编译器感觉编译速度得到了显著提升,也没有感觉到很卡( 2018 年买的 AMD 2400G 32G 内存)。相反,我感觉 kotlin 写起来十分丝滑和清爽。

可能由于 kotlin 比较新,迭代比较快,目前市面上也没啥好的第三方学习资料。相比我看过的一些书籍,目前看 Jetbrains Academy 的学习课程是我见过的最棒的(应该不会有谁比官方更懂 Kotlin 了吧)!官网的各项文档也做得相当 nice 。
kneo
2024-03-20 10:03:09 +08:00
@MoonLin 朋友,你说的 kotlin 优点只是基于现状,也许下一次 kotlin 升级就不支持 java 6 了。这都是使用第三方技术的风险。
那些还在使用旧 jdk 的老项目,根据我的经验,他们不能升级的原因是主要不想动旧代码。咱们要是有使用 kotlin 的魄力也不至于还在用 6 。
shyangs
2024-03-20 10:14:39 +08:00
@qq135449773
@kneo


Kotlin 自己的官方教學文件一直出現 Java / Java classes. 根本就預設學習者已經會 Java 才來學 Kotlin. 這種情況 Java 怎麼可能比 Kotlin 先死. ( 把 Kotlin 當第一門語言的初學者被迫去學 Java )


比如 https://kotlinlang.org/docs/arrays.html#primitive-type-arrays 直接出現了 Kotlin Primitive-type array 相當於 Java 的什麼陣列.

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

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

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

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

© 2021 V2EX