1. 程式人生 > >Kotlin 一統天下?Kotlin/Native 開始支援 iOS 和 Web 開發

Kotlin 一統天下?Kotlin/Native 開始支援 iOS 和 Web 開發

KotlinConf 大會宣佈了 Kotlin 1.2 RC 版,並宣佈 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 ”的聲音從未停止過。Realm 公司調查報告給出的預測表示,“到 2018 年底,在 Android 開發領域,Kotlin 將超越 Java,成為開發 Android 應用的第一語言。”