fuhanfeng
V2EX  ›  Kotlin

Kotlin 2.0.0 正式版发布了

  •  
  •   fuhanfeng · May 22, 2024 · 12868 views
    This topic created in 896 days ago, the information mentioned may be changed or developed.

    https://kotlinlang.org/docs/whatsnew20.html

    GPT-4o 的总结:

    Kotlin 2.0 亮点

    1. K2 编译器:

      • 稳定:默认用于所有平台,性能显著提升。
      • 性能:编译了 1000 万行代码,测试了 18000 开发者和 80000 项目。
    2. IDE 支持:

      • 新版 Kotlin 插件捆绑在 IntelliJ IDEA 和 Android Studio 中。
    3. Gradle 集成:

      • 新 DSL:用于多平台项目的实验性编译器选项配置。
      • Compose 插件:增强对 Jetpack Compose 的支持。
    4. Lambda 函数:

      • invokedynamic:生成更小的二进制文件,但 lambda 不可序列化。
    5. Kotlinx-metadata-jvm 库:

      • 稳定版本,提供读取和修改 JVM 二进制文件元数据的 API 。
    6. Kotlin/Native 增强:

      • GC 监控:在 Apple 平台上改进垃圾回收性能监控。
      • 方法冲突解决:改进与 Objective-C 方法的冲突处理。
    7. Kotlin/Wasm:

      • 支持命名导出和无符号原始类型的 @JsExport 函数。
    8. 智能类型转换:

      • 改进 if、when 和 while 块中的智能类型转换,减少手动类型断言。

    Kotlin 2.0.0 语言层面没有新特性,但是引入 K2 编译器,提高了性能。

    想问一下大家上海/杭州有用 Kotlin 做服务端的公司吗?

    Supplement 1  ·  May 23, 2024
    51 replies  •  2024-08-08 16:25:07 +08:00
    smallboy19991231
    smallboy19991231
    May 22, 2024
    1
    是和 Java 類似的哪個語言嗎
    cutiechi
    cutiechi
    May 22, 2024
    2
    nice

    坐标苏州, to G 公司, 所有服务全是 Kotlin, 包括各种 Flink 、Spark Jar 任务, 摸鱼时间大大增加
    jaguar1982ssss
    jaguar1982ssss
    May 22, 2024
    3
    https://plugins.jetbrains.com/plugin/24379-tencent-cloud-ai-code-assistant
    这个插件做 Kotlin 的 AI 代码生成效果不错,还是免费的。
    javak
    javak
    May 22, 2024 via iPhone
    4
    ide 得支持还没跟上,还要再等一等才能用
    Leviathann
    Leviathann
    May 22, 2024
    5
    听说 google 用 java 做的 server 的组很多都转向了 kotlin
    以前用 c++的转向了 go
    tuokamuta
    tuokamuta
    May 22, 2024
    6
    Scala!!!!!!!!
    weeei
    weeei
    May 22, 2024
    7
    @Leviathann kotlin 的服务端有没有 killer app ?
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    8
    @smallboy19991231 #1 有些类似,都可以运行在 JVM 上,也支持和 Java 混编

    @superchijinpeng #2 toG 能做到所有服务都是 Kotlin ,很赞啊

    @Leviathann #5 昨天还看到说 Android 官方支持 Kotlin Multiplatform
    https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html
    xianyv
    xianyv
    May 22, 2024
    9
    我先试试 Kotlin2.0.0 的 JetpackCompose 好不好用
    lisongeee
    lisongeee
    May 22, 2024
    10
    我想知道 compose 1.7 啥时候发布,compose 1.6 的拖拽有元素位置错乱的问题

    https://github.com/Calvin-LL/Reorderable/issues/27
    chendy
    chendy
    May 22, 2024
    11
    回想起上次用 kt 已经是七年前的事情了
    语法特性很棒,null-safe 和 unmutable 然我受益良多,但是 IDE 很卡电脑很热,于是放弃至今

    好用,好玩,但是干活过日子我还是选择 java
    qinfengge
    qinfengge
    May 22, 2024
    12
    Kotlin 服务端入门的教程大佬们有没有啊,我想试试👀
    kuanat
    kuanat
    May 22, 2024❤️1
    13
    写 Kotlin 可比写 Java 爽太多了,等 LSP 和 IDE 跟上,体验还会更好。
    Leviathann
    Leviathann
    May 22, 2024
    14
    @weeei 图省事直接用 spring boot 就行 官方也有自己维护的 ktor

    springboot quarkus(vert.x) jooby javalin 都有对 kotlin 的支持
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    15
    @javak #4 K2 是可以选了,但是 Language 和 Api 还只能选到 1.9

    @weeei #7 Kotlin 本身支持和 Java 混编,例如 Spring 也是支持 Kotlin

    @chendy #11 如果是 7 年前用,那现在差别还是蛮大的,K2 之后 IDEA 应该好很多了,不会很卡
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    16
    @qinfengge #12 可以试一下 https://hyperskill.org/tracks/69

    如果要和 Java 混编,用 Spring Boot 的,可以用 https://start.spring.io/

    生成一个 Kotlin 的项目,然后把配置复制一下就行,立马可以跑起来
    hepin1989
    hepin1989
    May 22, 2024
    17
    Java 21 比他 Kotlin 也就少了个 val 等于,不如我 Scala 3 香
    hronro
    hronro
    May 22, 2024 via Android
    18
    有模式匹配了吗
    zywu9726
    zywu9726
    May 22, 2024
    19
    @hepin1989 kotlin 的 null-safe 好用啊 Java21 一样到处都是 null ,虽然 Optional 能解决一部分,但不是语法层面的,写起来还是难受。
    另外还有很重要的一点,kotlin 对于函数式编程的支持要远大于 java ,java 的 lambda 写起来太繁琐,kotlin 的语法糖很甜。
    SoloCompany
    SoloCompany
    May 22, 2024 via iPhone
    20
    因为抱着 checked exception 不肯放弃,java 的 lambda 和 stream api 就是天生残废,不知道 2024 的今天是否能有所改善
    SoloCompany
    SoloCompany
    May 22, 2024 via iPhone
    21
    java 应该引入一个 suppress annotation 让编译器允许 lambda 內抛出的 checked exception 只污染外部方法签名
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    22
    @hepin1989 #17 Kotlin 之于 Java ,最大的好处还是 Null safety ,从语言层面去解决这个问题。

    @hronro #18 具体指的是什么?

    @SoloCompany #20 Java 的 lambda 和 steam 更像是语法糖
    stdying
    stdying
    May 22, 2024
    23
    @hepin1989 Scala3 还有项目用吗
    zhady009
    zhady009
    May 22, 2024 via iPhone
    24
    @fu82581983 扩展函数、重载操作符、DSL 、主构造函数、参数默认值、灵活好用的线程操作 API 等等 反正我是一点不想写 Java 了
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    25
    @zhady009 #24 有人问我 Kotlin 比 Java 语法上哪里好,我一下子还想不起来,你说的这些都是优势,而且比 Java 的类型推导也更强大
    lonenol
    lonenol
    May 22, 2024
    26
    @fu82581983 我比较喜欢的是 1. 集合相关的操作,完爆 stream 2. 扩展函数 3. 字符串模版, 虽然 jdk21 也引入了字符串模版的预览版,不过论好用,差了 kotlin 八条街
    tangqiu0205
    tangqiu0205
    May 22, 2024
    27
    @qinfengge #12 JB 家的 Ktor 也可以看看,https://ktor.io/
    tuokamuta
    tuokamuta
    May 22, 2024
    28
    我 Scala 好羡慕他们有有钱爹啊

    Tips: Scala 3.5.0-RC 发布了!!!
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    29
    @tuokamuta #28 哈哈,有两个爹
    luoshuimumu
    luoshuimumu
    May 22, 2024
    30
    官方支持归支持 但是你们真的会用 kotlin 写 spring 吗??上生产的那种
    zhywang
    zhywang
    May 22, 2024
    31
    上次用 kotlin 写后端已经是 5 年前了,我的评价是 kotlin 就是加足了语法糖的 java ,齁甜
    fuhanfeng
    fuhanfeng
    OP
    May 22, 2024
    32
    @lonenol #26 Kotlin 给人的感觉更现代,更符合人的直觉。

    @luoshuimumu #30 https://www.v2ex.com/t/1025262 参考这个帖子,用的人还是不少的,不过 Kotlin 在移动端使用比例大,服务端的确很少

    @zhywang #31 语法特性的确很多,新出来的语言除了 Go ,其它语言也差不多,包括 Rust 特性非常多,不过日常编码其实用得不多,但是用到的时候会觉得比较优雅
    lonenol
    lonenol
    May 22, 2024
    33
    @luoshuimumu 我们已经上了,体验良好,不过是混用,希望写 Java 的继续写 Java
    Jirajine
    Jirajine
    May 22, 2024
    34
    @kuanat kotlin 就别想 LSP 了,jb 为了卖自家的 IDE 不可能提供支持。
    kuanat
    kuanat
    May 22, 2024
    35
    @Jirajine #34

    官方早就说过不想做 LSP 了,之前我试了一段时间那个第三方做的 LSP ,差得还是有点远。所以我说希望 LSP 跟 IDE 能跟上,达到八成水平,支持我用 neovim/VS Code + LSP 就很满意了。这个事情上有得选是第一步。
    cutiechi
    cutiechi
    May 22, 2024
    36
    Loserzhu
    Loserzhu
    May 22, 2024
    37
    @superchijinpeng 不会是新区那边的某达科技吧?做安防 监控 视讯的
    luoshuimumu
    luoshuimumu
    May 23, 2024
    38
    @lonenol #33 新项目还是老项目呢?我这边的 java 的也是觉得没有特别切过去的理由

    @superchijinpeng created 4 months ago ,新项目? java 占比这么低是没有复用公司现有的 java 脚手架之类的?
    @fu82581983 #32 确实移动端用的多,我的移动端朋友也有少数不会 kotlin 的,依旧混得很好=。=
    cutiechi
    cutiechi
    May 23, 2024
    39
    @Loserzhu 不是
    cutiechi
    cutiechi
    May 23, 2024
    40
    @luoshuimumu #38 随便截了一个项目, 21 年开始 all in kt 了
    abc612008
    abc612008
    May 23, 2024 via Android❤️2
    41
    Kotlin 是我用过的语法上最优雅的语言,我觉得在这方面吊打 java 是没啥问题的。
    98b984275a6b4591
    98b984275a6b4591
    May 23, 2024
    42
    @superchijinpeng 贵司还招人吗😂
    boris1993Jr
    boris1993Jr
    May 23, 2024 via iPhone
    43
    我上家公司 StubHub 就在用 Kotlin 写后端,这是一家工作体验非常好的公司
    可惜,上海整个办公室全被裁了😭
    fuhanfeng
    fuhanfeng
    OP
    May 23, 2024
    44
    @abc612008 #41 是的,而且我觉得整个语言设计风格很统一,算是后起之秀的优势

    @boris1993Jr #43 我还专门从 BOSS 上搜了一下“Kotlin 后端”,寥寥无几,最多也只是 Java 后端里有个标签是 Kotlin ,主要还是 Android 开发
    Jirajine
    Jirajine
    May 23, 2024
    45
    @kuanat 是的,kotlin 只能用 jb 自家的 ide 是最大的缺点,被迫用多个 IDE ,每个都有不同的配置/插件/快捷键是很糟糕的体验。
    qviqvi
    qviqvi
    May 23, 2024
    46
    start.spring.io 生成的 kotlin 项目不用 kotlin sdk 也能运行,是不是就不用按照 sdk 了?
    netabare
    netabare
    May 23, 2024 via Android
    47
    终于更新大版本了,希望之后可以看到一些语言上的更新
    fuhanfeng
    fuhanfeng
    OP
    May 23, 2024
    48
    @qviqvi 是的,不用单独装 kotlin sdk ,IDEA 自带,如果是编译也会通过 kotlin 插件编译成字节码

    @netabare 语言特性应该得等到 2.1.0 之后了,不过其实特性已经足够多了,编译器能更快,开发体验会更好
    netabare
    netabare
    May 25, 2024 via Android
    49
    @fu82581983 主要是 when 语句,在 Java 实装了模式匹配的现在,显得有点过时了。直接影响就是某些算法到现在都只能用 visitor 模式来写,非常不方便。

    真要说的话 Kotlin 的语法确实设计的非常合理也很精简,不仔细想甚至想不出有啥非常欠缺的功能。像是??=这种语法糖其实也不是那么重要。
    Belmode
    Belmode
    Jun 29, 2024
    50
    本来还以为 2.0 能上这个几个功能的
    Static extensions
    Collection literals
    Name-based destructuring
    Context receivers
    Explicit fields

    感觉有点遗憾了,不知道后面哪个版本才能上线
    aisonren
    aisonren
    Aug 8, 2024
    51
    怎么觉得 kotlin 有一点点像 C#
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4860 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 140ms · UTC 06:58 · PVG 14:58 · LAX 22:58 · JFK 01:58
    ♥ Do have faith in what you're doing.