Kotlin现在支持新平台:这对开发者意味着什么?
JetBrains团队持续积极发展Kotlin生态系统,使其成为编程领域最灵活、最现代的语言之一。在最新版本中,开发者宣布支持新平台——WebAssembly (Wasm),并已进入稳定阶段。这对于所有使用Kotlin Multiplatform (KMP) 并希望编写一次代码、随处运行(从服务器和移动设备到浏览器和边缘设备)的开发者来说,是一个关键事件。
为什么选择WebAssembly?
WebAssembly是一种低级二进制格式,在浏览器中以接近原生的速度执行。此前Kotlin已支持编译为JavaScript,但Wasm开辟了新的可能性:
- 性能: 编译为Wasm的Kotlin代码运行速度比类似的JS包快1.5–2倍,尤其是在计算密集型任务(图形、数据处理、游戏)中。
- 安全性: Wasm在隔离的沙箱中运行,降低了漏洞风险。
- 通用性: Wasm受所有现代浏览器(Chrome、Firefox、Safari、Edge)以及服务器环境(WASI)和物联网设备支持。
它是如何工作的?
现在,在Kotlin项目中,您可以在build.gradle.kts文件中指定目标wasmJs或wasmWasi:
kotlin { wasmJs { browser { } } wasmWasi { nodejs { } }}编译后,您将获得一个.wasm文件,可以将其连接到HTML页面或在支持WASI的环境中运行。重要提示:与DOM和浏览器API的交互使用标准Kotlin/Wasm库,该库与Kotlin/JS完全兼容。
这给开发者带来了什么?
- 统一的Web和原生技术栈: 现在可以用Kotlin编写业务逻辑,并在Android、iOS、服务器(JVM)和Web客户端(Wasm)之间复用。
- 项目快速启动: 无需学习TypeScript或Rust即可实现高性能Web开发——只需掌握Kotlin。
- 简化DevOps: 一种语言、一个构建系统(Gradle)和一套代码适用于所有平台。
使用示例
假设您正在编写一个处理大型JSON文件的库。使用Wasm,它将在浏览器中执行,而不会出现JavaScript常见的延迟。此外,Kotlin/Wasm支持协程和序列化(kotlinx.serialization),使代码简洁且安全。
何时尝试?
对Wasm的支持已在Kotlin 2.1.0及更高版本中可用。JetBrains建议从小处着手:将非UI相关模块(API客户端、验证器、加密)迁移到Wasm。未来计划全面支持Compose Multiplatform for Wasm,从而能够在Kotlin中创建完整的Web应用程序。
结论
将WebAssembly添加到受支持平台列表不仅仅是又一次更新。这是朝着使Kotlin成为多平台开发首选语言迈出的一步。现在,您拥有了一个结合原生代码性能和通用性的工具。