将 Kotlin 引入 Web

五月 10, 2023
Vivek Sekhar Product Manager

This post describes early experimental work from JetBrains and Google. You can learn more in the session on WebAssembly at Google I/O 2023.

应用开发者想要尽可能地在更多平台上最大限度地吸引用户。到目前为止,该目标意味着开发者需要针对 Android、iOS 和 Web 平台分别构建应用,同时还要构建相应的后端服务器和基础设施来提供支持。

kotlinWeb1

为了减少工作量,一些开发者会使用多平台语言和框架来开发应用的业务逻辑和界面。之前,将这些多平台应用引入 Web 意味着开发者需要将共享应用代码“编译”成可在浏览器中运行且速度较慢的 JavaScript 版本。但开发者不会这样做,他们通常会以 JavaScript 格式重写应用,或者直接引导 Web 用户下载原生移动应用。

得益于名为 WebAssembly GC 的新技术,Web 社区正在开发更出色的替代方案:对新式编程语言的直接 Web 支持。这项新的 Web 功能允许以受支持语言编写的跨平台代码在所有主要浏览器中以接近原生的性能运行。

我们很高兴在 Web 上推出对 Kotlin 新功能的实验性支持,这将让 Android 和 Web 开发者有机会以更快的性能分享新代码。

Web 上的 Kotlin 多平台开发

Kotlin 是一种高效且强大的语言,在排名前 1,000 的 Android 应用中,使用率达到 95%。开发者表示自己在将编程语言切换至 Kotlin 之后,不仅工作变得更加高效,错误的发生次数也降低了

JetBrains 开发的 Kotlin Multiplatform Mobile 和 Compose Multiplatform 框架有助于开发者在他们的 Android 和 iOS 应用之间共享代码。这些框架目前为将 Kotlin 代码编译成 WebAssembly 字节码提供实验性支持。早期实验结果表明,在 Web 上使用 WebAssembly 运行 Kotlin 的速度比使用 JavaScript 快 2 倍。

kotlinWeb2

如需了解更多内容,请参阅 JetBrains 所发布的 K2 编译器 1.18.20 版的版本说明,同时您可也在文档中了解如何在自己的应用中试用 Kotlin/Wasm。

大功告成

将类似 Kotlin 这样的新式移动语言引入 Web 需要解决具有挑战性的技术难题,如多语言垃圾回收和 JavaScript 互操作性。您可以在今年 Google I/O 大会视频会议的全新 WebAssembly 语言会议中了解详情。

在此特别感谢浏览器供应商、相关学者和 W3C WebAssembly 社区小组中不同 Web 服务提供商的开放式协作。如果没有你们,这项工作不可能顺利完成。在接下来的几周,我们将在 V8 博客中分享有关这项创新工作的技术详情。

Looking ahead: Web and Native Development

数十年来,开发者一直梦想着将 Web 打造为一种“通用运行库”,但与此同时,开发者承认 Web 与原生平台之间还具有一定的功能或性能差距。在过去很长一段时间里,开发者不得不在 Web 原生移动应用之间来会切换。

但是,我们希望您可以将 Web 原生体验结合在一起。这不仅能帮您减少工作量,还可以帮助您利用 Web 独一无二的超强能力。

在开放的 Web 生态系统中,您的应用距离吸引新用户仅一键之遥。没有应用商店的阻碍,也没有收益分成影响您的盈利能力,用户可以如同分享网页一样轻松发现并分享您的应用。

跨平台开发的工作效率,原生移动应用的性能,以及 Web 的开放性。这就是为什么我们热爱 WebAssembly。

我们热切期待看到您的下一个杰作!