2017 年 5 月 17 日,一年一度開(kāi)發(fā)者盛宴的 Google I/O 大會(huì)第一天,Google 正式宣布了 Kotlin 成為 Android 官方支持的語(yǔ)言。而如今短短 5 個(gè)月過(guò)去,對(duì)于“Kotlin 即將取代 Java ”的消息卻從未停止,那么為什么會(huì)有這樣的預(yù)測(cè)呢?
事實(shí)上,Kotlin 并非是一種新的語(yǔ)言,JetBrains 早在 2011 年就宣布了 Kotlin 項(xiàng)目,但這和已經(jīng) 22 歲的 Java 的相比,還顯得尤為年輕,然而就是因?yàn)?Google 一個(gè)擁抱,使得 Java 工程師以及其他 Android 開(kāi)發(fā)者有了些許的危機(jī)感?還是慶幸呢?
對(duì)于 Kotlin,它是一個(gè)基于 JVM 的編程語(yǔ)言,其主要設(shè)計(jì)目標(biāo)為:
創(chuàng)建一種兼容 Java 的語(yǔ)言;
讓它比 Java 更安全,能夠靜態(tài)檢測(cè)常見(jiàn)的陷阱,如:引用空指針;
讓它比 Java 更簡(jiǎn)潔,通過(guò)支持 variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation 等實(shí)現(xiàn);
讓它比最成熟的競(jìng)爭(zhēng)對(duì)手 Scala 語(yǔ)言更加簡(jiǎn)單。
如今的 Kotlin 的確做到了比 Java 語(yǔ)法更加簡(jiǎn)潔、更安全、更貼近實(shí)際,所需編寫(xiě)的代碼行大概比 Java 少 40%,并支持函數(shù)式編程,同時(shí) Kotlin 與 Java 是可以互譯的,這就為 Java 開(kāi)發(fā)者轉(zhuǎn)為基于 Kotlin 開(kāi)發(fā)提供了一定的便利性。
而關(guān)于傳言的“取代”,近日 Realm 公司的調(diào)查報(bào)告給出預(yù)測(cè),其表示:“到 2018 年底,在 Android 開(kāi)發(fā)領(lǐng)域,Kotlin 將超越 Java,成為開(kāi)發(fā) Android 應(yīng)用的第一語(yǔ)言?!?。
依據(jù)的來(lái)源是,Realm 在調(diào)查了大約十萬(wàn)名活躍的開(kāi)發(fā)者后,發(fā)現(xiàn)在今年 5 月份 Google I/O 大會(huì)之前用 Java 編寫(xiě)的 Android 應(yīng)用中有 20% 正在使用 Kotlin 進(jìn)行重寫(xiě)。他們?cè)诠倬W(wǎng)上公布了調(diào)查結(jié)果,Kotlin 即將改變整個(gè) Android 生態(tài)系統(tǒng)。
當(dāng)然,這些數(shù)據(jù)不是特別適用于廣泛的 Java 開(kāi)發(fā)者群體,Oracle 最近估計(jì)這個(gè)群體有 1200 萬(wàn)人。不過(guò)數(shù)據(jù)表明,Android 生態(tài)系統(tǒng)確實(shí)處于迅速變化之中。
Realm 的數(shù)據(jù)顯示,2016 年 9 月,Kotlin 占 Android 開(kāi)發(fā)的 5.1%,而 Java 的占 94.9%。一年之后,這個(gè)比例變成 Kotlin 升至 14.3%,而 Java 則降為 85.7%。這個(gè)變化相當(dāng)大。
對(duì)此,Realm 的營(yíng)銷(xiāo)副總裁 Paul Kopacki 在接受 IT 外媒 The Register 的電話(huà)采訪(fǎng)時(shí)表示:“自 Google 在 5 月份的 Google I/O 大會(huì)上宣布 Kotlin 成為 Android 領(lǐng)域官方支持的開(kāi)發(fā)語(yǔ)言以來(lái),Kotlin 的使用量完全呈爆炸式增長(zhǎng)。我們認(rèn)為,到明年年底,作為 Android 應(yīng)用開(kāi)發(fā)語(yǔ)言,Kotlin 將會(huì)超越 Java。”他還說(shuō)到,Kotlin 的快速增長(zhǎng)是由于它的現(xiàn)代性。Kotlin 是一門(mén)更現(xiàn)代化的語(yǔ)言,更容易理解,更容易編寫(xiě),抽象性也比 Java 高,而且它在設(shè)計(jì)之初就考慮到了移動(dòng)設(shè)備。
Paul Kopacki 還表示使用 Realm 數(shù)據(jù)庫(kù)的開(kāi)發(fā)者已對(duì)將 Java 代碼轉(zhuǎn)換成 Kotlin 代碼表示出了濃厚的興趣。從 Realm 的調(diào)查結(jié)果可以看到,Kotlin 的人氣在德國(guó)、日本和印度最高,美國(guó)排在第四位。
最后,The Register 聯(lián)系了 Stack Overflow 希望了解有關(guān) Kotlin 的數(shù)據(jù),被告知:Kotlin 確實(shí)越來(lái)越受到追捧,但相比其他語(yǔ)言仍是小眾語(yǔ)言。因此,風(fēng)頭正盛的 Kotlin 想要撼動(dòng)常青藤 Java 在 Android 應(yīng)用中的地位,仍需一定的時(shí)間。
最后針對(duì)于互聯(lián)網(wǎng)公司java程序員涉及到的絕大部分難題我做成了文檔和架構(gòu)視頻資料免費(fèi)分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并發(fā)等架構(gòu)技術(shù)資料),希望能幫助到且找到一個(gè)好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時(shí)間來(lái)學(xué)習(xí),也可以關(guān)注我一下以后會(huì)有更多干貨分享。
聯(lián)系客服