V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
szuwl
V2EX  ›  程序员

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

  •  1
     
  •   szuwl · 140 天前 · 7919 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。
    相印的 kotlin 后端的招聘岗位也很少,很疑惑,这么好使的后端语言,为什么一直处于较冷的状态。
    84 条回复    2021-08-29 11:31:13 +08:00
    Kasumi20
        1
    Kasumi20   140 天前
    太灵活了,只适合 geek 玩

    上班摸鱼还是老老实实写 Java 的 getter setter 。
    dolphintwo
        2
    dolphintwo   140 天前   ❤️ 15
    因为培训班只教 java
    szq8014
        3
    szq8014   140 天前
    还是取决于公司的业务类型,比如我所在的公司有一些甲方验收的时候明确要求是 Java 。
    有一些自己的产品就可以随便用,不过为了统一我也不打算推 kotlin 了,虽然用它写业务真的很爽
    let apply map 爽到飞起
    kidult
        4
    kidult   140 天前   ❤️ 1
    JAVA:一万个人心中只有那个哈姆雷特
    Kotlin:一万个人心中有一万个哈姆雷特
    ufan0
        5
    ufan0   140 天前 via Android
    维稳大于天,大家觉得老东西靠谱,除非哪天 Java 不让用了或者彻底某个方面被时代抛弃了。

    话说回来,如果你是部门架构师级别的,是可以自己选择其他语言的。
    wupher
        6
    wupher   140 天前
    用没问题,招人的时候就有点麻烦。

    我的项目后端使用 Kotlin 开发,新人从学习能上手做事,要接近 1 个月吧。
    qwerthhusn
        7
    qwerthhusn   140 天前
    用了 KT 感觉 Java 就是一坨屎。但是公司项目肯定还是用 Java 啊,不是所有人愿意花精力学 kt 的。
    zoharSoul
        8
    zoharSoul   140 天前
    暂时缺少大公司零头宣传.
    wengych
        9
    wengych   140 天前 via iPhone
    后端能用 java11,以前安卓只能用 1.6
    levelworm
        10
    levelworm   140 天前 via Android
    看了下语法 return on when 有点骚啊
    zhgg0
        11
    zhgg0   140 天前
    @wupher 如果会 java,一天就可以了吧?
    stimw
        12
    stimw   140 天前
    大部分从 java8 换到 11 都不想换,还让他们换个语言...
    uglyer
        13
    uglyer   140 天前   ❤️ 1
    17 年的项目尝试过,除了对象序列化遇到一些坑之外其他方面都挺好的,能极大的提高效率。
    对于团队成员,kotlin 不熟悉的语法,先用 java 写 用 idea 提供自动转换的工具 翻译为 kotlin,基本上一周左右都能熟悉了。
    jarrodquan
        14
    jarrodquan   140 天前
    我现在在用 Gradle 构建基于 Kotlin 的 JavaFX 项目还有 Spring Boot 项目。
    后来因为要完全离线开发,把 Gradle 换回了 Maven 。
    Kotlin 写起来很舒服,省略标点符号,更高级的扩展 API,免去了 Getter/Setter 直接赋值取值(写 JavaFX 的时候贼爽)。
    后端 Spring Boot 这种项目,最明显的感受就是更便捷的集合操作 API,还有协程。
    Leviathann
        15
    Leviathann   140 天前 via iPhone
    @zhgg0 kotlin 的 class 相关语法比 Java 复杂不少
    易上手主要是函数式相关的 api 比较直观易用
    MarkLeeyun
        16
    MarkLeeyun   140 天前
    @kidult 还好,其实都有规范的,按照规范去写代码应该不会有什么大的问题的。
    yazinnnn
        17
    yazinnnn   140 天前
    未来是可以期待的,spring vertx quarkus 等后端框架是拥抱 kotlin 的
    fermiz
        18
    fermiz   140 天前
    目前项目正在使用 Kotlin,大半年了;语言本身方面挺香的,尤其是集合操作、scope 函数之类的;框架方面,基本很多开源的依赖都有 kotlin 支持,目前除了 MapStruct 这种底层要转会 JAVA 的静态代理的,没有什么大坑,新人上项目 2-3 周适应期,可以先写 Java 用 IDE 自动转试试;
    zxCoder
        19
    zxCoder   140 天前
    kotlin 和 c#有些语法糖挺像的
    jack778
        20
    jack778   140 天前
    @szq8014 接盘你项目的人会哭的呢。
    holulu
        21
    holulu   140 天前
    除非一开始就用,很少项目中途转。
    Jooooooooo
        22
    Jooooooooo   140 天前
    好处不明显啊

    而且一个相同的东西存在好几种写法是个非常大的缺点
    xd314697475
        23
    xd314697475   140 天前
    我们在用 kt 写后端
    Lonely
        24
    Lonely   140 天前 via iPhone   ❤️ 2
    没有太大的优势啊
    yazinnnn
        25
    yazinnnn   140 天前
    @Jooooooooo
    举个栗子?
    Jooooooooo
        26
    Jooooooooo   140 天前
    @yazinnnn 比如这种 val max = if (a > b) a else b

    我宁愿看下面这种代码

    int max;

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


    本来 java 自带的三目运算符就已经很不直观了(go 就直接抛弃了这个语法)
    viakiba
        27
    viakiba   140 天前
    kt 相比 java 最大的优势是协程 其他只能说是语法糖
    iyaozhen
        28
    iyaozhen   140 天前
    有 spring 全家桶嘛?

    再说还有发展迅猛的 go,还有市场依旧很大的 php
    Leviathann
        29
    Leviathann   140 天前
    @iyaozhen 17 年初发布的 spring5.0 完全兼容 kotlin
    @Jooooooooo 这样写那 max 就不能声明成 immutable 的
    iyaozhen
        30
    iyaozhen   140 天前
    @Leviathann 那其实还是换语言的问题,就像前面说的,我们之前团队从 1.6 换到 8 都搞了好久。如果是新项目很可能用 go
    yitingbai
        31
    yitingbai   140 天前
    @jarrodquan 你用 javafx 做什么项目? 这玩意太吃内存了, 空窗口启动就用了 40 多个线程和 100 多 MB 内存, 随便刷一刷几百兆内存就没了, 虽说现在内存便宜, 也架不住这么玩啊
    Torpedo
        32
    Torpedo   140 天前
    https://www.v2ex.com/t/781261?p=1 你看看这下面很多写 java 的人的回帖,我感觉让他们用点『新』的 java 语法就很难了,更别说用 kotlin 了
    NEVERCODE
        33
    NEVERCODE   140 天前
    我推荐给我司后端,他们非常抗拒…
    timle1029
        34
    timle1029   140 天前
    亚麻是有的,而且越来越多,只是对于用户来说感觉不到
    Ambush
        35
    Ambush   140 天前
    我司后端用的正是 Kotlin
    fewok
        36
    fewok   140 天前
    完全没有性价比。

    学习成本:用 kotlin 就可以不懂 java 吗?
    内存占用:基于 jvm,kotlin 反而多占用一些内存
    执行速度:jvm 上,没有区别
    开发效率:你还在纠结那些语法表达,我已经完成任务。
    结构化设计:OOP 、AOP 、DI 、DDD 等等,思想都没变法,不过是语法不一样。
    cco
        37
    cco   140 天前
    @qwerthhusn 没必要捧一贬一,各有优缺点。
    wxw752
        38
    wxw752   140 天前   ❤️ 1
    ”凭什么让我学 kotlin,下一份工作又用不到”
    unco020511
        39
    unco020511   140 天前
    因为大家都不想换
    wupher
        40
    wupher   140 天前
    @Leviathann 是的,我也是因为更喜欢诸如 FP,以及诸如 data class,强类型等语法点而使用。
    @zhgg0 但写代码的时间就有可能更长了。Kotlin 写完基本编译成功后,就基本没太多问题。

    其实新的 Java16 也提供了类似 data class 机制,不过,java16, 我司运维现在还支持 java8 。
    roundgis
        41
    roundgis   140 天前 via Android
    @jarrodquan gradle 不支持離線嗎?
    Alexliu
        42
    Alexliu   140 天前
    这不就是看个人爱好么。。我是有在生产环境用 kt 写过后端了,反而没在 android 里用
    shihty5
        43
    shihty5   140 天前
    我司作为 fin tech 独角兽全面拥抱 Kotlin,自己团队招人,求简历~
    www.airwallex.com

    [email protected]
    Rheinmetal
        44
    Rheinmetal   140 天前
    有一个古老的项目,有人用 kt 重构之后把线程全部改成 coroutine 。
    在旧机器上跑的好好的,等要迁移的时候。新机器上项目直接启动过后,过一会儿不明原因 hang 。
    zed1018
        45
    zed1018   140 天前
    我们组一半的 jvm 已经用 kt 了
    zhuangzhuang1988
        46
    zhuangzhuang1988   140 天前
    @Rheinmetal 而且特别难查 bug.
    dbpe
        47
    dbpe   140 天前
    kotlin 语法糖真甜...特别是拓展方法...真香
    yyyyda
        48
    yyyyda   140 天前
    我们就在用 kotlin 写后端,到现在快两年了
    zoharSoul
        49
    zoharSoul   140 天前
    @shihty5 #43 坐标哪里?
    byte10
        50
    byte10   140 天前
    @kidult 哈哈这一个精髓了,很多人喷 java 为啥那样古板的语法。其实就是这个道理,花里胡哨的语言导致无法维护的情况。因为开发团队 参差不齐,所以最好的语言还是 java 的
    @qwerthhusn 你要听话,比 Kotlin 好的语言多的是,js,python,go,c# 开发都比它爽。但是为啥在业务领域还是 java 强,你还没领会到。当你成为领导,架构师的就会知道了。不听话就会很惨的。
    hello1996
        51
    hello1996   140 天前
    因为后端用 kotlin 收益不大
    yvestang
        52
    yvestang   140 天前   ❤️ 1
    为啥很多人还停留在「我学了个新语言很厉害」、「 xx 语言比 yy 语言更牛」这个层次.....估计是没有管理过大型工程吧。
    Kamiyu0087
        53
    Kamiyu0087   140 天前
    Kotlin 写起来确实很爽
    个人很喜欢
    Rwing
        54
    Rwing   140 天前
    推荐一手 C# 😊
    w741069229
        55
    w741069229   140 天前   ❤️ 1
    用 kt 不如用 scala,写起来比 kt 优雅的多吧
    huangyanan
        56
    huangyanan   140 天前
    @fewok 赞同,公司新人特别推崇新语言新特性。
    kett
        57
    kett   140 天前   ❤️ 2
    个人认为 Java 这种死板,语法糖少的语言非常适合工程,kt 这种灵活,语法糖多的,比较适合个人爽。
    dqzcwxb
        58
    dqzcwxb   140 天前
    不用 kotlin 的理由并不是不接受新的语法也不是不会学,而是因为 java 会逐步吸收其他语言的成熟优点变成自己的
    既然我用的语言会慢慢进化,我为什么要用其他的?
    echo1937
        59
    echo1937   140 天前
    "方向错了,徒增功耗,有失公允,感知不强" /手动狗头

    现在后端圈子都不太热衷 JDK 的更新,KT 化自然也就更不热门了。
    acmore
        60
    acmore   140 天前   ❤️ 1
    楼主在经历了 “古板” 语言的摧残之后见到了比较现代化的写法很高兴可以理解,但是如果你了解其他的语言也可以问:“为什么不用 C#/Go” 等一系列不可能有标准答案的问题。但回答也简单,“没有为什么,没人拦着你用”。

    软件工程是一门专有学科,其中语言的比重恰恰是极低的,既然 Java 好招人就用 Java 写,正如 C# 少见诸 JD 一样。如果真的喜欢高效和灵活地开发后端,Go 和 TS 效率要更高,生态好坑也少, 也可以关注 LTS 的 Java 17, Kotlin 灵活和高效没错,但也没有到成为银弹的高度。
    DOLLOR
        61
    DOLLOR   140 天前
    因为写 Java 的 leader 看不懂。
    yike47
        62
    yike47   140 天前
    以稳为准,团队开发的情况下,提交了几个 Lambda 表达式都会问这个有没有问题
    RicardoY
        63
    RicardoY   140 天前
    俺就在用,跟现有的 Java8 项目完全无痛集成。其实主要是看 leader 对这种新技术的态度如何,先在边缘服务上试点,然后推广到核心服务,有测试覆盖,使用 kt 不会遇到什么阻力的。
    kingfalse
        64
    kingfalse   140 天前 via Android
    我是后端跟爬虫一直在用
    dilu
        65
    dilu   140 天前
    不是语言好就用的人多,参考 rust,性能优,有范型,无 gc,结果不也是不温不火
    chendy
        66
    chendy   140 天前
    公司项目老老实实 java,自己玩 kt
    毕竟要考虑维护和招人
    shihty5
        67
    shihty5   140 天前
    @zoharSoul 上海黄浦区中海国际中心
    cmdOptionKana
        68
    cmdOptionKana   140 天前
    @dilu 相反 Go 被语法爱好者狂喷,从很多角度都可以喷 Go 语法倒退,特性少要啥没啥,结果却大火。
    thetbw
        69
    thetbw   140 天前
    @fewok kotlin 写起来速度个人感觉还是比 java 快的,虽然编译起来有点慢。而且代码可以看起来更简洁,尤其是使用了协程
    newmlp
        70
    newmlp   140 天前
    出了问题你负责?
    Huelse
        71
    Huelse   140 天前
    kotlin 少,那 scala 做后端的也少,除了大数据的
    levelworm
        72
    levelworm   140 天前
    @Jooooooooo 这个我觉得要比 if else 写在外头的更直观啊,和三目操作符不一样。这个更接近口语了。不过就是 if else 的部分不能太长,否则一溜看下来也不舒服。
    fewok
        73
    fewok   140 天前
    @thetbw 书写效率,不好做对比,因为没有质的变化,只能说取决熟悉程度(比如我 java 就非常快)。但你不写单测嘛?不执行下看看运行情况嘛?代码不过 CI\CD 嘛?
    Mystery0
        74
    Mystery0   140 天前 via Android
    举一点例子:我司用 Arthas 来诊断服务的状态,偶尔还用在线 debug,对使用 Java 写的服务来说简直完美,对我用 kt 写的服务来说直接爆炸。后端不喜欢用 kt 的一个原因应该是配套的生态还是主要支持 Java 的吧
    junbaor
        75
    junbaor   140 天前
    无意间打开了 okhttp 代码已经换成了 kotlin, 我司基础框架也是用 kotlin 做的,该上车上车,问题不大。
    matrix67
        76
    matrix67   140 天前
    之前就是有提出的 worse is better .
    Leee
        77
    Leee   140 天前
    歪个楼,也没见有人用 dart 来写后端的哈哈哈哈哈
    abc612008
        78
    abc612008   139 天前
    我以前的公司整个后端都是完全 kotlin 写的。
    Muyiafan
        79
    Muyiafan   139 天前
    因为只有你会
    yibo2018
        80
    yibo2018   139 天前
    我前上司就特别迷 kottlin
    其实我有时候很不理解这种东西,过来过去不就是换个语法糖,有必要吗?
    我对各种语言语法的变化真是深恶痛绝,一样的操作非要搞 10 种 8 种写法,效率却没有多大的变化
    我也承认语法也是有研究价值的,但是我觉得不如研究其他的更好
    Gleven
        81
    Gleven   139 天前
    @yazinnnn 我们团队已经用过 vert.x+kotlin 的组合,不要太爽,完美解决回调地狱的问题
    HangoX
        82
    HangoX   139 天前
    如果一个代码运行得好好的为啥要改
    THESDZ
        83
    THESDZ   138 天前
    @MarkLeeyun # 永远不要高估团队内开发人员的水平,也不要低估沟通的成本.
    rachel1307
        84
    rachel1307   57 天前
    Java 转 Kotlin 了(不过也是大差不差) 最近有打算看看机会的兄弟姐妹可以丢我简历!!

    Global Fintech 跨境支付 D+轮了 核心团队在扩招~
    10 7-8 5 节奏 市区马当路

    Email: [email protected]
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2584 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:52 · PVG 22:52 · LAX 07:52 · JFK 10:52
    ♥ Do have faith in what you're doing.