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

kotlin 做服务端开发靠谱吗?

  •  
  •   jjshare · 85 天前 · 4813 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    语法糖比 Java 更好用
    LokiSharp
        4
    LokiSharp   85 天前 via iPhone
    不靠谱,找不到人接盘的
    waising
        5
    waising   85 天前 via iPhone
    前公司 2 年前就开始用来写服务了
    sagaxu
        6
    sagaxu   85 天前 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   85 天前 via Android
    kt 还不错,
    murmur
        8
    murmur   85 天前
    靠谱但是没必要,因为 spring mvc 那套太成熟了,有一点语法不爽架不住咱 ide 牛逼啊
    lastpass
        9
    lastpass   85 天前 via Android
    服务端使用 scala 相对 kotlin 要多。
    Rwing
        10
    Rwing   85 天前
    如果喜欢的 kotlin 的语法,可以尝试一下 C#
    dilu
        11
    dilu   85 天前 via Android
    语言层面靠谱,生态呢?你走了谁接盘?遇到问题你搜都搜不到解决方案
    sty
        12
    sty   85 天前 via Android
    @sagaxu 哪些 Java 库特性,Java 用不了,kotlin 能用?
    liuzhedash
        13
    liuzhedash   85 天前
    靠谱,你就把它当成 java 就行了
    rockyou12
        14
    rockyou12   85 天前 via Android
    我自己项目和公司的小部分代码就在用,完全没问题,不过大部分项目确实也没太大必要上就是了
    lbp0200
        15
    lbp0200   85 天前 via iPhone
    不使用 Java 的,都是异教徒
    samwalt
        16
    samwalt   85 天前
    @sagaxu 什么项目,能说下吗?
    PDX
        17
    PDX   85 天前
    @sagaxu 求分享
    youngxhui
        18
    youngxhui   85 天前 via Android
    靠谱啊,spring5.2 的官方文档示例代码都是 java 和 kotlin 两种语言了
    deming
        19
    deming   85 天前
    @sagaxu 老哥,能否做点 kotlin 的分享啊,或者贴个博客,感觉你在这方面的实战经验挺丰富。我发现只要有 kotlin vertx 的话题,里边评论都有你。哈哈
    lee015
        20
    lee015   85 天前 via Android
    编译出来就是 Java 代码没啥大问题,语法糖是真的香
    loshine1992
        21
    loshine1992   85 天前
    Kotlin 是大势所趋
    jjshare
        22
    jjshare   85 天前
    @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   85 天前
    生态上讲,应该用 golang
    Kasumi20
        24
    Kasumi20   85 天前
    Kotlin 是世界上最好的语言

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

    github.com/develon2015/Youtube-dl-REST
    qiyuey
        25
    qiyuey   85 天前
    讲道理是很靠谱的
    huanggan
        26
    huanggan   85 天前
    有什么用呢,最后还是编译成 java,就想 typescript 对于 js
    lagoon
        27
    lagoon   85 天前
    那个,看到许多人说走了没人接盘的问题。
    但 kotlin 和 java 区别那么大吗?
    我看到许多 Android 码农,都是直接项目上用 kotlin 写,都不需要去学。有疑问的地方查一下就好。
    hantsy
        28
    hantsy   84 天前
    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   84 天前
    Spring 5.2 开始支持 Kotlin Coroutines,不过我还不熟悉,
    参考: https://github.com/hantsy/spring-kotlin-coroutines-sample
    realkenshinji
        30
    realkenshinji   84 天前 via iPhone
    可以的,看看 ktor
    xlui
        31
    xlui   84 天前 via Android
    不仅可以,还很香
    diferent
        32
    diferent   84 天前
    已经用了,很久了, 现在遇到一个 Java 项目 , 就先添加 Kotlin 支持先.
    别人用啥我不管, 但是我肯定写 Kotlin.
    jjshare
        33
    jjshare   84 天前
    @heiheidewo 哈哈,负责人的说,golang 没有生态

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

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

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

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

    其实 我也很喜欢 kotlin 这个语言. java 太罗嗦了, 包括提到的 getter/setter 的确让人不爽,但并不代表这门语言在一些情况下是完美的, 我也只是站在一个后端开发的角度讲出我的一些痛点
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2683 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 08:17 · PVG 16:17 · LAX 00:17 · JFK 03:17
    ♥ Do have faith in what you're doing.