Android 開發者應該從Java 轉到Kotlin 嗎?谷歌告訴你
今年I/O 大會上,谷歌宣布正在採取的下一個重大步驟是Kotlin-first,Android 開發將越來越多地以Kotlin 為主,許多新的Jetpack API 和功能將首先在Kotlin 中提供。並且當天谷歌就開源了Jetpack Compose 呼應這一戰略。
消息一出來,“Android開發以後是不是只能用Kotlin了”、“Android開發者應該從Java轉到Kotlin嗎”等問題困擾了開發者。對此,谷歌Android Studio技術負責人Jeffrey van Gogh進行了回應。
“我們將在很多方面繼續支持Java 編程語言”,Jeffrey 首先回答了Android 關於Java 支持的問題,同時給出了一張Java 與Kotlin 支持對照表。
表中可以看到,Kotlin 相比Java,在Android 開發中確實獲得了更加重要的地位,“比如在線培訓、樣本,我們首先會在Kotlin 中支持,Java 中將是’盡力而為’。同時,有一些功能,如多平台項目和Jetpack Compose,只會在Kotlin 中提供。”
Jetpack Compose 是一個非捆綁UI 工具包,結合了反應式編程模型和Kotlin 編程語言的簡潔性和易用性,旨在簡化UI 開發。
這樣來看,很顯然在今後一段時間內 Android 開發者並不是只有Kotlin 一種選擇,Java 同樣可用。而至於這是否只是一個過渡,則要聽聽Jeffrey 是如何回答“是否應該從Java 遷移到Kotlin?”這一問題的。
“ 不要把’Kotlin-first’誤解成必須將現有Java開發的Android使用Kotlin重寫 ”,Jeffrey說到,並補充說明谷歌自家的應用也沒有這樣做。
Jeffrey的意思是Java與Kotlin具有極高的互操作性,所以兩者完全可以共存於同一個項目中。“看看Android Studio,它有幾十萬行代碼,其中大約有10%的Kotlin代碼。我們所做的只是使用Kotlin編寫新功能。Kotlin與Java具有很好的互操作性,可以在Kotlin中編寫單個類,其餘部分使用Java編寫,或者使用Kotlin編寫99%的代碼,而剩下的一點點用Java來寫。”
而具體應該繼續使用Java 還是轉到Kotlin,Jeffrey 表示這需要考慮一些因素,比如團隊對於Kotlin 的興趣、Kotlin 的學習曲線之陡峭,還有能不能接受Kotlin 本身相比Java 在開發Android 上的弱點,比如軟件構建過程需要更長的時間,因為Kotlin 編譯器比通用Java 編譯器要慢,以及Kotlin 生成的APK 相對較大。
此外應用開發所處的階段也需要考慮,Jeffrey 表示新項目使用 Kotlin 編寫是更好的選擇。