谷歌再推Kotlin:代碼量比Java 減少80%
上週,谷歌剛剛推出免費的Kotlin和Android在線課程,教開發者使用Kotlin構建Android應用。很快,Google Home團隊也現身說法,通過自身經歷,展示了Kotlin開發的好處。
Google Home應用程序可用來連接並管理各類智能家居設備。與不少受谷歌“Kotlin-first”倡議影響的應用相同,Google Home也選擇將Kotlin納入其代碼庫。截至今年六月,該應用中約有30%的代碼採用Kotlin編寫,今後的新功能也被鼓勵用Kotlin進行開發。
Google Home團隊提到,與Kotlin配合使用的是同樣被谷歌推行的Jetpack開源UI工具包,它結合了反應式編程模型和Kotlin編程語言的簡潔性和易用性,旨在簡化UI開發。
儘管目前只有1/3 代碼遷移到了 Kotlin,其高效和簡潔的特性已使 Google Home 團隊感受頗深。他們以數據類和Parcelize 插件的使用為例證:在Java 中由126 行手寫代碼組成的類,在Kotlin 中僅用23 行就能夠表示——代碼量減少了80%。此外,Kotlin 中一些函數方法還簡化了許多嵌套循環和過濾檢查。
另一方面,Kotlin 的可空性(nullability)也得到了讚許。依舊是與Java 相比,Google Home 團隊指出,“Java 中對可空性註釋的用法不一致時,可能會導致遺漏一些bug”。而採用Kotlin 以來,Google Home 的NullPointerExceptions 減少了33%,這恰是Google Play 控制台上最常見的崩潰類型,由此帶來的崩潰數量減少也許能夠顯著改善用戶體驗。
Kotlin編程語言2011年由JetBrains推出,2012年開源,2017年成為Android官方開發語言,並於2019年成為 Andoid開發官方首選語言。
從初始支持Kotlin再到“Kotlin-first”,谷歌一直在對其進行多方位扶持,先後推出了 Kotlin免費在線課程和使用Kotlin構建Android應用的課程;同時不斷完善著相關生態,比如今年四月開源了 gRPC-Kotlin/JVM,讓開發者可以在Kotlin項目中更方便地使用gRPC。
隨著谷歌的極力推行,Kotlin的關注度一路水漲船高,最新的JVM生態報告顯示,Kotlin已成為第二受歡迎的JVM語言。Android開發專家沈哲在接受開源中國的採訪時曾提到,國內一些公司也開始使用Kotlin開發Android項目,“越來越多的開發者會選擇Kotlin作為原生App的首選開發語言”。
作為一門JVM語言,一門兼容甚至被認為要取代Java的語言,Kotlin的出場也往往伴隨著與Java的比較。谷歌甚至推出了從Java遷移到Kotlin的官方指南。部分Android開發者仍在猶豫是否要轉到Kotlin,有一些人已經從Java遷移到Kotlin又遷回了Java。在一年前 Dice 網站發布的調查中,85%的受訪者幾乎一邊倒地選擇仍舊使用Java來構建Android應用程序。
但其實在谷歌工程師看來,並沒有必要將二者完全劃清界限。Android Studio技術負責人 Jeffrey van Gogh 就曾講過,Java與Kotlin具有極高的互操作性,所以兩者完全可以共存於同一個項目中。目前如Google Home這樣的谷歌自家應用,不少都採用這種融合式做法,Kotlin更多地被用來編寫新功能。
那麼,再回到“Kotlin 還是Java” 這個也許已經令Android 開發者感到厭煩的問題上,定論顯然並不存在,關鍵是選擇最適合的方式。