Kotlin 相比 Java 有什么优势呢

2019-05-06 11:22:17 +08:00
 noble4cc

感觉现在 Kotlin 势头不如以前了

12245 次点击
所在节点    Java
56 条回复
dnL
2019-05-06 15:19:49 +08:00
没有用过 kotlin 的人就不要在这评论了,说什么第三方库少确定不是为了黑而黑?用 kotlin 不允许你用 Java 库了?
sty
2019-05-06 15:30:29 +08:00
我已经在 spring boot + kotlin 了,简单业务,状况良好
Febers
2019-05-06 15:34:50 +08:00
@kimiler ……你理解错了吧,应该去看看为什么 flutter 选择 dart,是因为 jit 和 aot 以及热重载,而 kotlin 是 jvm 语言,也就是说从一开始 dart 和 kotlin 就不是竞争关系。java 官司跟 kotlin 又有什么关系?不知道 open jdk 吗,而且官司是因为 google 确实原封不动抄了 oracle 的代码实现。况且 flutter 目前来说还是属于 ui 框架,绕不来原生开发,这两者无法直接比较
shihty5
2019-05-06 15:57:57 +08:00
我们是 Fintech 公司,已经全线在服务器端使用 spring boot + kotlin 了
好用的语法糖,简介的代码,就是有时候写太爽了打日志比较少。
sagaxu
2019-05-06 16:09:28 +08:00
我从 2017 年开始引入 Kotlin 到生产环境,两年里将所有后端 Java 代码用 Kotlin 重构 /写了一遍。

总结下来就俩字,真香。

大量语法糖,少写很多很多代码,比用了 lambda 之后的 Java 还要简洁许多。

Java 能用的库,Koltin 都能用,包括 Spring 家族等所有后端的框架和库,所以不存在生态是不是繁荣的问题。

Kotlin 1.3 开始有稳定版的协程,创建 1000 万个协程也很轻松,真的很香。
cpdyj0
2019-05-06 16:18:33 +08:00
kotlin 受 Java 限制太多了
mamahaha
2019-05-06 16:20:26 +08:00
以我的理解,会 java 不就相当于会 Koltin 吗?想用啥就用啥有啥好纠结的?(纯个人理解,我这两个都不会)
yizmaoaa
2019-05-06 16:22:23 +08:00
有啥大不容前的......以 kotlin 对 java 的兼容性.........

所以我们就是将 kotlin 当做是 jvm 上的一个库而已......

kotlin  目前适用的地方?

首先当然是随着这两年 reactor 的发展.........

只要你写过异步的东西,你就知道 callback 地狱了.......

用 rxjava  或者   reactor  也没有那么舒服的....

写 vertx 的很大一群体都在用 kotlin 了...https://vertx.io/docs/vertx-lang-kotlin-coroutines/kotlin/

用协成写岂不是美滋滋.......

另外在 spring 的  webflux 中 目前应该也可以使用协成了....

https://spring.io/blog/2019/04/12/going-reactive-with-spring-coroutines-and-kotlin-flow
Febers
2019-05-06 16:28:21 +08:00
@cpdyj0 说实话,kotlin 最开始作为一门 jvm 语言,肯定与 java 脱不开关系,而且 java 无数的成熟高效的类库,直接支持不更好吗?但是说 kotlin 受 java 限制,那是不关注 kotlin 的发展,kotlin/native 和 kotlin/js 逐步推进中,Android 开发者已经可以像写 c 一样写 kotlin native 让 java 层调用,kotlin 的协程概念更加像 javascript。
ukyoo
2019-05-06 16:45:42 +08:00
语法糖而已,上手很简单
kimiler
2019-05-06 17:03:29 +08:00
@Febers 😰是理解错了,不好意思
tppppp
2019-05-06 17:44:40 +08:00
语法糖什么的都不重要,写过 Java 再转 kotlin 就知道空指针的处理,kotlin 太尼玛方便了,而且编译器很好的提醒 NPE,减少愚蠢 BUG 率,虽然还是会出现,其实大多都出现在调用 java 类库上,毕竟面向对象开发都是先定义类&属性,属性就会定义是否为 NULL,然后在业务处理时候编译器会提示处理,真心少了很多这方面问题,而且写起来舒服,不用再 if 来 if 去。感觉唯一缺点就是编译慢(毕竟做了那么多糖果给你吃),还有就是写和传统 java 框架兼容性稍微差一点,虽然 mvc 上有强大的 spring 套餐,但是在 orm 上例如 mybatis 用起来就会层出不穷的奇异现象出现,以上仅个人线上实践后的观点。
fan123199
2019-05-06 18:12:57 +08:00
代码少,就是正义。
luozic
2019-05-06 18:40:09 +08:00
同样的组织 同样的能力 代码越少 bug 越少,并且 对于已定能力的组织,能够处理的代码的复杂度的能力是有限的,大部分遗留系统是不可能通过重构就活。
murmur
2019-05-06 19:13:01 +08:00
@kimiler 别吹了,如果是因为语言官司的话选 c#也轮不到 dart
bduqw
2019-05-06 19:29:12 +08:00
写爬虫稳的一批
gemini767
2019-05-06 20:22:32 +08:00
@yuankui 这和 kotlin 有什么关系,这不是 vm 的功劳么?
ysihaoy
2019-05-06 20:28:27 +08:00
@shihty5 Airwallex?
lazywen
2019-05-06 20:43:18 +08:00
我司就是用 kotlin + spring 全家桶做了日活百万的复杂应用,踩了不少 kotlin 的坑,但远赶不上 spring 的坑多,用惯了再也不想写 Java 了😋
golang83
2019-05-06 21:12:04 +08:00
我个人的浅见就是,如果 java 不属于 oracle 这种公司,那么 java 也是一个优秀的语言,但和 oracle 有关系的,都是垃圾!

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

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

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

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

© 2021 V2EX