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
Recent search keywords
- dallas.lu
- 知情同意的
- checking system health gpt
- checking system health
- iptv smart player
- LLM
- MLC
- mlc llm
- k4811_oh_s217101
- 8257 logo
- logo
- Oneplus 8t
- Kernel
- tab 4
- JCAC10003-OC2-V1.0.071R5-230413_0757
- SCSI
- incentivize
- Ergonomic Frozen Shirt
- Producer
- 4th generation
- parsing
- Berkshire
- Multi-tiered
- copy
- teal
- Hills
- card
- Wooden
- Northern Mariana Islands
- deliver
- syndicate
- Money Market Account
- Assurance
- Representative
- compress
- Iowa
- Cheese
- solid state
- extend
- withdrawal
- Taka
- Planner
- attitude
- impactful
- copying
- Savings Account
- Tuna
- Creative
- Indian Rupee Ngultrum
- District
- Fantastic
- Personal Loan Account
- functionalities
- Gorgeous
- enhance
- Noord-Holland
- Utrecht
- Kuwaiti Dinar
- Bedfordshire
- Baby
- Soap
- paradigms
- bypass
- USB
- Costa Rica
- Analyst
- Tactics
- 因研究計畫
- indea
- api管理系统源码
- dissertation conclusion
- 社工库源码
- version 2023.10.19.20
- mabbs.github.io
- mabbs
- 旧电脑
- old-pc
- interleaving in sap ewm
- marketplace
- gpt
- 学习强国
- tlink5 dingwei 5.3.47
- reverse
- 海角社区上车
- https://dumps.tadiphone.dev/dumps/alps/8227l_demo/-/archive/JCAC10003-OC2-V1.0.97R3-231023_1114/8227
- JCAC1000c23-OC2-V1.0.97R3-2310
- mmraz-110
- @@dpxb7/wp-content/plugins/mm-plugin/inc/vendors/vendor/phpunit/phpunit/build.xml
- how to hack blooket
- appl
- pd runner hack
- kali+linux+vivtualbox
- 字节跳动+工具
- excel+工具
- korea+iptv&page=3))+AND+4631=4631--+DBbs
- korea+iptv&page=3")+and+4631=4631--+cnsm
- korea+iptv&page=3")+and+7466=3986--+cfvp
- ios+month+year+picker
- source+link:+https://paper.seebug.org
- main+page