Kotlin 1.3 在今天正式釋出,伴隨而來的還有一系列框架、構建工具和學習資料~
我們致力於將 Kotlin 打造成一個適用於不同場景,各種規模以及多個平臺的優秀工具。在 Kotlin 1.3 當中,Coroutine 終於『畢業』了,非同步非阻塞程式碼的可讀性更高,且更易於維護。可擴充套件性更是如此唾手可得!同時 Kotlin/Native 也隨著該版本的釋出達到了 1.0Beta。跨平臺開發已登陸所有被支援的平臺,在跨平臺框架的幫助下, Android 和 iOS 之間共享業務邏輯,服務端與前端、移動端共享邏輯,都將變得易如反掌。
社群和生態
今年,Kotlin 的應用率出現了史無前例的增長。從 2018年1月開始,約 150 萬使用者使用 Kotlin 編寫程式,這個數字高於去年的兩倍。StackOverflow 和 Slack 上的活躍度也令人十分驚喜,感謝大家這些年的大力支援和幫助!
我們也非常高興能看到 Kotlin 生態的快速成長和日益成熟。Kotlin 與 Google Cloud Platform、Spring Framework 以及 Gradle 的關係非同一般,更別提被官方指定的 Android 『頭等艙』地位。開源社群也創造出了許多優秀的『輪子』,例如 RxKotlin、mockito-kotlin、TornadoFX、Kodein、ΛRROW等等。其他諸如 Square’s Okio 和 LibreOffice 這樣的專案要麼已經遷移到 Kotlin 上,要麼就在遷移的路上。我們非常歡迎大家加入 Kotlin 大家庭,並貢獻出自己的創意和產品!
很多來自 JetBrains 以外的開發者透過 pull request、bug 報告以及各類反饋的形式為 Kotlin 1.3 貢獻了自己的力量,感謝大家為 Kotlin 的成長做出的努力!
Coroutine 穩定釋出
Coroutine 是非阻塞非同步程式的一種現代化的寫法,它可以讓程式更加易於理解和上手。簡單之於切換任務到後臺,複雜之於實現網路協議,它都能完美勝任。kotlinx.coroutines 框架的 1.0 版本也正式釋出,為實現諸如組合、取消協程,異常處理,UI 相關之類的非同步需求提供了堅實的基礎。
詳細請參考kotl.in/coroutines。您也可以在 這裡訂閱我們的 Webinar。
Kotlin/Native Beta
Kotlin/Native 使用 LLVM 將 Kotlin 原始碼編譯成獨立的不依賴任何 VM 的二進位制程式,目前已經支援了非常多的作業系統和 CPU 架構包括 iOS、Linux、Windows、Mac 甚至 WebAssembly,以及嵌入式系統例如 STM32。它支援自動記憶體管理,可以與 C、Objective-C(Swift)互相呼叫,並且可以公開諸如 Core Foundation、POSIX 以及任何你喜歡的 Native 庫的 API。
Kotlin/Native 執行時最佳化了不可變資料,並禁止了線上程間共享任何未受保護且可變的狀態。實際上,在 Kotlin/Native 的併發設計當中,執行緒作為更底層的實現而被更安全可控的 workders 替代。
詳細資料請參考 kotl.in/native。
您也可以在 這裡訂閱我們的 Webinar。
跨平臺專案
橫跨全平臺是 Kotlin 的明確目標,不過在各個平臺間共享程式碼則顯得尤為重要。得益於對 JVM、Android、JavaScript 以及 Native 的支援,Kotlin 可以勝任現在業務系統的所有模組的開發工作,開發者也將在程式碼複用和專業提升上受益匪淺。Kotlin 1.3 在跨平臺特性上取得了很大的進步,儘管該特性仍處於實驗階段。
Kotlin 1.3 提供了一系列跨平臺框架包括 HTTP、serialization 和 coroutines,開發跨平臺專案最簡單的途徑就是直接使用這些『輪子』。當然,您也可以將平臺特有的依賴進行封裝並實現自己的跨平臺框架。
詳細資料請參考 kotlin/native。
您也可以在 這裡訂閱我們的 Webinar。
Kotlin/Native 和跨平臺特性開發工具的支援
Kotlin 1.3為 Kotlin/Native 和跨平臺專案提供了基於開發工具的支援,包括程式碼高亮、補全、跳轉以及重構等功能,這些功能適用於 IntelliJ IDEA Community Edition、IntelliJ IDEA Ultimate 和 Android Studio。我們將持續開發更多高階特性以及整合商業工具。
Ktor 1.0 Beta
Ktor,我們用於連線一切應用的框架,基於協程實現了完整的 HTTP 協議棧,目前已經進入 Beta 階段,您可以在ktor.io獲得更多詳細的資訊。
其他提升
除以上所述更新之外,該版本還包括了以下提升:
- 對 inline classes 實驗性質的支援,以用於效能最佳化和型別安全。
- 對無符號整型的實驗性質的支援,以便於支援位元組層面的操作以及更底層的程式碼。
when
表示式引數支援宣告變數以減少冗餘程式碼。- 引入Contracts以增強對函式呼叫的靜態分析。
- 支援無參主函式入口以提供更簡單的入門體驗。
- 提供Sequence 偵錯程式 令懶序列的運算圖形化。
- Scratch 檔案、REPL 以及 對指令碼支援的最佳化令指令碼和程式碼片段的開發體驗更加平滑。
- 標準庫擴充套件到 Kotlin/Native, 最佳化了對 Kotlin/JS 的支援,全平臺支援了 Random 以及其他最佳化和 bug 修復。
- Kotlin/JS 支援實驗性質的增量編譯。
詳細資訊請參見 新特性。更新日誌請參見 這裡。相容性指南參見這裡。
KotlinConf
KotlinConf 2018 的所有影片我們都已經發布,這其中覆蓋了 1.3 的所有熱門話題。請收看主題演講以及其他議題的回放:
在 JetBrains TV 收看更多 KotlinConf 2018 的影片
學習 Kotlin
我們致力於讓 Kotlin 的學習簡單而有趣。除了這裡的 大量學習資料 以外,您也可以重點關注以下內容:
- Svetlana Isakova 和 Andrey Breslav 主講的新課將在 Coursera上線。
- 《Atomic Kotlin》,Bruce Eckel 和 Svetlana Isakova 為初學者編著的書籍已經開放預覽。
- 全薪的play.kotl.in mini-web-IDE 包括 Koans,案例以及可嵌入的程式碼片段。
- EduTools 外掛可以幫助大家在 IDE 當中輕鬆學習 Kotlin。
- 來自世界各地的結構提供了認證 Kotlin 教學。
The Kotlin 1.3 webinars 為所有人提供了一個良好的起點。
如何更新
一如既往地,您可以在play.kotl.in上直接體驗最新版 Kotlin。
- Maven, Gradle 和 npm: 修改編譯器和標準庫的版本號為
1.3.0
。文件請參考這裡。 - IntelliJ IDEA: 2018.3 內建了 Kotlin 1.3,其他版本則需要將 Kotlin 外掛版本更新到 1.3。
- Android Studio: 透過外掛管理器更新外掛到 1.3 即可。
- Eclipse: 透過Marketplace更新外掛到 1.3。
- 命令列編譯器 可以從 Github release 頁面下載。
Let’s Kotlin!
翻譯自:Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more