看新闻 OkHttp 都用 Kotlin 重写了,现在 Kotlin 在服务器端发展的怎么样? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LosLord
V2EX    Kotlin

看新闻 OkHttp 都用 Kotlin 重写了,现在 Kotlin 在服务器端发展的怎么样?

  •  
  •   LosLord 2019-06-26 16:24:22 +08:00 12661 次点击
    这是一个创建于 2298 天前的主题,其中的信息可能已经有所发展或是发生改变。

    早先尝试过用 Kotlin 写 Spring 项目,但是我属于“没 IDE 不会写”星人,好多没提示或者不知道怎么就没继续写。

    当时试了 Kotlin 发现很多语法糖挺好用的,相比 Java8 更加简洁和看着更加优雅,但是想到很多便利性的语法糖还是编译成 Class 在 JVM 上用的,背后做了大量的隐式工作,看网评说性能有损耗,就没有继续用。

    不过现在看样子一个个库都开始支持 Kotlin 或者直接用 Kotlin 做主语言了,现在的 Kotlin 体验怎么样了?

    写 Spring 项目大量的写 Kotlin 兼容性怎么样?
    像 OkHttp 这种项目,非 Kotlin 项目依赖的话,是不是打包也得包括 Kotlin 库?
    Kotlin 目前性能怎么样?

    24 条回复    2020-07-10 11:33:09 +08:00
    maninfog
        1
    maninfog  
       2019-06-26 16:27:50 +08:00 via iPhone
    编译成 class 文件只是编译慢些,怎么会性能损耗呢,又不是运行时编译
    LosLord
        2
    LosLord  
    OP
       2019-06-26 16:36:38 +08:00
    @maninfog 肯定有不一样的地方啊,比如 kotlin 的 foreach{},编译再反编译成 Java 会发现代码多出来一些不知道干什么用的。
    lastpass
        3
    lastpass  
       2019-06-26 16:36:55 +08:00 via Android
    现在正在服务器端使用 scala,写起来不错。
    zt1991616
        4
    zt1991616  
       2019-06-26 17:17:16 +08:00
    @LosLord 编译再反编不多东西才有鬼,要比也是 class
    kx5d62Jn1J9MjoXP
        5
    kx5d62Jn1J9MjoXP  
       2019-06-26 17:23:49 +08:00
    没听说有什么发展,okhttp 是 square 家的,等于还是 android 系的
    pynix
        6
    pynix  
       2019-06-26 18:03:53 +08:00
    和 swift 一样。。。。
    luozic
        7
    luozic  
       2019-06-26 18:45:24 +08:00 via iPhone
    Vegetable
        8
    Vegetable  
       2019-06-26 19:39:07 +08:00
    这两个语言之间选择,性能真的需要考虑吗?
    sty
        9
    sty  
       2019-06-26 20:51:16 +08:00 via Android
    backend 用了就回不去了
    chendy
        10
    chendy  
       2019-06-26 21:06:53 +08:00
    楼上用 scala 的真是个狠人…
    写了一段时间 kotlin 回头写 java,最大的问题竟然是习惯了不打分号…
    bccoder
        11
    bccoder  
       2019-06-26 21:08:33 +08:00 via iPhone
    android 项目 kotlin 和 java 混用,还是 kotlin 爽
    ufo22940268
        12
    ufo22940268  
       2019-06-26 21:13:52 +08:00
    写习惯 scala 之后就不想碰 java 了
    youngxhui838
        13
    youngxhui838  
       2019-06-26 23:00:51 +08:00 via Android
    spring boot + kotlin 挺好的,写了一年
    yejianmail
        14
    yejianmail  
       2019-06-26 23:08:30 +08:00 via Android
    springboot 和 kotlin 完美组合
    cpdyj0
        15
    cpdyj0  
       2019-06-26 23:11:39 +08:00
    Kotlin 赛高!
    twoyuan
        16
    twoyuan  
       2019-06-26 23:14:11 +08:00 via Android
    @cpdyj0 hello,你也逛 v 站
    cpdyj0
        17
    cpdyj0  
       2019-06-26 23:19:14 +08:00
    @twoyuan 真巧
    ddxx200
        18
    ddxx200  
       2019-06-26 23:27:23 +08:00
    目前后端全线 kotlin,爽歪歪
    micean
        19
    micean  
       2019-06-26 23:33:19 +08:00
    写了一段时间 kotlin 又回 java 了
    1. 在 idea 打开 kt 的 class 看不到完整的反编译信息,debug 查原因的时候极度不方便
    2. 泛型更难用了
    3. 一般对于 null 都有特别处理,然而我还得补上个蛋疼的?号
    4. 没有我最爱用的三元表达式,始终还是不习惯
    billlee
        20
    billlee  
       2019-06-26 23:44:11 +08:00
    后端还是 scala 好用
    LosLord
        21
    LosLord  
    OP
       2019-06-27 09:56:00 +08:00   1
    @micean null 处理还好,能很大程度避免 null 异常。三元表达式再 Kotlin 换的话我记得是用 var i = if (a==1) 1 else 2 这种形式写,差不多吧
    dragonsunmoon
        22
    dragonsunmoon  
       2020-04-06 01:29:02 +08:00
    安利一下基于 kotlin 语言,我个人开发的后端快速开发框架, ttp://loveinshenzhen.github.io/#/sz_framework/introduction

    我负责的多个项目, 都是使用这套框架进行后端开发的. 开发效率比 spring mvc 那套要快得多. 和 Play Framework 的类似. 不过 Play Framework 的语言是以 scala 为主, 而这套是以 kotlin 为开发语言的.
    realkenshinji
        23
    realkenshinji  
       2020-06-12 07:30:47 +08:00 via iPhone
    @billlee scala 搭配 play ?
    ggght
        24
    ggght  
       2020-07-10 11:33:09 +08:00
    kt 的服务端框架的话,不是官方的 Ktor 么?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1151 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:45 PVG 01:45 LAX 10:45 JFK 13:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86