關鍵詞:Kotlin Newshtml
Kotlin 的發展能夠認爲是正式進入了下一個階段。程序員
有段時間沒有寫文章了。web
今年年末還有些事情要作,所幸大多數都與 Kotlin 有關係,不算耽擱太多。加上現階段你們有相對充足的資料學習 Kotlin,儘管協程以前的資料相對匱乏,我也在年中出版了一本書暫時補齊了這塊兒缺漏,所以我就這麼安慰本身不要壓力太大,以避免腰更加突出,哈哈。面試
不過,官方最近有些消息放出來讓我有些坐不住了。性能優化
1. Kotlin 的發版節奏
過去 Kotlin 的版本節奏一直比較佛系,從 1.0 到 1.1 花了一年多,到 1.2 才半年,到 1.3 又近一年,1.4 卻花了將近兩年。爲何會這樣呢?由於越日後,Kotlin 自身的體系越龐大,想要作點兒什麼的複雜度可想而知的變高,天然版本節奏就沒那麼好把控了。微信
功能優先仍是版本優先?多線程
顯然這個問題在不一樣的發展階段是有不一樣的答案的。項目剛開始,天然須要穩紮穩打,作一個功能就是一個功能,所以能夠說 1.4 及之前的全部版本的迭代計劃都是按照這個思路展開的,功能啥時候作好啥時候上,作很差就 delay。併發
而現現在,框架
Kotlin 通過 1.0 正式發佈異步
1.1 正式支持 JavaScript 並開始試驗協程
1.2 開始試驗多平臺
1.3 正式支持協程並開始了 Native 的 beta,多平臺的生態隨之也開始逐漸展開
1.4 有作了一系列總體的性能優化和提高,編譯器重構也基本完成
能夠說 Kotlin 現階段的基本盤已經造成,當前版本足以長期支撐開發者完成開發工做了。
接下來的工做重點咱們在以前的文章當中就曾經談到,其實就是應用場景的挖掘,開發體驗的優化和提高,以及多平臺的完善和生態的建設。這些大都不算是巨大的語言特性,所以 Kotlin Team 宣佈後面發版半年一次,這意味着 Kotlin 1.5 將在明年春天發佈,規劃的特性實行班車機制,趕得上版本就發佈,趕不上就下一趟。
這樣作好處也是很明顯的,版本的節奏感會給開發者帶來期待,咱們再也不須要猜下一個版本何時來,以及下一個版本會有什麼,由於這些都會很早就公佈;一些細節的改進咱們也不須要苦等好久才能體驗到,由於版本節奏快了,一些小的改進會更快的被呈如今開發者面前。
2. Kotlin 的 Roadmap
我過去想要提早了解 Kotlin 下一步的動態,主要去 Kotlin 的 GitHub 的倉庫和 YouTrack 當中去爬 issue,看你們的討論,這個過程會比較有趣,由於大佬們常常吵架。若是隻是想要消遣,這個方式跟刷知乎也沒什麼兩樣,不過若是是去獲取信息,那就須要本身認認真真的瞎猜了。
再往前的時候,Kotlin Team 還會維護一下 Kotlin 在 GitHub 上開的 Keep 倉庫,不過這個倉庫如今已是一副年久失修的感受了。說來還真是要好好提一下,Kotlin 協程的設計文檔就在 Keep 倉庫當中,雖然感受比較久遠了,但仍是很值得一讀的。
如今好了,官方直接公佈了 Roadmap,這一招配合 Kotlin 的發版節奏的改變,極大的方便了咱們這些吃瓜羣衆。不是想知道 Kotlin 啥時候實現自舉嗎?Kotlin Team 已經在解決這個問題了,不信看這裏:
順便咱們也看到了 Kotlin 編譯器插件的 API 如今尚未排到最高優先級,因此等等吧。
此次 Roadmap 的公佈,仍是有一些比較有趣的點的,例如:
多個 receiver 的函數,可能有些朋友尚未用到過。其實這個特性如今也有辦法來模擬,就是經過隱式 receiver 的方式來實現,但若是可以有專門的語法來支持的,應該還會有更會玩的用法出現。
Kotlin 近期公佈的 Roadmap 見:Kotlin Roadmap(https://kotlinlang.org/roadmap.html),你們能夠本身看看有沒有本身感興趣的內容。
3. KMM 插件
KMM 算是 Kotlin Team 爲多平臺這個重磅特性挖掘的一個重要的應用場景。
畢竟 Kotlin 的用戶大可能是 Android 開發,Android 開發者的老闆們有迫切的但願他手底下的 Android 開發能拿一份工資幹兩人的活,對吧。不只如此,Android 開發也但願本身在市場上更有競爭力,若是 Kotlin 適用場景變多了,那麼本身豈不是就像買了股票同樣跑贏大盤?因此 KMM 簡直就是衆望所歸。
KMM 運行在 iOS 上的實際上就是 Kotlin Native 的代碼,經過 Kotlin MPP 與運行在 Android 上的 Kotlin Jvm 代碼來共享邏輯。最近隨着 Kotlin 1.4 發佈推出的 KMM 插件也支持了在 Android Studio 上直接運行 iOS 應用,啓動 iOS 模擬器,甚至單步調試運行在 iOS 上的 Kotlin Native 代碼的能力。
不過,若是想要將 KMM 直接應用於移動端跨平臺上上,仍是有些問題須要解決的,這主要就是 Kotlin Native 對於 iOS 的支持的問題,例如:
-
Kotlin Native 的併發模型比較嚴格,也正是如此,Kotlin 協程的 Kotlin Native 版本遲遲沒有正式推出多線程版本,在 iOS 上使用 Kotlin 協程目前還受制於所調用的 API 是否自己已經本身支持了異步以及回調的線程切換。 -
Kotlin 目前尚不能像在 Android 上那樣全面替代 Java,從目前以導出 Framework 的方式引入 iOS 工程的作法來看,Swift 和 Objective-C 暫時仍是沒法徹底幹掉的。 -
Kotlin Native 可用的框架目前仍然比較少,若是想要編寫 Kotlin 多平臺的代碼,也須要咱們引入的框架支持 Kotlin 多平臺,例如序列化框架可選的目前主要就是官方的 kotlinx-serialization,時間框架主要也是官方提供的 kotlinx-datetime 等等。
不過這倒也不算什麼大問題,畢竟纔剛剛開始,Kotlin Native 的併發模型的問題以及 Kotlin Native 開發 iOS 的支持問題都在逐漸優化。
至於依賴框架的問題,這偏偏也是 Kotlin 的生存哲學之一,Kotlin 遊走於各個平臺上,一貫是以充分利用所在平臺的優點爲基礎的。咱們且等它把這些平臺的基礎 API 進行統一封裝,以方便咱們實現邏輯層的一致性。
再稍微提一下,KMM 插件儘管支持了不少功能,但對於 iOS 工程卻仍然不能有效支持,這主要體如今對於 Swift、Objective-C 的代碼沒法高亮、調試等問題上,若是須要編輯 SwiftUI 或者其餘使用 Swift 編寫的代碼模塊,仍是須要在 Xcode 當中完成。至於未來會不會支持,這一點目前尚未確切的消息。
4. 小結
Kotlin 1.4 發佈了兩個月,總體反應來看,你們仍是比較平靜的,由於此次確實了 SAM 轉換讓人期待已久之外,別的都不是很意外。不過,從最近發生的這些變化來看,Kotlin 的未來仍是值得期待一下的,至少,它已經找到了本身的路,並開始一步一步走下去了。
最後再提一句,國外疫情肆虐,KotlinConf 今年無法線下開展,這不,也改爲線上了。你們能夠在 Kotlin 1.4 Online Event(https://kotlinlang.org/lp/event-14/) 這個地址找到全部的視頻,內容仍是值得了解一下的。
固然,視頻直接收看可能須要一些操做,後面的話我看看能不能跟官方的小夥伴商量下儘快搬到國內的視頻平臺上。此外,咱們目前也在準備後面結合此次 Kotlin 的 Event 在國內作一些分享,屆時也會經過公衆號發佈具體的安排,請你們留意~
Kotlin 協程對大多數初學者來說都是一個噩夢,即使是有經驗的開發者,對於協程的理解也仍然是懵懵懂懂。若是你們有一樣的問題,不妨閱讀一下個人新書《深刻理解 Kotlin 協程》,完全搞懂 Kotlin 協程最難的知識點。如今正好遇上當當活動,1024程序員節滿 100 減 50,實付滿200元后,使用優惠券【PZJPHY】,可再減40元。至關於160買40的書,趕忙囤書呀~
若是你們想要快速上手 Kotlin 或者想要全面深刻地學習 Kotlin 的相關知識,能夠關注我基於 Kotlin 1.3.50 全新制做的新課,課程初版曾幫助3000多名同窗掌握 Kotlin,此次更新迴歸內容更精彩:
掃描二維碼便可進入課程啦!
Android 工程師也能夠關注下《破解Android高級面試》,這門課涉及內容均非淺嘗輒止,除知識點講解外更注重培養高級工程師意識,目前已經有 1000 多位同窗在學習:
掃描二維碼便可進入課程啦!
- END -本文分享自微信公衆號 - Kotlin(KotlinX)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。