9

为什么很少听说有人用 kotlin 开发后端

 3 years ago
source link: https://www.v2ex.com/t/781828
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

为什么很少听说有人用 kotlin 开发后端

  szuwl · 10 小时 49 分钟前 · 4806 次点击
相印的 kotlin 后端的招聘岗位也很少,很疑惑,这么好使的后端语言,为什么一直处于较冷的状态。
76 条回复    2021-06-07 21:39:17 +08:00

Kasumi20

Kasumi20   10 小时 42 分钟前

太灵活了,只适合 geek 玩

上班摸鱼还是老老实实写 Java 的 getter setter 。

dolphintwo

dolphintwo   10 小时 42 分钟前   ❤️ 12

因为培训班只教 java

szq8014

szq8014   10 小时 38 分钟前

还是取决于公司的业务类型,比如我所在的公司有一些甲方验收的时候明确要求是 Java 。
有一些自己的产品就可以随便用,不过为了统一我也不打算推 kotlin 了,虽然用它写业务真的很爽
let apply map 爽到飞起

kidult

kidult   10 小时 36 分钟前   ❤️ 1

JAVA:一万个人心中只有那个哈姆雷特
Kotlin:一万个人心中有一万个哈姆雷特

ufan0

ufan0   10 小时 32 分钟前 via Android

维稳大于天,大家觉得老东西靠谱,除非哪天 Java 不让用了或者彻底某个方面被时代抛弃了。

话说回来,如果你是部门架构师级别的,是可以自己选择其他语言的。

wupher

wupher   10 小时 30 分钟前

用没问题,招人的时候就有点麻烦。

我的项目后端使用 Kotlin 开发,新人从学习能上手做事,要接近 1 个月吧。

qwerthhusn

qwerthhusn   10 小时 27 分钟前

用了 KT 感觉 Java 就是一坨屎。但是公司项目肯定还是用 Java 啊,不是所有人愿意花精力学 kt 的。

zoharSoul

zoharSoul   10 小时 26 分钟前

暂时缺少大公司零头宣传.

wengych

wengych   10 小时 25 分钟前 via iPhone

后端能用 java11,以前安卓只能用 1.6

levelworm

levelworm   10 小时 22 分钟前 via Android

看了下语法 return on when 有点骚啊

zhgg0

zhgg0   10 小时 20 分钟前

@wupher 如果会 java,一天就可以了吧?

stimw

stimw   10 小时 19 分钟前

大部分从 java8 换到 11 都不想换,还让他们换个语言...

uglyer

uglyer   10 小时 13 分钟前   ❤️ 1

17 年的项目尝试过,除了对象序列化遇到一些坑之外其他方面都挺好的,能极大的提高效率。
对于团队成员,kotlin 不熟悉的语法,先用 java 写 用 idea 提供自动转换的工具 翻译为 kotlin,基本上一周左右都能熟悉了。

jarrodquan

jarrodquan   10 小时 8 分钟前

我现在在用 Gradle 构建基于 Kotlin 的 JavaFX 项目还有 Spring Boot 项目。
后来因为要完全离线开发,把 Gradle 换回了 Maven 。
Kotlin 写起来很舒服,省略标点符号,更高级的扩展 API,免去了 Getter/Setter 直接赋值取值(写 JavaFX 的时候贼爽)。
后端 Spring Boot 这种项目,最明显的感受就是更便捷的集合操作 API,还有协程。

Leviathann

Leviathann   10 小时 0 分钟前 via iPhone

@zhgg0 kotlin 的 class 相关语法比 Java 复杂不少
易上手主要是函数式相关的 api 比较直观易用

MarkLeeyun

MarkLeeyun   9 小时 48 分钟前

@kidult 还好,其实都有规范的,按照规范去写代码应该不会有什么大的问题的。

yazinnnn

yazinnnn   9 小时 26 分钟前

未来是可以期待的,spring vertx quarkus 等后端框架是拥抱 kotlin 的

fermiz

fermiz   9 小时 22 分钟前

目前项目正在使用 Kotlin,大半年了;语言本身方面挺香的,尤其是集合操作、scope 函数之类的;框架方面,基本很多开源的依赖都有 kotlin 支持,目前除了 MapStruct 这种底层要转会 JAVA 的静态代理的,没有什么大坑,新人上项目 2-3 周适应期,可以先写 Java 用 IDE 自动转试试;

zxCoder

zxCoder   9 小时 14 分钟前

kotlin 和 c#有些语法糖挺像的

jack778

jack778   9 小时 12 分钟前

@szq8014 接盘你项目的人会哭的呢。

holulu

holulu   9 小时 11 分钟前

除非一开始就用,很少项目中途转。

Jooooooooo

Jooooooooo   9 小时 9 分钟前

好处不明显啊

而且一个相同的东西存在好几种写法是个非常大的缺点

xd314697475

xd314697475   9 小时 8 分钟前

我们在用 kt 写后端

Lonely

Lonely   9 小时 3 分钟前 via iPhone   ❤️ 2

没有太大的优势啊

Jooooooooo

Jooooooooo   8 小时 52 分钟前

@yazinnnn 比如这种 val max = if (a > b) a else b

我宁愿看下面这种代码

int max;

if(a>b) {
max = a;
} else {
max=b;
}


本来 java 自带的三目运算符就已经很不直观了(go 就直接抛弃了这个语法)

viakiba

viakiba   8 小时 51 分钟前

kt 相比 java 最大的优势是协程 其他只能说是语法糖

iyaozhen

iyaozhen   8 小时 31 分钟前

有 spring 全家桶嘛?

再说还有发展迅猛的 go,还有市场依旧很大的 php

Leviathann

Leviathann   8 小时 25 分钟前

@iyaozhen 17 年初发布的 spring5.0 完全兼容 kotlin
@Jooooooooo 这样写那 max 就不能声明成 immutable 的

iyaozhen

iyaozhen   8 小时 21 分钟前

@Leviathann 那其实还是换语言的问题,就像前面说的,我们之前团队从 1.6 换到 8 都搞了好久。如果是新项目很可能用 go

yitingbai

yitingbai   8 小时 15 分钟前

@jarrodquan 你用 javafx 做什么项目? 这玩意太吃内存了, 空窗口启动就用了 40 多个线程和 100 多 MB 内存, 随便刷一刷几百兆内存就没了, 虽说现在内存便宜, 也架不住这么玩啊

Torpedo

Torpedo   8 小时 14 分钟前

https://www.v2ex.com/t/781261?p=1 你看看这下面很多写 java 的人的回帖,我感觉让他们用点『新』的 java 语法就很难了,更别说用 kotlin 了

NEVERCODE

NEVERCODE   8 小时 10 分钟前

我推荐给我司后端,他们非常抗拒…

timle1029

timle1029   8 小时 8 分钟前

亚麻是有的,而且越来越多,只是对于用户来说感觉不到

Ambush

Ambush   8 小时 0 分钟前

我司后端用的正是 Kotlin

fewok

fewok   7 小时 58 分钟前

完全没有性价比。

学习成本:用 kotlin 就可以不懂 java 吗?
内存占用:基于 jvm,kotlin 反而多占用一些内存
执行速度:jvm 上,没有区别
开发效率:你还在纠结那些语法表达,我已经完成任务。
结构化设计:OOP 、AOP 、DI 、DDD 等等,思想都没变法,不过是语法不一样。

cco

cco   7 小时 58 分钟前

@qwerthhusn 没必要捧一贬一,各有优缺点。

wxw752

wxw752   7 小时 49 分钟前   ❤️ 1

”凭什么让我学 kotlin,下一份工作又用不到”

unco020511

unco020511   7 小时 47 分钟前

因为大家都不想换

wupher

wupher   7 小时 45 分钟前

@Leviathann 是的,我也是因为更喜欢诸如 FP,以及诸如 data class,强类型等语法点而使用。
@zhgg0 但写代码的时间就有可能更长了。Kotlin 写完基本编译成功后,就基本没太多问题。

其实新的 Java16 也提供了类似 data class 机制,不过,java16, 我司运维现在还支持 java8 。

roundgis

roundgis   7 小时 40 分钟前 via Android

@jarrodquan gradle 不支持離線嗎?

Alexliu

Alexliu   7 小时 36 分钟前

这不就是看个人爱好么。。我是有在生产环境用 kt 写过后端了,反而没在 android 里用

shihty5

shihty5   7 小时 33 分钟前

我司作为 fin tech 独角兽全面拥抱 Kotlin,自己团队招人,求简历~
www.airwallex.com

[email protected]

Rheinmetal

Rheinmetal   7 小时 31 分钟前

有一个古老的项目,有人用 kt 重构之后把线程全部改成 coroutine 。
在旧机器上跑的好好的,等要迁移的时候。新机器上项目直接启动过后,过一会儿不明原因 hang 。

zed1018

zed1018   7 小时 30 分钟前

我们组一半的 jvm 已经用 kt 了

dbpe

dbpe   6 小时 53 分钟前

kotlin 语法糖真甜...特别是拓展方法...真香

yyyyda

yyyyda   6 小时 52 分钟前

我们就在用 kotlin 写后端,到现在快两年了

zoharSoul

zoharSoul   6 小时 51 分钟前

@shihty5 #43 坐标哪里?

byte10

byte10   6 小时 34 分钟前

@kidult 哈哈这一个精髓了,很多人喷 java 为啥那样古板的语法。其实就是这个道理,花里胡哨的语言导致无法维护的情况。因为开发团队 参差不齐,所以最好的语言还是 java 的
@qwerthhusn 你要听话,比 Kotlin 好的语言多的是,js,python,go,c# 开发都比它爽。但是为啥在业务领域还是 java 强,你还没领会到。当你成为领导,架构师的就会知道了。不听话就会很惨的。

hello1996

hello1996   6 小时 20 分钟前

因为后端用 kotlin 收益不大

yvestang

yvestang   6 小时 19 分钟前

为啥很多人还停留在「我学了个新语言很厉害」、「 xx 语言比 yy 语言更牛」这个层次.....估计是没有管理过大型工程吧。

Kamiyu0087

Kamiyu0087   6 小时 17 分钟前

Kotlin 写起来确实很爽
个人很喜欢

Rwing

Rwing   6 小时 16 分钟前

推荐一手 C# 😊

w741069229

w741069229   6 小时 1 分钟前

用 kt 不如用 scala,写起来比 kt 优雅的多吧

huangyanan

huangyanan   5 小时 57 分钟前

@fewok 赞同,公司新人特别推崇新语言新特性。

kett

kett   5 小时 51 分钟前   ❤️ 2

个人认为 Java 这种死板,语法糖少的语言非常适合工程,kt 这种灵活,语法糖多的,比较适合个人爽。

dqzcwxb

dqzcwxb   5 小时 45 分钟前

不用 kotlin 的理由并不是不接受新的语法也不是不会学,而是因为 java 会逐步吸收其他语言的成熟优点变成自己的
既然我用的语言会慢慢进化,我为什么要用其他的?

echo1937

echo1937   5 小时 37 分钟前

"方向错了,徒增功耗,有失公允,感知不强" /手动狗头

现在后端圈子都不太热衷 JDK 的更新,KT 化自然也就更不热门了。

acmore

acmore   4 小时 56 分钟前   ❤️ 1

楼主在经历了 “古板” 语言的摧残之后见到了比较现代化的写法很高兴可以理解,但是如果你了解其他的语言也可以问:“为什么不用 C#/Go” 等一系列不可能有标准答案的问题。但回答也简单,“没有为什么,没人拦着你用”。

软件工程是一门专有学科,其中语言的比重恰恰是极低的,既然 Java 好招人就用 Java 写,正如 C# 少见诸 JD 一样。如果真的喜欢高效和灵活地开发后端,Go 和 TS 效率要更高,生态好坑也少, 也可以关注 LTS 的 Java 17, Kotlin 灵活和高效没错,但也没有到成为银弹的高度。

DOLLOR

DOLLOR   4 小时 42 分钟前

因为写 Java 的 leader 看不懂。

yike47

yike47   4 小时 11 分钟前

以稳为准,团队开发的情况下,提交了几个 Lambda 表达式都会问这个有没有问题

RicardoY

RicardoY   3 小时 55 分钟前

俺就在用,跟现有的 Java8 项目完全无痛集成。其实主要是看 leader 对这种新技术的态度如何,先在边缘服务上试点,然后推广到核心服务,有测试覆盖,使用 kt 不会遇到什么阻力的。

kingfalse

kingfalse   3 小时 51 分钟前 via Android

我是后端跟爬虫一直在用

dilu

dilu   3 小时 33 分钟前

不是语言好就用的人多,参考 rust,性能优,有范型,无 gc,结果不也是不温不火

chendy

chendy   3 小时 12 分钟前

公司项目老老实实 java,自己玩 kt
毕竟要考虑维护和招人

shihty5

shihty5   3 小时 3 分钟前

@zoharSoul 上海黄浦区中海国际中心

cmdOptionKana

cmdOptionKana   2 小时 58 分钟前

@dilu 相反 Go 被语法爱好者狂喷,从很多角度都可以喷 Go 语法倒退,特性少要啥没啥,结果却大火。

thetbw

thetbw   2 小时 38 分钟前

@fewok kotlin 写起来速度个人感觉还是比 java 快的,虽然编译起来有点慢。而且代码可以看起来更简洁,尤其是使用了协程

newmlp

newmlp   2 小时 25 分钟前

出了问题你负责?

Huelse

Huelse   1 小时 59 分钟前

kotlin 少,那 scala 做后端的也少,除了大数据的

levelworm

levelworm   1 小时 58 分钟前

@Jooooooooo 这个我觉得要比 if else 写在外头的更直观啊,和三目操作符不一样。这个更接近口语了。不过就是 if else 的部分不能太长,否则一溜看下来也不舒服。

fewok

fewok   1 小时 18 分钟前

@thetbw 书写效率,不好做对比,因为没有质的变化,只能说取决熟悉程度(比如我 java 就非常快)。但你不写单测嘛?不执行下看看运行情况嘛?代码不过 CI\CD 嘛?

Mystery0

Mystery0   35 分钟前 via Android

举一点例子:我司用 Arthas 来诊断服务的状态,偶尔还用在线 debug,对使用 Java 写的服务来说简直完美,对我用 kt 写的服务来说直接爆炸。后端不喜欢用 kt 的一个原因应该是配套的生态还是主要支持 Java 的吧

junbaor

junbaor   32 分钟前

无意间打开了 okhttp 代码已经换成了 kotlin, 我司基础框架也是用 kotlin 做的,该上车上车,问题不大。

matrix67

matrix67   24 分钟前

之前就是有提出的 worse is better .

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK