2017-11-06 08:54:33
首屆官方舉辦的 Kotlin 專題會(huì)議 KotlinConf 于昨天正式開幕,來自世界各地約 1200 名與會(huì)者齊聚舊金山,在這場盛大的 KotlinConf 大會(huì)主題演講中,Kotlin 的首席語言設(shè)計(jì)師 Andrey Breslav 公布了一系列與 Kotlin 緊密相關(guān)的重大發(fā)展成果,我們不妨關(guān)注一下 ——
Kotlin 1.2 RC
首先宣布了 Kotlin 1.2 RC 版(即 1.2 首個(gè)候選發(fā)行版)。該版本引入了一系列新功能,包括對(duì)多平臺(tái)項(xiàng)目的實(shí)驗(yàn)性支持 —— 允許開發(fā)者在針對(duì) JVM 和 JavaScript 的模塊之間共享代碼,以及多項(xiàng)對(duì)語言方面的改進(jìn) —— 包括支持在注釋中使用數(shù)組字面量。更多關(guān)于 1.2 版本新功能的內(nèi)容。
此外,值得關(guān)注的就是協(xié)程這個(gè)特性了。雖然協(xié)程仍然被標(biāo)記為實(shí)驗(yàn)性狀態(tài),但官方特意說明了這里“實(shí)驗(yàn)性”代表的含義。官方表示協(xié)程已經(jīng)完全準(zhǔn)備好用于生產(chǎn)環(huán)境,他們也已使用協(xié)程進(jìn)行開發(fā),而且也沒發(fā)現(xiàn)在使用當(dāng)中出現(xiàn)任何重大問題。之所以仍保持實(shí)驗(yàn)性狀態(tài),是為了能夠?qū)?Kotlin 繼續(xù)進(jìn)行設(shè)計(jì)迭代。根據(jù)目前的計(jì)劃,Kotlin 1.3 將會(huì)刪除協(xié)程的實(shí)驗(yàn)性狀態(tài)。
Kotlin/Native 對(duì) iOS 開發(fā)的支持
另外一個(gè)重大消息就是 Kotlin/Native 已支持用于開發(fā) iOS 應(yīng)用,這也將是 Kotlin/Native 0.4 的特性之一。雖然對(duì) iOS 開發(fā)的支持仍處于早期階段,但確實(shí)已經(jīng)實(shí)現(xiàn)了,這是在所有平臺(tái)上使用 Kotlin 進(jìn)行開發(fā)的重要一步。
官方還特意展示了利用 Kotlin/Native 開發(fā)的兩款應(yīng)用(Spinner app (GitHub)、KotlinConf app (GitHub)),它們都可以運(yùn)行于 iOS 和 Android 平臺(tái)。Android 和 iOS 平臺(tái)共享了不少代碼,其中包括大多數(shù)圖形處理、聲音播放和用戶輸入響應(yīng)代碼。
兩款應(yīng)用都已開源,你可以將它們作為模板,僅使用 Kotlin 構(gòu)建自己的跨平臺(tái)移動(dòng)應(yīng)用。
IDE 對(duì) Kotlin/Native 的支持
Kotlin/Native 也將迎來 IDE 的支持。官方表示首先將在 C/C++ IDE CLion 中試用該功能,目前正在發(fā)布一個(gè)名為 Kotlin/Native plugin for CLion 的插件,該插件支持使用 CMake 作為構(gòu)建系統(tǒng)。其中包含來自 IntelliJ IDEA 的 Kotlin 插件中全部代碼編輯功能集,同時(shí)初步支持項(xiàng)目創(chuàng)建、測試與調(diào)試等操作。
使用 React 和 Kotlin 創(chuàng)建現(xiàn)代 Web 應(yīng)用
對(duì)于使用 Kotlin 進(jìn)行 Web 前端開發(fā)的開發(fā)者,Andrey Breslav 在大會(huì)上還公布了另外一個(gè)重大消息 —— 正式發(fā)布了針對(duì) React.js 的官方 Kotlin 封裝工具。此外,還有一個(gè)名為 create-react-kotlin-app 的工具集 —— 通過 Kotlin 使用 React.js 創(chuàng)建現(xiàn)代 Web 應(yīng)用。
使用 create-react-kotlin-app,可讓開發(fā)者無需費(fèi)心于項(xiàng)目設(shè)置和配置構(gòu)建這些工作,能專注于快速開始客戶端應(yīng)用開發(fā),同時(shí)體會(huì)到靜態(tài)類型語言的優(yōu)勢以及由 JavaScript 生態(tài)系統(tǒng)帶來的強(qiáng)大配套資源。
未來的發(fā)展方向
Kotlin 語言的未來發(fā)展方向主要是在 Kotlin 支持的平臺(tái)之間實(shí)現(xiàn)更好、更廣泛的代碼重用。官方表示計(jì)劃通過使用同一 API 以擴(kuò)展全部平臺(tái)上的可用庫資源集合,其中涵蓋 I/O、網(wǎng)絡(luò)、序列化以及日期處理等。
編譯器方面,1.3 版本仍集中關(guān)注內(nèi)部層面的變更,而不是外部可見的語言特性。內(nèi)部的改變能提高性能、改進(jìn)類型推斷、為所有目標(biāo)平臺(tái)生成更高效的代碼,以及帶來更好的 IDE 插件響應(yīng)能力。
關(guān)于 Kotlin/Native
說了這么多,Kotlin/Native 到底是什么?Kotlin/Native 能將 Kotlin 編譯成機(jī)器碼,目前還處于技術(shù)預(yù)覽版階段,離商用估計(jì)還需要至少一年的時(shí)間。
Kotlin/Native 不是 Jni 的概念,它不僅僅是要與底層代碼比如 C、C++ 交互,而且還要繞過 JVM 直接編譯成機(jī)器碼供系統(tǒng)運(yùn)行。這說明了什么?Kotlin 準(zhǔn)備扔掉 Java 這根拐杖了。
先進(jìn)次看到 Native 這個(gè)名字或許會(huì)很自然地想到 Jni,Kotlin 跑在 JVM 上面,使用 Jni 與底層代碼交互。不過詳細(xì)深入研究后可以發(fā)現(xiàn),Kotlin 開發(fā)團(tuán)隊(duì)的野心不可小覷,Java 誕生這么多年,也沒有涉足過編譯成除 Java 虛擬機(jī)字節(jié)碼以外的字節(jié)碼的事情,Kotlin 才這么年輕,不得不說十分具有革命性。
所以如果有人再問你什么是 Kotlin,你應(yīng)該回答,Kotlin 是一門很厲害的靜態(tài)語言(而不是之前常說的 Kotlin 是一門運(yùn)行在 JVM 之上的靜態(tài)語言)。反正你能想到的,Kotlin 的開發(fā)團(tuán)隊(duì)都想干。
時(shí)鐘撥回到五個(gè)月前,2017 年 5 月 17 日 Google I/O 大會(huì)先進(jìn)天,谷歌宣布 Kotlin 成為 Android 開發(fā)的官方支持語言。有了 JetBrains 和 Google 的背書,自此,對(duì)于“Kotlin 即將取代 Java ”的聲音從未停止過。上個(gè)月,我們也曾發(fā)表過一篇題為“Kotlin 將超越 Java 成為 Android 開發(fā)的先進(jìn)語言?”的資訊,文中提到,Realm 公司調(diào)查報(bào)告給出的預(yù)測表示,“到 2018 年底,在 Android 開發(fā)領(lǐng)域,Kotlin 將超越 Java,成為開發(fā) Android 應(yīng)用的先進(jìn)語言。”
不過,再看回在 KotlinConf 大會(huì)中官方已公布的關(guān)于 Kotlin 的發(fā)展成果和未來方向,Kotlin 的目標(biāo)可能并不是撼動(dòng)常青藤 Java 在 Android 開發(fā)領(lǐng)域中的地位,他們的征途或許是星辰大海。