Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发

局长
 局长
发布于 2017年11月04日
收藏 60

首届官方举办的 Kotlin 专题会议 KotlinConf 于昨天正式开幕,来自世界各地约 1200 名与会者齐聚旧金山,在这场盛大的 KotlinConf 大会主题演讲中,Kotlin 的首席语言设计师 Andrey Breslav 公布了一系列与 Kotlin 紧密相关的重大发展成果,我们不妨关注一下 ——

Kotlin 1.2 RC

首先宣布了 Kotlin 1.2 RC 版(即 1.2 首个候选发行版)。该版本引入了一系列新功能,包括对多平台项目的实验性支持 —— 允许开发者在针对 JVM 和 JavaScript 的模块之间共享代码,以及多项对语言方面的改进 —— 包括支持在注释中使用数组字面量。更多关于 1.2 版本新功能的内容,点此查看

此外,值得关注的就是协程这个特性了。虽然协程仍然被标记为实验性状态,但官方特意说明了这里“实验性”代表的含义。官方表示协程已经完全准备好用于生产环境,他们也已使用协程进行开发,而且也没发现在使用当中出现任何重大问题。之所以仍保持实验性状态,是为了能够对 Kotlin 继续进行设计迭代。根据目前的计划,Kotlin 1.3 将会删除协程的实验性状态。

Kotlin/Native 对 iOS 开发的支持

另外一个重大消息就是 Kotlin/Native 已支持用于开发 iOS 应用,这也将是 Kotlin/Native 0.4 的特性之一。虽然对 iOS 开发的支持仍处于早期阶段,但确实已经实现了,这是在所有平台上使用 Kotlin 进行开发的重要一步。

官方还特意展示了利用 Kotlin/Native 开发的两款应用(Spinner app (GitHub)、KotlinConf app (GitHub)),它们都可以运行于 iOS 和 Android 平台。Android 和 iOS 平台共享了不少代码,其中包括大多数图形处理、声音播放和用户输入响应代码。

两款应用都已开源,你可以将它们作为模板,仅使用 Kotlin 构建自己的跨平台移动应用。点此可了解其中一款应用。

IDE 对 Kotlin/Native 的支持

Kotlin/Native 也将迎来 IDE 的支持。官方表示首先将在 C/C++  IDE CLion 中试用该功能,目前正在发布一个名为 Kotlin/Native plugin for CLion 的插件,该插件支持使用 CMake 作为构建系统。其中包含来自 IntelliJ IDEA 的 Kotlin 插件中全部代码编辑功能集,同时初步支持项目创建、测试与调试等操作。

使用 React 和 Kotlin 创建现代 Web 应用

对于使用 Kotlin 进行 Web 前端开发的开发者,Andrey Breslav 在大会上还公布了另外一个重大消息 —— 正式发布了针对 React.js 的官方 Kotlin 封装工具。此外,还有一个名为 create-react-kotlin-app 的工具集 —— 通过 Kotlin 使用 React.js 创建现代 Web 应用。

使用 create-react-kotlin-app,可让开发者无需费心于项目设置和配置构建这些工作,能专注于快速开始客户端应用开发,同时体会到静态类型语言的优势以及由 JavaScript 生态系统带来的强大配套资源。详情点此了解

未来的发展方向

Kotlin 语言的未来发展方向主要是在 Kotlin 支持的平台之间实现更好、更广泛的代码重用。官方表示计划通过使用同一 API 以扩展全部平台上的可用库资源集合,其中涵盖 I/O、网络、序列化以及日期处理等。

编译器方面,1.3 版本仍集中关注内部层面的变更,而不是外部可见的语言特性。内部的改变能提高性能、改进类型推断、为所有目标平台生成更高效的代码,以及带来更好的 IDE 插件响应能力。

关于 Kotlin/Native

说了这么多,Kotlin/Native 到底是什么?Kotlin/Native 能将 Kotlin 编译成机器码,目前还处于技术预览版阶段,离商用估计还需要至少一年的时间。

Kotlin/Native 不是 Jni 的概念,它不仅仅是要与底层代码比如 C、C++ 交互,而且还要绕过 JVM 直接编译成机器码供系统运行。这说明了什么?Kotlin 准备扔掉 Java 这根拐杖了。

第一次看到 Native 这个名字或许会很自然地想到 Jni,Kotlin 跑在 JVM 上面,使用 Jni 与底层代码交互。不过详细深入研究后可以发现,Kotlin 开发团队的野心不可小觑,Java 诞生这么多年,也没有涉足过编译成除 Java 虚拟机字节码以外的字节码的事情,Kotlin 才这么年轻,不得不说十分具有革命性。

所以如果有人再问你什么是 Kotlin,你应该回答,Kotlin 是一门很厉害的静态语言(而不是之前常说的 Kotlin 是一门运行在 JVM 之上的静态语言)。反正你能想到的,Kotlin 的开发团队都想干。

时钟拨回到五个月前,2017 年 5 月 17 日 Google I/O 大会第一天,谷歌宣布 Kotlin 成为 Android 开发的官方支持语言。有了 JetBrains 和 Google 的背书,自此,对于“Kotlin 即将取代 Java ”的声音从未停止过。上个月,我们也曾发表过一篇题为“Kotlin 将超越 Java 成为 Android 开发的第一语言?”的资讯,文中提到,Realm 公司调查报告给出的预测表示,“到 2018 年底,在 Android 开发领域,Kotlin 将超越 Java,成为开发 Android 应用的第一语言。”

不过,再看回在 KotlinConf 大会中官方已公布的关于 Kotlin 的发展成果和未来方向,Kotlin 的目标可能并不是撼动常青藤 Java 在 Android 开发领域中的地位,他们的征途或许是星辰大海。

参考:https://blog.jetbrains.com/kotlin/2017/11/kotlinconf-keynote-recap/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发
加载中

精彩评论

木木匠
木木匠
步子跨大了容易扯到蛋!
antipro
antipro
感觉IDEA会变成下一个Borland
六月是你的谎言
六月是你的谎言
什么,我大JS不能一统江湖了吗??
eechen
eechen

引用来自“orpherus”的评论

工程体验非常好的语言
很多Java开发者不是黑语言太灵活不好,现在Kotlin灵活了,又说工程体验非常好,哈哈。
xdev
xdev
之前的微软,使用java语言编译成本地windows操作系统二级制程序的java语言J#,后来被Sun干死了就出C#;Kotlin不是java语言,所以不会有这种结局;但是要做到内存自动GC,没个3、5年达不到.net 和java平台水平,看下go的垃圾回收就知道

最新评论(51

stormgens
stormgens
哈哈哈,讨论的好激烈呀。
itzhu
itzhu
就是文档注释麻烦,没快捷键,其他还不错
罗格林
罗格林

引用来自“orpherus”的评论

工程体验非常好的语言

引用来自“eechen”的评论

很多Java开发者不是黑语言太灵活不好,现在Kotlin灵活了,又说工程体验非常好,哈哈。

引用来自“orpherus”的评论

很多Java开发者打算Java 6一直用下去了,本能的排斥新东西。我不排斥新东西,我排斥丑东西,php就是最丑的那个,只有es6之前的js能跟它比烂

引用来自“福嘞娃”的评论

您能忍受java这种罗玉凤,还忍受不了PHP?说的好像你会PHP一样,100行代码,200行XML,比驴脸还长的函数名,就是因为java又长又臭 所以JetBrains 才开发了一个kotlin,别告诉你比JetBrains 还懂java
Java 也在演进, 不应该使用老的眼光来看待. 在最新的 TechEmpower Framework Benchmark 测试中有 26 个 PHP 的框架(包括 raw PHP), 以及 40 个 Java 框架. 我分析了源代码, PHP 的代码紧凑率 (代码行数 / Sigma(测试*测试权重)) 均值为 4.83, Java 的均值则是 3.39, PHP 并没有比 Java 简练太多. 这还是 Java 很多老一代框架拖了后退的情况. 我用 ActFramework 写的测试项目 188 行代码参与了 14 项测试, 代码紧凑率是 15.37, 比最紧凑的 PHP 框架 Silex (100 行代码 6 项测试)要高很多.

TFB 最新测试结果: https://www.techempower.com/benchmarks/previews/round15/
TFB 最新测试项目源码:
* PHP: https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/PHP
* Java: https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Java
* ActFramework: https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Java/act

TFB 数据分析网站: http://tfb-insight.thinking.studio/
orpherus
orpherus

引用来自“orpherus”的评论

工程体验非常好的语言

引用来自“eechen”的评论

很多Java开发者不是黑语言太灵活不好,现在Kotlin灵活了,又说工程体验非常好,哈哈。

引用来自“orpherus”的评论

很多Java开发者打算Java 6一直用下去了,本能的排斥新东西。我不排斥新东西,我排斥丑东西,php就是最丑的那个,只有es6之前的js能跟它比烂

引用来自“福嘞娃”的评论

您能忍受java这种罗玉凤,还忍受不了PHP?说的好像你会PHP一样,100行代码,200行XML,比驴脸还长的函数名,就是因为java又长又臭 所以JetBrains 才开发了一个kotlin,别告诉你比JetBrains 还懂java
我的java项目,一行xml都没有
福嘞娃
福嘞娃

引用来自“orpherus”的评论

工程体验非常好的语言

引用来自“eechen”的评论

很多Java开发者不是黑语言太灵活不好,现在Kotlin灵活了,又说工程体验非常好,哈哈。

引用来自“orpherus”的评论

很多Java开发者打算Java 6一直用下去了,本能的排斥新东西。我不排斥新东西,我排斥丑东西,php就是最丑的那个,只有es6之前的js能跟它比烂
您能忍受java这种罗玉凤,还忍受不了PHP?说的好像你会PHP一样,100行代码,200行XML,比驴脸还长的函数名,就是因为java又长又臭 所以JetBrains 才开发了一个kotlin,别告诉你比JetBrains 还懂java
bobJiao
bobJiao
扔掉Java,估计会失去一大批开发者
土卫十六
土卫十六
谁来给开发团队付工资?这些高手们需要的钱可并不少啊。
hutaishi
hutaishi
人生苦短,我用Kotlin.
izee
izee

引用来自“xdev”的评论

之前的微软,使用java语言编译成本地windows操作系统二级制程序的java语言J#,后来被Sun干死了就出C#;Kotlin不是java语言,所以不会有这种结局;但是要做到内存自动GC,没个3、5年达不到.net 和java平台水平,看下go的垃圾回收就知道
C#比J#出来得更早
kernel64
kernel64
M$早就实现了WP,Android,IOS统一开发,结果就是...
返回顶部
顶部