Kotlin 一統天下?Kotlin/Native 支持 iOS 和 Web 開發
首屆官方舉辦的 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/