當(dāng)談到 Android 應(yīng)用程序開發(fā)時,哪種編程語言會首先出現(xiàn)在你的腦海呢?我猜你會立即想到 Java,畢竟大多數(shù)的 Android 應(yīng)用程序都是用 Java開發(fā)的。
但自從在兩年前的谷歌 I/O 大會推出 Kotlin 以來,如今的 Kotlin 也在 Android 應(yīng)用程序開發(fā)領(lǐng)域中占據(jù)一席之地。
Kotlin 是什么呢?它的前景到底如何呢?
Kotlin
Kotlin 是靜態(tài)類型的開源編程語言,可以有效地運行在 Java虛擬機(JVM)上。Kotlin 由 JetBrains 開發(fā),并得到谷歌的強力支持。
在最近的 Jexenter 調(diào)查中,Kotlin 在最熱門的技術(shù)發(fā)展趨勢榜單上高居第六位。App brain 最新的統(tǒng)計數(shù)據(jù)顯示,Kotlin 語言在 2018 年的頂級應(yīng)用程序中占據(jù)了25.30%的市場份額,占新應(yīng)用程序安裝量的40.76%。 如今Pivotal、Atlassian、Pinterest、Evernote 和 Uber 等商業(yè)巨頭都在使用 Kotlin進行 Android 應(yīng)用程序開發(fā)。
Kotlin 的優(yōu)點
效率極高
Kotlin 語法簡潔直觀,編寫和部署程序所需的代碼量更少,時間也更短,大大提高了開發(fā)團隊的開發(fā)效率。因此,開發(fā)者可以快速開發(fā)出 Android 應(yīng)用。
能夠調(diào)用 Java 代碼
該功能不僅讓開發(fā)者受益,對于擁有大量 Java 代碼庫的公司來說也是利好。
易于維護
Kotlin 得到多種 IDE 的有力支撐,比如 Android studio 等,這方便了開發(fā)者對代碼的維護。
可靠
最新版的 Kotlin 兼容之前所有老版本,這解決了 Android 開發(fā)人員最大的痛點:需要處理多個版本。
簡單易學(xué)
由于它不需要依賴太多移動應(yīng)用程序開發(fā)的背景知識,開發(fā)者可以更輕松地上手學(xué)習(xí) Kotlin。
Android Studio 支持
Android Studio 提供多種擴展工具的有力支持,開發(fā)人員可以同時使用這兩種語言。
Kotlin 的缺點
編譯速度緩慢
很多開發(fā)者都提到 Kotlin 代碼編譯速度的飄忽不定,有時候它編譯得很快,有時候又很慢。
社區(qū)支持力度有限
Kotlin 開發(fā)者社區(qū)規(guī)模比較小,因此其提供的學(xué)習(xí)資源有限,開發(fā)者將面臨很多疑問無法解答的局面。
開發(fā)人員稀缺
Kotlin 的開發(fā)人員數(shù)量比較少,因此用 Kotlin 開發(fā)的熱門 Android 應(yīng)用數(shù)量有限。
Java
Java 被認(rèn)為是開發(fā)應(yīng)用程序最好的編程語言之一,2018年12月的 TIOBE 指數(shù)顯示 Java 在編程語言排行榜中高居第一。
Java 相比 Kotlin 的優(yōu)勢
可移植性
Java 幾乎可以在任何系統(tǒng)上運行,因此Java 編寫出大部分 Android 應(yīng)用程序。
龐大的社區(qū)
借助 GitHub 和 Stack Overflow 等大型技術(shù)社區(qū),開發(fā)人員差不多可以從中獲得所有關(guān)于 Java 代碼問題的解決方案。
跨平臺
Java 不僅限于 Android 應(yīng)用程序開發(fā),也支持跨平臺應(yīng)用程序開發(fā)。
豐富的資源
Android 開發(fā)者可以借助 Java 豐富的庫和 SDK 來提升自己的開發(fā)效率。
Java 的短板
運行速度緩慢
與其他語言相比,Java 運行需要更多的內(nèi)存和速度要慢得多。
笨重
和其他語言相比,如果要實現(xiàn)相同的功能,Java 所需的代碼量更多。這不僅耗費更多的開發(fā)時間,也更容易出現(xiàn)Bug。
Java 與 Kotlin 對比
Java | Kotlin |
靜態(tài)成員 | 字符串模板 |
非類的原始類型 | 單例 |
非私有域 | 空安全 |
通配符類型 | 擴展函數(shù) |
檢查異常 | 智能 Casts |