

Kotlin/Native 技术预览版本: Kotlin 不再依赖 JVM
本文翻译自:https://blog.jetbrains.com/kotlin/2017/04/kotlinnative-tech-preview-kotlin-without-a-vm/
我们很高兴宣布发布Kotlin/Navtive 的第一个技术预览版本。使用它可以直接编译为机器码,可以直接执行,不再依赖任何虚拟机。
虽然还不是正式版本, 不过你已经可以使用, 并且在这里查看源码 https://github.com/JetBrains/kotlin-native/, 编译器在Apache 2 OSS 协议下开源。
使命( Mission )
Kotlin/Native 能让Kotlin 编写更多的应用程序。从后端服务,到Web端,再到移动客户端。 能更多的在不同端共用代码。
我们对于平台间代码复用的愿景如下: 可以以平台无关的方式在Kotlin中编写整个模块,并在任何支持的平台编译它们(目前支持这些平台Kotlin/JVM,Kotlin/JS和即将推出的Kotlin/Native) 。我们称这些通用模块。公共模块的一部分可能需要一个平台特定的实现,可以为每个平台单独开发。通用模块为所有客户端提供通用API,但其他(特定的平台)模块可以扩展此API,以在其平台上提供一些独有的功能。
需要注意是,我们不打算在Kotlin/Native或Kotlin/JS上运行任意的Kotlin/JVM程序。这相当于实现另一个JVM,这对于runtime来说是很多工作和很多限制。我们将以另一种方式:为所有平台提供通用语言,同时通过与平台代码的无缝操作来创建通用的库。
技术 (Technology)
Kotlin/Native使用LLVM编译器的基础架构来生成机器代码。 在这个预览版本中,我们支持以下目标平台:
- Mac OS X 10.10及更高版本(x86-64)
- x86-64 Ubuntu Linux(14.04,16.04及更高版本),其他Linux版本也可以正常工作
- Apple iOS(arm64),在MacOS X上交叉编译
- Raspberry Pi,在Linux上交叉编译
只要LLVM支持的平台,可以相对容易地添加。 我们将来可能会支持更多的平台。
像往常一样,互操作性是我们的首要任务之一,Kotlin / Native可以有效地调用C函数并将数据传递给它们或者从它们获取数据。 你可以在构建时从C头文件生成Kotlin绑定,并获得对目标平台原生的任何API的进行快速的类型安全调用。 请参阅这里的详细说明。
内存管理 (Memory management)
Kotlin/Native旨在为不同的平台提供不同的内存管理解决方案。 例如,在将来,为服务器/桌面平台配置跟踪GC可能是有意义的,而ARC在iOS上更有意义。 某些平台可能只需要手动内存管理,并获得一个更小的Kotlin/Native runtime。
此技术预览功能具有自动参考计数,顶部采用循环收集器,但最终的内存管理解决方案在此时尚未知。
当前局限性
如上所述,Kotlin/Native是远未完成的,所以这个技术预览有一些限制,将在以后慢慢解决:
- 没有执行性能优化,所以基准测试Kotlin / Native在这一点上是没有意义的。
- 标准库和反思支持还远未完成,稍后会添加更多的API。
- 查看更多在发行版本说明中
未来的计划
我们目前正处理Kotlin/Native的核心技术,它与所有目标平台(编译器,core runtime 和库)是一样的。 作为未来可能要实现的,我们正在考虑以下可能的使用情况:
- iOS应用程序(和Android复用代码)
- 嵌入式系统/ IoT(例如,Arduino)
- 数据分析与科学计算
- Server-side 和Microservices(低可用性可执行文件,利用协同程序的功能)
- 游戏开发
如何尝试
我们已经准备好了两个平台的编译器,示例和文档:Mac和iOS以及Linux和Raspberry Pi。
Recommend
相关搜索关键词
- 网络安全攻防技术实战
- youtube music client for android, ios and web built with react native
- Cloud Native Go: Building Reliable Services in Unreliable Environments
- Youtube Music client for Android, iOS and Web built with React Native
- react native
- react native弋
- React native App Development
- Youtube+Music+client+for+Android,+iOS+and+Web+built+with+React+Native
- youtube+music+client+for+android,+ios+and+web+built+with+react+native
- React+native+App+Development
- Cloud+Native+Go:+Building+Reliable+Services+in+Unreliable+Environments
- cloud native go: building reliable services in unreliable environments
- Food Recipe App using React Native Reanimated 3.0 and TailwindCSS
Recent search keywords
- Website Design Company Sydney
- 01878074300
- License plate
- Crdroid android 12.1 custom recovery
- Crdroid android 12.1 orangefox recovery ew
- Crdroid android 12.1 orangefox recovery
- Babu marma
- charger barril
- switch
- usbc c
- 公主日记
- Mame ching
- 里菜
- ipx-776
- 陈奕迅
- 斯巴达克斯
- 冰与火之歌
- 亚洲
- 色戒
- secret level
- 芭蕾女杀手
- 芭蕾复仇曲
- 死侍与金刚狼
- 毒液3
- 毒液
- 新妈妈
- 字幕库
- 异形
- 红雀
- 异世界舅舅
- 急诊室的故事
- 寿司
- 异次元骇客
- Notting Hill
- 黄石
- 名侦探柯南
- AND559
- Yellowstone S02
- geographical aspects of cyber crime
- Forced Nightmare
- ABP-168
- justvisiting
- 守法公民
- gexp-64
- 狮子王
- Poison.Ivy.The.New.Seduction.1997.UNRATED.1080p.BluRay.x265-RARBG
- 张国荣2000年热情演唱会
- lucy.2014
- Lucy.2014.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.Atmos.7.1-FGT
- lucy
- 超体
- 胆大党 / Dandadan - 10
- 锦衣夜行
- 黑吃黑
- banshee
- In the Realm Of the Senses
- 海洋奇缘2
- 日子
- The Invasion 2007
- obsidian
- 雪国
- 寮國
- 星期天的人们
- 星期天的人
- 全领域异常解决室
- 射精執行官
- ABP984
- 984
- apb-984
- The.Expendables.2
- R3字幕组
- 纸牌屋
- booty shorts
- 周荣华
- 喋血双雄
- baptise kempf
- 我来自潮州
- Getting Started with Rust on a Raspberry Pi Pico
- Nail charms
- blooket global
- stefanzweifel.dev
- weak
- dim screen
- creatie
- figma
- Jons
- Antique cross
- How to Use the PostgreSQL Date Data Type
- 巴黎陷落
- ac8257
- hacks
- kali linux vitual images
- 10003
- JCAC
- mapboxgl
- sjh7742
- Certified Mechanical
- CustomerID
- 行高
- wichary