Android 開發究竟是選擇 Java 還是 Kotlin ?Google 說話了[新語言]
Android 開發究竟是選擇 Java 還是 Kotlin ?Google 說話了[新語言]
資料來源:https://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4MA==&mid=2650720410&idx=2&sn=e91ead668caacb1e609615650a4147d5&chksm=bea6b94989d1305ff6e8f868bbd976c7260703975d44fa61204c1958bf33235b07e33731bb69&scene=0&xtrack=1&key=a6e428af7bc20b4e2331d6f09c3ca893ff07d3a8af965cc1788e4432abc567c0dd17beace6d30b403e78e04ae40b8905098227c56640d8e93dab9984834f87ddafe4088baeef3cf14010c803faad3031&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=62060739&lang=zh_TW&pass_ticket=2kYQTWHlGXM0Z5ygXvh8IACrYh654QbbJQL2wOQ7Vk2VeR%2F9%2F0UqAS6FVVSCl2oZ
Google 一直在權衡是否讓它的Android 開發者從使用Java 語言來構建應用程序切換到使用Kotlin 語言。
Google Android Studio 的技術負責人Jeffrey van Gogh 表示,這個問題在Google 發出的“Android 應用程序開發應該優先使用Kotlin”的這份聲明中被提出來了。
但是Android 開發“Kotlin-first”意味著什麼?在今年的Google I/O 大會上,van Gogh 對使用Java 和Kotlin 開發的後果作了詳細地說明。
“當然,我們在很多方面將繼續支持Java 編程語言,”他在出示下面這張表時說道。
“但是,如果你看看其他的地方,比如我們的在線培訓示例,我們將首先使用Kotlin 編程語言,然後我們將"盡力而為(best effort)"地使用Java。當然,還有一些功能,比如多平台項目和Jetpack Compose UI 工具包,這些功能只會用Kotlin 語言提供。”
Google 已經在一系列自己的產品中開始使用Kotlin 語言的這一現實,很好地回答Android 開發者是否應該從Java 切換到Kotlin 這個問題。對於Google 而言,已經開始使用Kotlin 的產品包括Google Drive、Google Home、Nest 和Android SystemUI。
“請不要把“Kotlin-first”理解成你需要用Kotlin 來重新改寫你所有的Java 代碼。這不是我們希望你做的,”他說道,此外,他還補充道,Google 本身也沒有打算用Kotlin重寫現有的所有軟件。
“看看Android Studio,這是成千上萬行的代碼。現在只有10% 的Android Studio 的特定代碼是用Kotlin 寫的。”
“我們採取的做法是,我們只用Kotlin 來編寫新的功能。這是可行的,因為Kotlin 與Java 具有很強的互操作性。你可以用Kotlin 編寫單個類,並將其它所有的類交給Java;或者用Kotlin 編寫99% 的代碼,而將剩餘的部分交給Java。”
他補充說,還需要考慮一些複雜因素,比如說App 開發所處的階段,他說顯然在項目開始的時候就使用Kotlin 來實現新功能更加有意義。
他還說,另一個問題是開發團隊內部對Kotlin 到底有多大的熱情。
“這取決於你的團隊。他們對Kotlin 語言感興趣嗎?他們對採用它有安全感嗎?”他說。
van Gogh同時指出,採用Kotlin也有一些不利因素需要權衡。比如開發人員需要一段時間才能熟悉Kotlin的慣用方法,來編寫出符合規範的代碼。
他說:“Kotlin 語言有很好的特性,更高的生產率和滿意度,但你必須考慮學習曲線,人們需要時間來學習Kotlin 的慣用方法,來編寫出符合規範的代碼。”
“我們看到大多數人在第一周開始寫Kotin 時,他們實際上是在用Kotlin 寫Java 代碼,他們花了三到六個月的時間才真正開始寫符合Kotlin 習慣的代碼。”
他說,由於Kotlin 編譯器通常比使用Java 的速度慢,軟件構建過程也需要更長的時間,不過Google 正在“努力”提升編譯器的速度。
他補充說,當使用Kotlin 時,生成的APK(用於在安卓設備上安裝應用程序的軟件包)也相對較大。
他說,Google 在Android 系統上有“一大堆正在進行的Kotlin 工作”,包括Jetpack Compose 的開發工作、用於Jetpack 的新Kotlin 擴展(KTX)API 的開發工作,正在努力提升最新的1.3.30版Kotlin 中的編譯器速度的構建工作,以及改進工具、文檔和示例代碼的開發工作。