kotlin 做服务端开发靠谱吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jjshare
V2EX    程序员

kotlin 做服务端开发靠谱吗?

  •  
  •   jjshare 2019 年 10 月 24 日 11384 次点击
    这是一个创建于 2278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己常用 PHP ~ golang 刚出来的时候,使用过一段时间,累不觉爱~

    最近自己捣鼓一个客户端,学了一下 kotlin 感觉非常爽~

    因为 kotlin 完全兼容 Java,所以在想 kotlin 做服务端开发的话,是不是靠谱?有实践过的朋友,来讨论一下~

    40 条回复    2020-10-16 18:41:31 +08:00
    fansangg
        1
    fansangg  
       2019 年 10 月 24 日 via iPhone
    当然可以,就是没有人用,一般都是写 Android 的在用,而且也是小部分写 Android 的在用。
    hyrepo
        2
    hyrepo  
       2019 年 10 月 24 日 via iPhone
    我们组目前就是,基本上是当做一个更好用的 Java 在用,反正 Java 能用的它也能用,实在不行的情况甚至可以直接在里面写 Java,何乐而不为呢?
    qwertyegg
        3
    qwertyegg  
       2019 年 10 月 25 日
    靠谱!所有 java 的 library 拿来就能用

    语法糖比 Java 更好用
    LokiSharp
        4
    LokiSharp  
       2019 年 10 月 25 日 via iPhone
    不靠谱,找不到人接盘的
    waising
        5
    waising  
       2019 年 10 月 25 日 via iPhone
    前公司 2 年前就开始用来写服务了
    sagaxu
        6
    sagaxu  
       2019 年 10 月 25 日 via Android   10
    2017 年 Q1,项目中开始引入 Kotlin
    2017 年 Q2,新增文件和有变更的老文件都用 Kotlin
    2017 年 Q3,核心 api 从 tomcat 往 vertx 重构
    2017 年 Q4,除了自动生成,已无一行 JAVA 代码
    2018 年 Q1,核心 API 全部重构到 vertx
    2018 年 Q4,100% vertx,去处了 tomcat
    2019 年 Q1,开始引入 Kotlin coroutine
    2019 年 Q4,大部分 API 重构成了 coroutine

    并非个人玩具项目,日均请求在 10 亿以上

    spring ioc 对 Kotlin 有特别的特性,vertx 跟 coroutine 的集成丝般顺滑,就像在用 Go 一样。不仅仅是兼容 JAVA,而是某些 JAVA 库,一些特性只支持 Kotlin,反而 JAVA 却用不了。
    by73
        7
    by73  
       2019 年 10 月 25 日 via Android
    kt 还不错,
    murmur
        8
    murmur  
       2019 年 10 月 25 日
    靠谱但是没必要,因为 spring mvc 那套太成熟了,有一点语法不爽架不住咱 ide 牛逼啊
    lastpass
        9
    lastpass  
       2019 年 10 月 25 日 via Android
    服务端使用 scala 相对 kotlin 要多。
    Rwing
        10
    Rwing  
       2019 年 10 月 25 日
    如果喜欢的 kotlin 的语法,可以尝试一下 C#
    dilu
        11
    dilu  
       2019 年 10 月 25 日 via Android
    语言层面靠谱,生态呢?你走了谁接盘?遇到问题你搜都搜不到解决方案
    sty
        12
    sty  
       2019 年 10 月 25 日 via Android
    @sagaxu 哪些 Java 库特性,Java 用不了,kotlin 能用?
    liuzhedash
        13
    liuzhedash  
       2019 年 10 月 25 日
    靠谱,你就把它当成 java 就行了
    rockyou12
        14
    rockyou12  
       2019 年 10 月 25 日 via Android
    我自己项目和公司的小部分代码就在用,完全没问题,不过大部分项目确实也没太大必要上就是了
    lbp0200
        15
    lbp0200  
       2019 年 10 月 25 日 via iPhone
    不使用 Java 的,都是异教徒
    samwalt
        16
    samwalt  
       2019 年 10 月 25 日
    @sagaxu 什么项目,能说下吗?
    PDX
        17
    PDX  
       2019 年 10 月 25 日
    @sagaxu 求分享
    youngxhui
        18
    youngxhui  
       2019 年 10 月 25 日 via Android
    靠谱啊,spring5.2 的官方文档示例代码都是 java 和 kotlin 两种语言了
    deming
        19
    deming  
       2019 年 10 月 25 日
    @sagaxu 老哥,能否做点 kotlin 的分享啊,或者贴个博客,感觉你在这方面的实战经验挺丰富。我发现只要有 kotlin vertx 的话题,里边评论都有你。哈哈
    lee015
        20
    lee015  
       2019 年 10 月 25 日 via Android
    编译出来就是 Java 代码没啥大问题,语法糖是真的香
    loshine1992
        21
    loshine1992  
       2019 年 10 月 25 日
    Kotlin 是大势所趋
    jjshare
        22
    jjshare  
    OP
       2019 年 10 月 25 日
    @fansangg
    @hyrepo
    @qwertyegg
    @waising
    @sagaxu
    @by73
    @liuzhedash
    @rockyou12
    @youngxhui
    @lee015
    @loshine1992
    手动圈一遍,谢谢各位的观点~

    @waising 老哥公司还挺先进,我是最近自己想写 app,学了一下,感觉很赞

    @sagaxu 2017 年 Q2 季度到现在就没有正式工作过了,之前工作时大并发场景比较多,调研了 golang,但是当时要自己造的轮子比较多,就 nginx+lua+php 撸起来了~那个实际 kotlin 还没有听说过,也就没有调研过~
    @dilu kotlin 按照官方的说法,是可以完全接盘 jvm 生态的~

    @rockyou12 是的,现在自己也没有工作,偶尔想写个啥,PHP 直接撸了~想 kotlin 写服务端,就是感觉可以这么干,所以发上来问问~

    @lbp0200 PHP 是最好的语言
    @loshine1992 哈哈哈,kt 一统三届~
    heiheidewo
        23
    heiheidewo  
       2019 年 10 月 25 日
    生态上讲,应该用 golang
    Kasumi20
        24
    Kasumi20  
       2019 年 10 月 25 日
    Kotlin 是世界上最好的语言

    Kotlin + Spring 写的小网站"Youtube 在线解析", 求 star

    github.com/develon2015/Youtube-dl-REST
    qiyuey
        25
    qiyuey  
       2019 年 10 月 25 日
    讲道理是很靠谱的
    huanggan
        26
    huanggan  
       2019 年 10 月 25 日
    有什么用呢,最后还是编译成 java,就想 typescript 对于 js
    lagoon
        27
    lagoon  
       2019 年 10 月 25 日
    那个,看到许多人说走了没人接盘的问题。
    但 kotlin 和 java 区别那么大吗?
    我看到许多 Android 码农,都是直接项目上用 kotlin 写,都不需要去学。有疑问的地方查一下就好。
    hantsy
        28
    hantsy  
       2019 年 10 月 25 日
    Spring 5 开始对 Kotlin 官方支持,加入很多 Kotlin 特有 DSL 简化 Spring 开发,如 BeanDefitionDSL,FunctionalRouteDSL 等,这样 Spring 项目 Java 转到 Kotlin,不仅仅是简单的语言转换 。

    参考: https://github.com/hantsy/angular-spring-reactive-sample/tree/master/server-kotlin
    hantsy
        29
    hantsy  
       2019 年 10 月 25 日
    Spring 5.2 开始支持 Kotlin Coroutines,不过我还不熟悉,
    参考: https://github.com/hantsy/spring-kotlin-coroutines-sample
    realkenshinji
        30
    realkenshinji  
       2019 年 10 月 25 日 via iPhone
    可以的,看看 ktor
    akiakiseofficial
        31
    akiakiseofficial  
       2019 年 10 月 25 日 via Android
    不仅可以,还很香
    diferent
        32
    diferent  
       2019 年 10 月 25 日
    已经用了,很久了, 现在遇到一个 Java 项目 , 就先添加 Kotlin 支持先.
    别人用啥我不管, 但是我肯定写 Kotlin.
    jjshare
        33
    jjshare  
    OP
       2019 年 10 月 25 日
    @heiheidewo 哈哈,负责人的说,golang 没有生态

    @Kasumi20 手动赞
    @qiyuey 我也觉得靠谱,不过没有实操过
    @realkenshinji 好的,谢谢

    @xlui 吃香喝辣的请带上我
    @hantsy 专业,优秀,手动大拇指

    @diferent 不会 Java 的,表示 kt 大法好
    @lagoon 人生虽然有很多盘要接,但是未尝不是好盘啊,哈哈,要有接盘的能力,不要有接盘的心理包袱~
    changdy
        34
    changdy  
       2019 年 10 月 25 日
    自己也用 kotlin 写过后端项目,不过仍旧要泼一下冷水了
    kotlin 和 java 后端最大的不同是视角不同 比如 data class 的设计理念:
    * 对于 java 后端来说 data class 的构造器不太妥当,基本上都要初始化 null 反而很不优雅
    * data class 不支持继承 ,这点更棘手

    我没用 kotlin 做过大项目, 不过目前来看其实 kotlin 语言的初衷并不是以服务端为主.
    fansangg
        35
    fansangg  
       2019 年 10 月 25 日
    @lagoon 你遇到的可能是已经用琐碎的时间看了很多遍语法了,我 17 年刚上手的时候用 kt 写项目,不会写的都是用 java 写一遍然后贴过来转成 kotlin 的,看看转成啥样的然后照葫芦画瓢
    diferent
        36
    diferent  
       2019 年 10 月 25 日
    @changdy
    说明你还没有掌握 Kotlin ,
    data class 只是 kotlin 里的一种具体表现,适用于一部分场景,
    Java 也是一样的. 只不过 Java 因为自身的语法限制,后来才形成公约式的 getter/setter 以及 builder, 本身上都是语法劣势而不得已的妥协而已.
    kotlin 的语法不存在这些劣势,所以没有必要按照 Java 的思路去设计序列化对象
    现在我所有的 entity 和 DTO 都用 kotlin 去写的
    现在除非是打开别人的工程, 不然都不会安装 lombok 插件.
    YUyu101
        37
    YUyu101  
       2019 年 10 月 25 日
    我刚看到也是感觉很爽,各种语法糖 apply let 什么的还有协程,突然就想起了隔壁 c#。
    lagoon
        38
    lagoon  
       2019 年 10 月 26 日
    @fansangg 哪有这么夸张。除非是一个学 java,就只学 java,对其他语言不屑一顾的人。否则,新的语言,太多类似的概念、写法。自然而然就会比较容易上手。
    至于某些从事 java,就对其他语言一直看都不看一眼的,我觉得是不对的(真的天天忙到 996 除外)。
    changdy
        39
    changdy  
       2019 年 10 月 26 日
    @diferent
    ---> data class 只是 kotlin 里的一种具体表现,适用于一部分场景,
    ---< 我觉得 java 里面常见的 entity 之类的 应该都是可以使用 data class 替换的. 但是目前我却只能 继承和 data class 二选一 并且官方也注意到了 data class 不能继承的窘境 准备开始改善了
    ---> kotlin 的语法不存在这些劣势,所以没有必要按照 Java 的思路去设计序列化对象
    ---< `我没有,我不是,你别胡说` 我只是觉得 kotlin 最早的设计角度并没有放在 后台服务器上
    ---> 现在我所有的 entity 和 DTO 都用 kotlin 去写的
    ---< 很想知道 需要继承的时候是怎么做的... 放弃继承吗? 还是放弃 data class

    其实 我也很喜欢 kotlin 这个语言. java 太罗嗦了, 包括提到的 getter/setter 的确让人不爽,但并不代表这门语言在一些情况下是完美的, 我也只是站在一个后端开发的角度讲出我的一些痛点
    no13bus
        40
    no13bus  
       2020 年 10 月 16 日
    老哥还在玩 kotlin 吗?加个微信聊聊撒. no13bus
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3631 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 00:54 PVG 08:54 LAX 16:54 JFK 19:54
    Do have faith in what you're doing.
    ubao msn 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