2022 年冬月, Java 后端工程师拒绝使用 kotlin 的技术原因有哪些?

2022-12-13 20:54:24 +08:00
 yazinnnn

除去一些非技术的原因(如:领导不让用,同事看不懂,学不会,没时间,不挣钱,对比 java 没优势等)

可能对比 java 没优势算是一个技术原因

有哪些技术原因呢? 比如

14904 次点击
所在节点    Java
145 条回复
jeesk
2022-12-13 21:02:52 +08:00
这种语言不适合团队,适合个人开发。 类似于 scala,lisp 的感觉。
tcfenix
2022-12-13 21:06:12 +08:00
要不反过来说....目前值得大家花大力气去推广去使用的 kotlin 有哪些立竿见影的优点?
zhuangzhuang1988
2022-12-13 21:08:20 +08:00
看不懂
太多的 dsl
最近在看 ktor ,简洁是简洁,各种 magic.
cmdOptionKana
2022-12-13 21:09:12 +08:00
kotlin 属于特性比较多的语言,学习有一定成本。
写 kotlin 也许比较爽,但阅读 kotlin 要消耗更多脑力,阅读 Java 很舒服。
Leviathann
2022-12-13 21:19:44 +08:00
其实主要就是看不懂,上 b 站看一些视频就知道一般路过 java 码农的代码能力有多烂,2022 年学习 stream 的基础用法都跟发现新大陆一样。

高阶函数,超出 map filter 的都不会,看一个基础的 reduce 要老半天甚至要用 for each 重写一遍才能懂在干嘛
还有就是不会 immutable 风格的代码,不让他 for each add 或者 put 构造一个集合就是要了他的命

跟别说让他们理解一个参数为某类型拓展函数的函数了 (type safe builder 基操)

你说的那些,他们甚至都不知道这回事

一个一般路过 spring 熟手和一个一般路过 react 熟手,我怀疑 react 熟手对编程语言的理解会比 spring 要高

hook 搞得那套闭包地狱理解不够 debug 都 bebug 不了

再加上 typescript 的基本类型体操能力,完全不是 springer 能比的
kwh
2022-12-13 21:22:17 +08:00
因为学习 kotlin 并不能带来任何的利益。
只会带来成本。

学 Dart 可以使用 flutter 写多端共用的前端。
学习 C++,比如 QT ,游戏开发,系统 API ,还有其他好处。
学习 JavaScript Vue ,可以写前端。

学习 C#,可以怼天怼低,无所不能,前端,后端,游戏,系统 API 。


而 学习 Java 的子集 kotlin 可以带来什么?
GTim
2022-12-13 21:31:08 +08:00
当我们以为自己需要一个更好的语言的时候,其实,更多的,是需要一个更人性化的工具,比如 Lombok
YVAN7123
2022-12-13 21:34:11 +08:00
java 都学不过来了 求求放我一条生路吧
knightdf
2022-12-13 21:37:24 +08:00
安卓用不就好了,为啥后端也要用?
orangie
2022-12-13 21:43:19 +08:00
kotlin 我完全喜欢的只有空安全,而其次的 list 重载方括号运算符等等更方便了但也有太明显的负面影响。让我全方面感觉更好的只有空安全这一个改进。
kran
2022-12-13 21:49:01 +08:00
何不先谈谈为何接受。
jeesk
2022-12-13 21:57:56 +08:00
代码是给别人看的, 不是耍酷的。 当我明白了这个道理后,google juice 的源代码历史使用了大量的设计模式,即使是 java 的代码都让很恶心。 太难受了。
WIN2333
2022-12-13 21:59:41 +08:00
@Leviathann 对对对,您说的对
learningman
2022-12-13 22:00:39 +08:00
@kwh
“学 Dart 可以使用 flutter 写多端共用的前端。”
那 Kotlin MultiPlatform 也能用 Jetpack Compose 写“多端共用的前端”啊。。。
wangfeng3769
2022-12-13 22:01:06 +08:00
买了本 kotlin 的书 一周 就入门了,java 的倒是太臃肿了,不想用 java
ruiyinjinqu
2022-12-13 22:01:45 +08:00
学习 sacla 还能搞搞大数据,写写 spark ,flink ,能有更大的提升
dreamlike
2022-12-13 22:08:44 +08:00
从工作角度来说 积重难返和 java 交互有点问题,在传统的 servlet 里面没有这么多适合 kt 的场景,有时候包含 kt 语法糖的代码,运行时抛错行数其实有点问题
从个人角度说 kt 爽到炸 搞 dsl 真心好用 我个人又用响应式库多配合 kt corotinue 很不错,ksp 也非常好用 还能凑合用用 compose
dcsuibian
2022-12-13 23:15:58 +08:00
可以学,但是没有必要。

接触过的编程语言越多,对新语言的兴趣就越少。C/C++、Java 、Python 、JavaScript/TypeScript ,累了,不想学了。
silentsky
2022-12-13 23:17:31 +08:00
换了个写法 有啥新意?
weiweiwitch
2022-12-13 23:33:15 +08:00
没有什么太复杂的原因。团队的技术惯性而已。后端天生求稳的特点,导致后端团队的惯性要更大。
假设团队当前正在做一个项目,有人给他们一套新技术的成熟解决方案,并且后续有强力的技术支持,让他们从开发到上线到后面的维护都没啥坑,他们转新技术的动力会非常的强。
相反,没有巨大的利益在前面诱导,不管是 Java 转 Kotlin 这种转换系数很低的,还是换一种排名相当靠前的语言,还是只是简单换个框架或组件。让他们改变技术的阻力都会很大。
想想有多少团队还在坚守 Java 8 ,甚至 7 和 6 。

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

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

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

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

© 2021 V2EX