Java 后端有用 Kotlin 的吗?

2024-04-11 06:56:26 +08:00
 nnegier

Kotlin 目前有个很明显的优点,就是实现了协程(用户态线程),可以减少资源的开销

5419 次点击
所在节点    程序员
50 条回复
GiftedJarvis
2024-04-11 09:28:22 +08:00
用了四年了, 我感觉 kotlin 的优点是语法糖和 null 安全
wwalkingg
2024-04-11 09:28:27 +08:00
我公司 java 都全部转移 kotlin 了。就光是解决了 NPE ,就已经是无敌的理由了
Huelse
2024-04-11 09:34:02 +08:00
Kotlin 和 Scala 都有,主要是解决 NPE 问题,都跑在 JVM 上所以性能无差。
至于说感受不出区别的,大概是项目太小或者没有深入使用语言特性吧。
weiweiwitch
2024-04-11 09:47:03 +08:00
@kneo 嗯,我记错了。有一段时间没写后端了。
我们团队里面,各种原因,kotlin 的特性也没有用的很深。只是觉得写起来比较简短和自由。当然,kotlin 的一大缺点就是编译时间太长了。
NineFold
2024-04-11 09:56:22 +08:00
公司项目是用 Java 和 Kotlin 混用写,Kotlin 看起来是比较简洁,但也算不上什么,null safety 的机制确实不错,但 Kotlin 本身在新人学习成本和真正的程序性能考量上感觉帮助不大。
fkdog
2024-04-11 10:08:36 +08:00
kotlin 和 java 的现状就犹如 gradle 和 maven 。
发展这么多年也说实话估计也就这样的,有优势,但是没有替换必要。
当然总是付出沉默成本的人不愿接受现实来说 kotlin 的好话。
Mystery0
2024-04-11 10:24:37 +08:00
kotlin 的协程在后端领域全是 Spring 全家桶的情况下,只要不换 webflux ,协程就一点用处没有,完全用不起来
我现在自己的小项目用 kotlin+springboot 写的,想用协程也没办法,最后想要执行快还是暴力堆了线程加 Future 来实现
ByteCat
2024-04-11 10:28:41 +08:00
公司老项目我都改了 Java+Kotlin ,直接把代码生成器改成生成 Kotlin ,新项目直接全 Kotlin ,爽飞了~
zzzzzzZ
2024-04-11 10:36:54 +08:00
只聊性能纵向不如 GraalVM+JDK17 横向不如 go 整体都不如直接上手搞点架构,做点 infra

等死吧别指望 Kotlin 了
Belmode
2024-04-11 10:46:58 +08:00
写过玩具,没有上过生产用过
yooomu
2024-04-11 10:52:08 +08:00
在公司的一个小模块尝试过,用来实现 DSL ,感觉还不错
kenvix
2024-04-11 10:53:35 +08:00
@xwwsxp #4 虚拟线程 VT 不是协程,这是两回事
kenvix
2024-04-11 10:54:53 +08:00
kotlin 主要是写的爽,开发效率高,不容易写出错误。

性能和 Java 是一样的,而且协程的优势快被虚拟线程抹平了,此外协程也没有解决阻塞 IO 的问题,相反虚拟线程是真的解决了 IO 问题的
cheng6563
2024-04-11 10:56:48 +08:00
@kneo go 的是啥
dif
2024-04-11 11:40:56 +08:00
JVM 语言,只要一个 JAVA 就够了。学 kotlin 不如去学学 go,rust,ts,python 这些中的若干个。 安卓的可以尝试下 kotlin ,scala 不是写 spark 的没必要学,当然,我猜一定有人用 Play Framework
unco020511
2024-04-11 11:44:54 +08:00
有啊,很多啊.我做安卓和后端全是 kotlin
lmshl
2024-04-11 12:15:36 +08:00
最近一个后端项目:ktor + kotlinx + flow api + coroutine + context receivers + arrow.kt
JDK 21 开 Generational ZGC 和 Virtual Thread (作为 coroutine 的 blocking dispatcher )
我算啥成分?
lmshl
2024-04-11 12:19:02 +08:00
我是精通 Scala ,同时也熟悉且写过万把行 Rust ,所以换到 Kotlin 对我来说算是能力上封印了。
至于论坛里没写过几行 coroutine 的开发来说,对鞋城和虚拟县城的理解不一定强于前端仔( async/await ),现在谈 VT 取代 coroutine 有点言之过早
Belmode
2024-04-11 13:11:47 +08:00
@street000 #1 gradle 有什么问题吗?
coderpwh
2024-04-11 13:43:28 +08:00
@street000 gradle 咋说也比 node 好吧

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

https://yangjunhui.monster/t/1031480

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

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

© 2021 V2EX