慌的一批, Kotlin 这么优雅的语言为什么不火呢

2020-07-13 17:10:17 +08:00
 iseki

真是,两年没写 Java 了,之前写了两礼拜 Java 没给我急死,手速远远跟不上脑子的速度。。。 但是看看社区,有一种不温不火的感觉呢,慌······

43925 次点击
所在节点    Kotlin
181 条回复
hantsy
2020-07-13 22:28:47 +08:00
@Mistwave 特别是 Java8 后,几个 Scala 特有的都在 Java 中有了,没欲望用 Scala 了。
sagaxu
2020-07-13 22:37:06 +08:00
@wysnylc 不是用协程重写提升了性能,是用异步把线程数降低了几个数量级,大大提升了性能,后来再用协程提升了可维护性。重构第二版的时候,就没协程什么事,netty 和 vertx 是久经考验的,而此时 Kotlin 协程几乎没有成功案例,甚至没有听说过有谁用过,当然没有考虑使用。之后逐步尝试观察一段时间之后,才全面使用,性能跟 future 差不多,只是为了写起来轻松一点。
hantsy
2020-07-13 22:42:56 +08:00
@sagaxu 个人感觉只是 Coroutines 写起来直白一点,对于传统的熟悉同步的开发人员容易理解 。性能嘛,没测试,也没过比较与 reactor 的原生的 Mono, Flux 有什么差别。从我眼里,还是 Mono,Flux 比较舒服。
hantsy
2020-07-13 22:44:57 +08:00
Spring Boot 现在通过 Starter 创建的项目,一开始就加入了 Kotlin Coroutines 依赖,Spring 内部只要是 Kotlin,Reactor 相关基本上全面支持 Coroutines 了。
Mistwave
2020-07-13 22:47:19 +08:00
@hantsy 想把 Scala 学透再去应用就太难了,这门语言夹杂了太多前沿东西。边学边用吧,走 FP 路线的看看 cats zio ;走 better java 路线的就 akka-http akka-stream play 搞起来;想快速上手就看看 lihaoyi 的项目和代码;大数据线路的就不赘述了。
能提升生产力固然好,开阔眼界也不赖嘛。
Scala 3 ( Dotty )已经在路上了,implicit 也被简化掉了,泛型这个东西,是得花点时间啃一下。
另外,那本 fpinscala 小红书太太太难了,推荐先看 scala with cats
yuenc
2020-07-13 22:47:35 +08:00
我前端,写 kotlin 跟写 ts 一样,爽
hyyou2010
2020-07-13 22:53:01 +08:00
我则经常把 kotlin 跟 ts 写混,晕
hantsy
2020-07-13 22:54:38 +08:00
@yuenc Kotlin 支持写前端啊,只是看一些介绍仅仅是 React 官方的包支持得不错,其它估计要自己转换了。
iseki
2020-07-13 23:00:17 +08:00
@gantleman 不是的,Java 、Kotlin 都是编译成 JVM 上的字节码文件,Kotlin 额外通过 LLVM 支持其他后端等等
@hantsy 这个问题见仁见智了,个人看来狂写 Callback 和人肉 CPS 不现实,常规的 Promise 等等也显得有点孱弱
Kotlin 前端现在能打的就一个 kotlin-react?之前有用过,不知道支持到什么程度,虽然是官方的项目
Scala 真的好难( x
lloovve
2020-07-13 23:08:26 +08:00
@kingslayer 还不一样
aureole999
2020-07-13 23:31:42 +08:00
我们现在后端新项目已经全用 kt+spring 了。挺好用的,就是 spring 要注意一点,kt 默认都是 final 的类,要用到 allopen 插件。有些持久化的 data 类要用 noarg 。其它都很爽啊,不需要这 stream 那 stream 的了。还有 non-null 类型,业务上的逻辑很清晰,不像 java 在这判断一下,那判断一下,还容易漏。
hantsy
2020-07-13 23:37:00 +08:00
@aureole999 如果是由 Spring Boot Starter 生成的,官方有插件解决这些 Spring 中的问题,不用关心,但 Jetbrains 文档中手动是你这么配置的。
aguesuka
2020-07-13 23:49:07 +08:00
@wysnylc 问号表达式从 jdk6 喊到 14 还没出来
secondwtq
2020-07-14 01:40:34 +08:00
我强调过 N 遍了,“火不火”和“好不好”完全是两个不相关的问题( https://yangjunhui.monster/t/636465#r_8459702 )。
倒不如说,强行把“火不火”和“好不好”关联起来会造成很多问题。
CosimoZi
2020-07-14 02:23:19 +08:00
学 scala 最好要有一点 pl 背景
qinfensky
2020-07-14 02:24:41 +08:00
Kotlin + Vert.x 舒坦
gantleman
2020-07-14 03:11:17 +08:00
@iseki Java 的流行是因为 jvm 的性能仅次于 C 。以及内存的多线程保护和回收策略,这样 java 不会出现内存崩溃。放弃现在的代码做迁移,仅仅因为语法更加流畅。这个成本任何公司和团队都不会做的。
dayeye2006199
2020-07-14 04:02:16 +08:00
主要的锅可能是你们公司用的 JDK 还是 8 。。。
chihiro2014
2020-07-14 04:22:25 +08:00
用 Java 就够了,kt 没啥前途可言啊,毕竟最后都是走 JVM 有啥区别。
而且 JDK9 之后,Java 大变。没必要以以前的眼光来看待了
chihiro2014
2020-07-14 04:24:46 +08:00
@iseki 说起协程,Go 里面的协程跟 Java 的单线程线程池没啥区别

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

https://yangjunhui.monster/t/689648

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

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

© 2021 V2EX