五家調研機構出具報告:Kotlin的快速增長是否皆出自對Java市場的分割?

趙鈺瑩發表於2018-07-11

轉到2018年,Kotlin的熱度似乎不及當初被谷歌官宣時那麼高。除了單純與Java的較量,我們也看到了國內很多網際網路公司在Kotlin方面的實踐(比如,美團《Kotlin程式碼檢查在美團的探索與實踐》),除了媒體一貫喜歡的炒作造勢,調研資料似乎更足以說清楚目前Kotlin的地位以及與Java程式語言的關係。


五家調研機構出具報告:Kotlin的快速增長是否皆出自對Java市場的分割?


五家調研機構出具報告:Kotlin的快速增長是否在以Java為代價?


移動應用程式開發工具和平臺提供商Realm在報告中指出,截至2017年5月谷歌官宣之後,Kotlin的採用率從1.0版本時的0%增長到4.28%;同年9月,Kotlin的使用率已增加至7.54%,而Java則在同一時間從50.66%下滑至46.23%。


專注軟體開發者的行業分析公司Redmonk也報導了Kotlin的強勁增長。報告顯示,到2017年第三季度,Kotlin在Redmonk的100強語言列表中從第65位升至第46位。到2018年1月,Kotlin已經躍升至第27位,成為Swift之後發展最快的語言。要知道,Redmonk只統計同時出現在Github和StackOverflow且都有一定變化趨勢可尋的程式語言。


同時,根據對搜尋引擎結果的分析,TIOBE在2018年6月最受歡迎的100種程式語言列表中,Kotlin排在第49位。TIOBE常務董事Paul Jansen表示,通常程式語言的採納曲線是一個比較緩慢的過程,但Kotlin的被採納速度相當快。


在基於谷歌搜尋引擎資料調研的PYPL榜單中,Kotlin排在了第18位,Java排名第2。有趣的是,在2017年6月至2018年6月期間,Kotlin的流行度增加了0.6%,而Java則下降了相同的數量。具體來說,該清單顯示,Kotlin在2018年6月的市場份額為0.93%,而Java為22.45%。


最近,專門為開發者提供工具和雲基礎設施的新興公司Pusher公佈了對2,744名開發人員的調查結果,其中60%的開發者在使用Kotlin研發工作和個人專案。


儘管,所有跡象似乎都表明Kotlin的快速增長是以消耗Java為代價,但Gartner Research副總裁Mark Driver表示,Kotlin開發人員的數量其實非常少。在這個時間節點,我們並看不到Kotlin任何一項指標有超過Java的可能,所有資料都在合理範圍內。


五家調研機構出具報告:Kotlin的快速增長是否皆出自對Java市場的分割?


Kotlin新版本釋出,我們如何客觀評價這門程式語言?


Android Studio可支援提供更穩定的開發人員體驗,使Kotlin具有超越其他語言的獨特優勢。由於Android Studio直接提供Kotlin語言,因此啟動Kotlin專案只需點選即可,不需要使用任何外掛。此外,除錯Kotlin程式碼與除錯Java程式碼所耗時間相同。


Kotlin最適合的使用人群就是不會用Java的Android開發人員,聽起來似乎很矛盾,但確實有部分人群在進入Android時並不被預先要求可熟練掌握Java,他們也可能是一個iOS開發者,主要掌握Objective-C或Swift語言,臨時被要求編寫Android版本,畢竟開箱即用的Kotlin很方便。


對Java開發者而言,Kotlin可以與Java互操作,應用團隊可以按照自己的進度遷移,而不需要重寫整個應用程式。互操作性使Kotlin程式碼能夠轉換為Java程式碼,反之亦然,也可以在同一個應用程式中組合Kotlin和Java程式碼。但是,在進行轉換之前,開發人員需要閱讀簡短的互操作指南,從長遠來看這將節省時間。整個過程不存在不相容的風險,因為是在JVM上執行。


Kotlin應用程式的效能與Java相當,但Kotlin構件與Java所花費的時間不同,具體取決於所執行的構件型別。例如,單純的Kotlin構件可能比Java花費更長時間,而增量Kotlin構件實際上可能更快。但是,構建時間的差異並不足以影響Kotlin的使用。


此外,開發人員也喜歡Kotlin的簡潔語法,因為它減少了出錯的可能性。開發人員可以用更少的程式碼完成相同的事情,大大降低了程式碼出錯率,因此它更有可能降低維護程式碼的成本,但這只是小改進,與蘋果公司對Swift的做法類似。


Kotlin的null安全性也很有吸引力,軟體分析公司OverOps發現,在10億個Java記錄錯誤中,97%的錯誤是由唯一性引起的,其中最常見的是NullPointerException錯誤,經過對1,000個應用程式的研究證實,這些錯誤影響了70%的生產環境。


在2018年的Google I / O活動中,谷歌釋出了Android Jetpack,這是最新一代的Android元件。Jetpack提供向後相容性和即時更新到更大元件集的能力,因此開發人員可以更快,更便宜地構建更高質量的應用程式,它還負責管理後臺任務、導航和生命週期。


Android Jetpack中包含Android KTX,這是Kotlin的特有元件,旨在改善開發人員體驗。 谷歌還提高了Android Runtime(ART)效能,因此Kotlin應用可以更快執行。程式碼片段已新增到官方文件中,Google釋出了Kotlin版本的API參考文件。該公司還在Udacity上推出了Kotlin Bootcamp,它現在Google Developers Expert Program中擁有Kotlin專業化。


與此同時,語言本身也在不斷髮展。Kotlin 1.2是當前最新版本,它支援JVM和JavaScript之間的程式碼重用,因此開發人員只需要編寫一次應用程式業務邏輯,便可在後端、瀏覽器前端和Android移動應用程式中重複使用。V1.2的編譯速度比v1.1快25%。Kotlin 1.1允許開發人員將Kotlin程式碼編譯為在瀏覽器中執行的Javascript,次要版本包括對Gradle構建快取(v1.2.2)支援、錯誤修復、JUnit 5支援等。


即便Kotlin相比Java有很多好處,但並不能直接判定為其本身具有多大優勢,因為它是在總結了Java多年發展經驗的基礎上開發出來的,如果今天后開發出來的是Java同樣可以擁有更加簡潔的編碼流程以及更優的效能。如果說Kotlin會取代Java一定是危言聳聽,但Kotlin確實在分割一小部分Java市場。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2157683/,如需轉載,請註明出處,否則將追究法律責任。

相關文章