真是,两年没写 Java 了,之前写了两礼拜 Java 没给我急死,手速远远跟不上脑子的速度。。。 但是看看社区,有一种不温不火的感觉呢,慌······
真是,两年没写 Java 了,之前写了两礼拜 Java 没给我急死,手速远远跟不上脑子的速度。。。 但是看看社区,有一种不温不火的感觉呢,慌······
|
sagaxuJul 13, 2020 via Android
102
@wysnylc 不是用协程重写提升了性能,是用异步把线程数降低了几个数量级,大大提升了性能,后来再用协程提升了可维护性。重构第二版的时候,就没协程什么事,netty 和 vertx 是久经考验的,而此时 Kotlin 协程几乎没有成功案例,甚至没有听说过有谁用过,当然没有考虑使用。之后逐步尝试观察一段时间之后,才全面使用,性能跟 future 差不多,只是为了写起来轻松一点。
|
|
hantsyJul 13, 2020
103
@sagaxu 个人感觉只是 Coroutines 写起来直白一点,对于传统的熟悉同步的开发人员容易理解 。性能嘛,没测试,也没过比较与 reactor 的原生的 Mono, Flux 有什么差别。从我眼里,还是 Mono,Flux 比较舒服。
|
|
hantsyJul 13, 2020
104
Spring Boot 现在通过 Starter 创建的项目,一开始就加入了 Kotlin Coroutines 依赖,Spring 内部只要是 Kotlin,Reactor 相关基本上全面支持 Coroutines 了。
|
|
105
@hantsy 想把 Scala 学透再去应用就太难了,这门语言夹杂了太多前沿东西。边学边用吧,走 FP 路线的看看 cats zio ;走 better java 路线的就 akka-http akka-stream play 搞起来;想快速上手就看看 lihaoyi 的项目和代码;大数据线路的就不赘述了。
能提升生产力固然好,开阔眼界也不赖嘛。 Scala 3 ( Dotty )已经在路上了,implicit 也被简化掉了,泛型这个东西,是得花点时间啃一下。 另外,那本 fpinscala 小红书太太太难了,推荐先看 scala with cats |
|
yuencJul 13, 2020
106
我前端,写 kotlin 跟写 ts 一样,爽
|
|
hyyou2010Jul 13, 2020
107
我则经常把 kotlin 跟 ts 写混,晕
|
|
109
|
|
lloovveJul 13, 2020 via iPhone
110
@kingslayer 还不一样
|
|
aureole999Jul 13, 2020
111
我们现在后端新项目已经全用 kt+spring 了。挺好用的,就是 spring 要注意一点,kt 默认都是 final 的类,要用到 allopen 插件。有些持久化的 data 类要用 noarg 。其它都很爽啊,不需要这 stream 那 stream 的了。还有 non-null 类型,业务上的逻辑很清晰,不像 java 在这判断一下,那判断一下,还容易漏。
|
|
hantsyJul 13, 2020
112
@aureole999 如果是由 Spring Boot Starter 生成的,官方有插件解决这些 Spring 中的问题,不用关心,但 Jetbrains 文档中手动是你这么配置的。
|
|
secondwtqJul 14, 2020
114
我强调过 N 遍了,“火不火”和“好不好”完全是两个不相关的问题( https://www.v2ex.com/t/636465#r_8459702 )。
倒不如说,强行把“火不火”和“好不好”关联起来会造成很多问题。 |
|
CosimoZiJul 14, 2020
115
学 scala 最好要有一点 pl 背景
|
|
qinfenskyJul 14, 2020
116
Kotlin + Vert.x 舒坦
|
|
gantlemanJul 14, 2020
117
@iseki Java 的流行是因为 jvm 的性能仅次于 C 。以及内存的多线程保护和回收策略,这样 java 不会出现内存崩溃。放弃现在的代码做迁移,仅仅因为语法更加流畅。这个成本任何公司和团队都不会做的。
|
|
dayeye2006199Jul 14, 2020
118
主要的锅可能是你们公司用的 JDK 还是 8 。。。
|
|
chihiro2014Jul 14, 2020
119
用 Java 就够了,kt 没啥前途可言啊,毕竟最后都是走 JVM 有啥区别。
而且 JDK9 之后,Java 大变。没必要以以前的眼光来看待了 |
|
chihiro2014Jul 14, 2020
120
@iseki 说起协程,Go 里面的协程跟 Java 的单线程线程池没啥区别
|
|
cs419Jul 14, 2020
121
@hantsy
刚学 scala 的 implicit 很别扭, 有种莫名其妙的感觉 后来想通了 可以看成 java 中的 int long 的自动装箱拆箱 这样一对比 就感觉合理多了 协变 逆变 让人晕乎乎的 这东西 java kotlin scala 都有 泛型还是别强求深入 能简单调库就成 map fold 啥的 会用不难吧 真到你重构框架 做抽象封装的时候自然就能整明白了 |
|
122
优雅有个卵用
|
|
lblblongJul 14, 2020 via Android
123
kotlin 是真的好,个人最喜欢就是 ts 和 kt
|
|
lblblongJul 14, 2020 via Android
124
kotlin 确实好,个人最喜欢的就是 ts 和 kt
|
|
125
Haskell / Scheme: 你说啥?优雅?为什么不火?
|
|
jorneyrJul 14, 2020
126
写小的程序是很优雅,但是对于中大型项目来说,便于项目管理才是更关键的,Java 无疑可以做到相对平衡。
技巧在项目管理中是很不受人喜欢的。 |
|
127
@hantsy 可以.then 一路写到底的场景,coroutine 的确优势不大,但这种简单逻辑只有 demo 里有。实际逻辑可能是
for(){ a=func1() for(a...){ b=func4(a) if(b) func2(b) else func3(a) } } func 都是 IO 型的,future 方案需要自行保存和恢复 context,麻烦的可不是一点点了,中途抛 exception,调用栈能不能跟同步阻塞写法一样直观呢? |
|
sunzirenJul 14, 2020
129
优雅有个卵用
|
|
BigDogWangJul 14, 2020
130
问个问题,如果 kt 里同时要判两个变量的 null,是不是要嵌套 let ?
|
|
vusgnixJul 14, 2020
131
各位用 kotlin 的,Checked Exception 你们是怎么解决的
|
|
nicevarJul 14, 2020
133
我自己的几个项目几乎全用 Kotlin 写的,公司的项目用 Java,说实话 Kotlin 除了那点语法糖之外,并不比 Java 强多少,我都觉得论优雅还不及 Java,而且现在最近几年出来的语言都有一些通病,就是小版本的升级都有可能造成之前的代码编译不过去,比如 Kotlin 升级到 1.3.72 ,好好的项目一堆错误,这多多少少会影响使用者的心情,虽然 JetBrains 很强,但是 Kotlin 估计随着 Android 的死去也没多大风浪了
|
|
no1xsyzyJul 14, 2020
134
@secondwtq #114 同意啊
不然你要什么语法,Racket 都可以给你做出来。而且自带 First-class continuation,自己动手实现个 Coroutine 也就是分分钟的事。用了 ChezScheme,编译效率和编译结果的执行效率也是非常高的。 |
|
wupherJul 14, 2020
135
因为做技术决策的人不是你啊。
|
|
sagaxuJul 14, 2020 via Android
136
|
|
kkursJul 14, 2020
137
kotlin 已经是 jvm 上除 Java 外占有率最高的语言了,这还不算火的话 scala 和 Clojure 都不用玩了
|
|
bage2020Jul 14, 2020
138
KOTLIN ke du xin 太差
|
|
wee911Jul 14, 2020
139
写的这么好怎么会火呢, 越垃圾的越火
|
|
takemeawayJul 14, 2020
140
金锄头,银锄头,铜锄头,铁锄头,都是锄头。
|
|
PhpBestRubbishJul 14, 2020
141
优雅有什么用
C#那么好用,有几家公司用? |
|
KuroNekoFanJul 14, 2020
144
有特性不是充分必要条件,人想不想用才是
|
|
janxinJul 14, 2020
145
kotlin 不火是有原因的,因为没有培训班
|
|
sharpyJul 14, 2020
146
要说这些新语言的,我看好 Rust 的发展,在项目里也用上了,写起来真是神清气爽
|
|
ccoJul 14, 2020
147
以后发展几十年,没准就天下大同了。一门 Java 足以研究半辈子了。后半本子还要研究送外卖的路线。
|
|
chanchanJul 14, 2020
148
优雅的语言多了取了,轮不到 kotlin
|
|
azhangbingJul 14, 2020
149
kt 大多数只是写法优雅而已,语法糖确实挺爽的,但没有根本性的变化(不要说 kt 的协程,em....不是真正的协程) ,不像是 flutter 有革命性的变化的
|
|
zlqlhchJul 14, 2020
150
目前主要是写 Android 的用 Kotlin,而且段时间内并不能带来明显的收益
|
|
CoderGeekJul 14, 2020
151
flutter 够用 社区不给力 需要文化推广
|
|
GMJul 14, 2020
152
个人感觉语法糖太多了。
|
|
153
@wysnylc 是指 Kotlin 里的 ?. ?: 操作吗? Java 里确实没有对标的东西是我万万没想到的…连 js 里都有了…别跟我说 Optional
|
|
glovebxJul 14, 2020
156
Kotlin 谁用谁知道,爽的不得了
|
|
hantsyJul 14, 2020
157
@bage2020 可读性我感觉和习惯有很大关系,习惯就好了,开始迁移到 Java 8 API 的时候,Labmda,Method Reference 都是不习惯的。Kotlin 也还好,与 Java 兼容性很好,完全开始可以以 Class 为中心来写。
|
|
xuewuchenJul 14, 2020
158
JAVA 的代码风格不适合我,我比较喜欢 python 这中类型的代码风格或者是 pascal 这种风格
|
|
xcstreamJul 14, 2020
160
要和 c 语言长得像才容易上手
|
|
winglight2016Jul 14, 2020
161
@wwlzz #79 这一点我倒是可以理解:很多开源项目的积极贡献者都是从 M¥垄断的年代过来的,已经习惯了看到 M¥
就反对,根本不会去碰微软系的产品——那个年代的微软产品真的是铁桶一般,现在大约只是换成木桶的程度。 |
|
lengyihanJul 14, 2020 via Android
162
可参考 python 还是八十年代的语言呢,这几年才火。
|
|
whyrookieJul 14, 2020
163
Android, 主力使用 kotlin 开发
|
|
taoprogramerJul 14, 2020
164
工作主力用 java,平时写工具和刷题用 kotlin,真的香。
|
|
zoruiJul 14, 2020
165
同问 Clojure 这么优雅的语言为什么不火呢
|
|
jin7Jul 14, 2020
166
没觉得他哪里优雅了
java 新版本语法糖也越来越多 |
|
300Jul 14, 2020 via Android
167
@BigDogWang 我们是单独写了 N 个方法,判断 N 个变量同时不为空。。。
|
|
shijingshijingJul 14, 2020
169
C#默默不语
|
|
tctc4869Jul 14, 2020
172
@iseki 初学者学 Kotlin,有些 Kotlin 特性不了解,大部分写 java 代码开发,或者说是用 java 的组件,比如 java 那边的集合和 map 等。这些合适么?
|
|
leon0318Jul 14, 2020 via iPhone
173
相比 groovy 呢?
|
|
crclzJul 15, 2020
174
async/await+TAP 是 c#的,Linq 是 C#的,ReactiveX 是 c#的,并且和 Linq 完美集成。c#为啥不火呢?
|
|
175
@tctc4869 其实那些东西底层就是 Java 的那套啊…kotlin 对 collection 的功能也都大多是扩展函数实现的,无影响基本上(反射时需要小心一点
|
|
KentYJul 16, 2020
177
我们(主要是后端)新的服务, 项目一多半都用 kotlin + springboot 了.
个别的有用 quarkus 的. |
|
Kamiyu0087Jul 17, 2020
178
个人体会,Kotlin 挺好的,
不过有一点不如 Java 的地方是 try with resource Java 可以 try ( InputStream input = ...; OutputStream output = ...; ) { // logic } catch (IOException e) { } Kotlin 只能单个对象使用 use val input: InputStream = ... input.use { // logic } 这个时候还有其他 Closeable 对象要一起用的话就比较尴尬了 不知道有没有办法解决? |
|
179
@Kamiyu0087 官方似乎没有?自己造一个吧( x
|
|
aguesukaSep 28, 2020
180
|
|
CabanaJul 5, 2021 via iPhone
181
@azhangbing 请问什么才是真正的协程🤪
|