Kotlin 1.3 正式釋出:Coroutine 『畢業』、Kotlin/Native 達成 1.0 Beta 等

bennyhuo發表於2018-10-30

Kotlin 1.3 在今天正式釋出,伴隨而來的還有一系列框架、構建工具和學習資料~

我們致力於將 Kotlin 打造成一個適用於不同場景,各種規模以及多個平臺的優秀工具。在 Kotlin 1.3 當中,Coroutine 終於『畢業』了,非同步非阻塞程式碼的可讀性更高,且更易於維護。可擴充套件性更是如此唾手可得!同時 Kotlin/Native 也隨著該版本的釋出達到了 1.0Beta。跨平臺開發已登陸所有被支援的平臺,在跨平臺框架的幫助下, Android 和 iOS 之間共享業務邏輯,服務端與前端、移動端共享邏輯,都將變得易如反掌。

1_3_banner_dark

社群和生態

今年,Kotlin 的應用率出現了史無前例的增長。從 2018年1月開始,約 150 萬使用者使用 Kotlin 編寫程式,這個數字高於去年的兩倍。StackOverflow 和 Slack 上的活躍度也令人十分驚喜,感謝大家這些年的大力支援和幫助!

我們也非常高興能看到 Kotlin 生態的快速成長和日益成熟。Kotlin 與 Google Cloud PlatformSpring Framework 以及 Gradle 的關係非同一般,更別提被官方指定的 Android 『頭等艙』地位。開源社群也創造出了許多優秀的『輪子』,例如 RxKotlinmockito-kotlinTornadoFXKodeinΛ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 提供了一系列跨平臺框架包括 HTTPserialization 和 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

相關文章