棄 Java 而使用 Kotlin 的你後悔了嗎?| 2018 Kotlin 調查報告
自從 2011 年釋出以來,Kotlin 憑藉強大的功能在開發者中的歡迎程度與日俱增。且在一年前,Google 宣佈 Kotlin 正式成為 Android 官方開發語言,由此引發了從 Java 遷移到 Kotlin 的一股熱潮,根據 StackOverflow 上超過 10 萬名受訪者的調查顯示,Kotlin 成為第二大受歡迎的語言,第一名是 Mozilla 開發的系統程式語言 Rust 。
的無奈感嘆,那麼 Kotlin 現狀究竟如何?
對此,國外一家名為 Pusher 的公司在今年 1 月至 3 月期間基於 Kotlin 對世界範圍內的 2744 名 IT 人員進行了深入地調查,並於昨日正式釋出了《The State of Kotlin 2018》報告,分享瞭如今 Kotlin 的使用情況,以及生態系統的發展趨勢。
接下來,將為大家一一介紹。
年輕的開發者更鐘愛 Kotlin
超過 70% 的受訪者是僱員,11% 是企業家和開發商。
他們主要從事技術工作,其次是金融、教育和數字代理。Kotlin 的應用領域中保險和政府最為保守。
超過一半的受訪者表示其作為開發人員工作的時間不到 5 年,2-5 年工作經驗的佔 33.9%,1-2 年的佔 15.2%。本報告受訪者的工作經驗比參加 StackOverflow 調查的開發者要少一些。然而,“開發者數量每 5 年翻一番”的傳統理念依舊存在,未來 Kotlin 的開發者只會越來越多。
企業中使用 Kotlin 的開發者人數差異較大,大約三分之一的人表示,他們公司裡 2-5 人使用 Kotlin 進行開發。這大致與開發 Android App 的團隊規模相匹配。
Kotlin 使用率迅猛增長,但不是開發者的首選語言
Kotlin 的增長率每年都在翻倍,到了 2015 年,其使用量首次出現大幅飆升,從上一年的 1.4% 激增到 7.7%。對於增長的原因,想必和同年間 Android 大神 Jake Wharton 釋出的文件(https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8)有關,該文件旨在主張使用 Kotlin 進行開發,並建立了一些流行的 Android 開源庫。這就導致了很多的 Android 開發者效仿,並使用了 Kotlin 開始建立專案。
而 2017 年 5 月,Google 宣佈 Kotlin 正式支援 Android,由此看出,大量 Android 開發者開始使用 Kotlin,佔比達到了 46.8%。這其中不乏有因 Google 品牌吸引而投身於 Kotlin 開發的學生,據調查顯示,早期,Kotlin 主要由經驗豐富的專業開發者使用,如今大批年輕的開發者及學生開始湧入。
不過,目前 Java 仍佔主要地位,同時也有很多開發者使用其他的程式語言,諸如 JavaScript、Python、Swift、C# 等等,因此大多數的開發者並沒有將 Kotlin 作為其第一程式語言。
Kotlin 更多的是用於個人專案,而非企業專案
受訪者中,有超過 60% 的開發者正在工作專案中使用 Kotlin。相比之下,有三分之一的受訪學生將其用於工作和輔助專案。 也就是說,他們中有近一半的人表示打算在未來開始使用它。
據調查顯示,官方網站是 Kotlin 入門的首選資源,其次不少開發者通過 YouTube 和 Udemy 的課程、線上大會等方式進行學習。
Kotlin 更多的是被用於私人專案,而非工作專案中。
Android 是 Kotlin 的殺手級應用。當涉及到後端應用程式時,經驗豐富的開發者才會使用 Kotlin,而新手和學生一般不會選擇。
最愛的特性
對於每位 Android 開發者來說,只要使用過 Java 的 NullPointerException 的特性都會喜歡上 Kotlin 的安全效能,其次分別是擴充套件函式、Java 的互操作性。有 77% 的受訪者表示,Kotlin 擴充套件功能往往使程式碼更具可讀性,尤其是在函式程式設計環境中或建立 DSL 時。
此外,超過 87% 的受訪者將現有的 Java 程式碼轉換成 Kotlin 程式碼。不過也有超過四分之一的開發者在將 Java 遷移到 Kotlin 之後因技術以及企業等原因後悔了。其中技術原因主要包括 Kotlin 的反射和生成程式碼工具,以及以下等原因:
跨平臺 Kotlin 正在復甦,但速度較為緩慢。只有約四分之一的受訪者提到他們運用了一些跨平臺支援,大多數選擇 Kotlin / Native,其次是 KotlinJS。
對於 Kotlin 的一些新功能及特性,如協同程式(Coroutines)、KotlinC、DSL 等也只有少數的受訪者才會使用,他們表示畢竟這些功能目前還不完善。
Kotlin 的未來
Kotlin 整體的發展速度還是讓不少開發者為之興奮。同時鑑於 JetBrains 和Google 的大力支援,以及開發者社群的熱捧,我們也相信它會越來越流行。但如今主要的問題是,它在未來是否會成功地入主 Android 以外的應用?
如今 JetBrains 正在大肆推動 Kotlin 的多平臺應用,它是否會得到大家的認可也仍未可知。但是想要它成為 Web、iOS 以及後端開發者新的標準,想必也還需要數年的時間來擴充套件。根據調查報告顯示,越多越多的開發者邁出了 Kotlin 程式設計的第一步,也可以在面向物件、函式、指令碼之間穿梭。這就足以說明,Kotlin 正在滲入到整個開發的生態系統中。
《The State of Kotlin 2018》:https://pusher.com/state-of-kotlin
“徵稿啦”
CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。
如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯絡 CSDN 投稿,聯絡方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱([email protected])。
————— 推薦閱讀 —————
相關推薦
棄 Java 而使用 Kotlin 的你後悔了嗎?| 2018 Kotlin 調查報告
自從 2011 年釋出以來,Kotlin 憑藉強大的功能在開發者中的歡迎程度與日俱增。且在一年前
更新微信 7.0,你後悔了嗎?
更新微信,你後悔了嗎? 名字裡帶“更新”的林更新,發微博說他後悔了! 四川文藝男孩·搜狗王小川,則發了個詩一般的“科技朋友圈”: “一鳴用腦,小龍用心。 前者相信資料與演算法的價值,讓位元組跳動; 後者相信人的意義,因你看見所以存在。 他沒有講的是:當我看見你
Java並發編程有多難?這幾個核心技術你掌握了嗎?
周期 回收 dex 而後 語言 交互 例子 implement 資源 本文主要內容索引 1、Java線程 2、線程模型 3、Java線程池 4、Future(各種Future) 5、Fork/Join框架 6、volatile 7、CAS(原子操作) 8、AQS(並發同步框
一線互聯網常見的 14 個 Java 面試題,你顫抖了嗎程序員
don 讀取 需要 內存模型 對象 str 資源 阻塞 問題 跳槽不算頻繁,但參加過不少面試(電話面試、face to face 面試),面過大 / 小公司、互聯網 / 傳統軟件公司,面糊過(眼高手低,缺乏實戰經驗,掛掉),也面過人,所幸未因失敗而氣餒,在此過程中不斷查缺補
一線網際網路常見的14個Java面試題,你顫抖了嗎程式設計師
跳槽不算頻繁,但參加過不少面試(電話面試、face to face面試),面過大/小公司、網際網路/傳統軟體公司,麵糊過(眼高手低,缺乏實戰經驗,掛掉),也面過人,所幸未因失敗而氣餒,在此過程中不斷查缺補漏,養成了踏實、追本溯源、持續改進的習慣,特此將自己經歷過、構思過的一些面試題記錄下來,如果答案有問題
這幾道JAVA基礎題曾作為大型網際網路公司面試題, 這些你都會了嗎?
這幾道題,挺有意思的,來..... 結果都執行過 一(這道題目考察的是對Integer的理解): 二(這道理題是考察常量池,堆記憶體,String的理解,還有intern的用法得當可以適當提升效能): 小編是一個有著5年工作經驗的java程式設計師,對於java,
#Java基礎知識之面試題總結,快來看看你會了嗎!
什麼是Java程式的主類?應用程式和小程式的主類有何不同? 一個程式中可以有多個類,但只能有一個類是主類。在Java應用程式中,這個主類是指包含main()方法的類。而在Java小程式中,這個主類是一個繼承自系統類JApplet或Applet的子類。應用程式的主
Java高階面試題和答案解析,看看你都會了嗎?
List和Set比較,各自的子類比較 對比一:Arraylist與LinkedList的比較 1、ArrayList是實現了基於動態陣列的資料結構,因為地址連續,一旦資料儲存好了,查詢操作效率會比較高(在記憶體裡是連著放的)。 2、因為地址連續, ArrayLi
Java環境的正確配置你會了嗎?
在很多新手入門學習Java的小夥伴都會面臨到Java環境的配置,今天小編帶大家來配置Java的環境配置,首先到官網下載Jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
想面試Java架構師?這些最基本的東西你都會了嗎?
系統架構師是一個既需要掌控整體又需要洞悉區域性瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。一個架構師得需要足夠的想像力,能把各種目標需求進行不同維度的擴充套件,為目標客戶提供更為全面的需求清單。 崗位職責: 1、負責技術架構設計,重構、優化現有的技術架構,根據業務規劃,制定
java中最常見的幾種執行時異常,你get了嗎?
NullPointerException (空指標異常) ClassCastException (型別強制轉換異常) NumberFormatException (數字格式異常) NegativeArraySizeException (陣列大小為負數異常) SecurityException
java中最常見的幾種運行時異常,你get了嗎?
exception arr ofb arrays for 空指針異常 ava nds bound NullPointerException (空指針異常) ClassCastException (類型強制轉換異常) NumberFormatException (數字格
Java程式設計師你實現了你去年的計劃了嗎?
前言 又到了一年一度的年終總結了,相信大家估計也開始寫總結,我也不例外。本篇主要是講述去年所定下目標的完成情況和人生感悟以及明年的目標。 去年目標以及完成情況 去年目標 這裡先列舉一下去年定的目標: 閱讀2本以上的技術相關書籍,並作出相應的實踐;
最近 5 年 133 個 Java 面試題,你都會了嗎?
Java 面試隨著時間的改變而改變。在過去的日子裡,當你知道 String 和 StringBuilder 的區別(String 型別和 StringBuffer 型別的主要效能區別其實在於 String 是不可變的物件。因此在每次對 String 型別進行改變的時候其實都等
一線互聯網常見的14個Java面試題,你顫抖了嗎程序員
協調 應該 場景 rup bat tile 結束 加載機制 指令重排 跳槽不算頻繁,但參加過不少面試(電話面試、face to face面試),面過大/小公司、互聯網/傳統軟件公司,面糊過(眼高手低,缺乏實戰經驗,掛掉),也面過人,所幸未因失敗而氣餒,在此過程中不斷查缺補漏
您掌握這些Java中高級面試題了嗎?考驗你技術的時候到了。
mysql 為什麽 mvc 數組 基礎 代碼 string ren buffer 一. 基礎知識: 1)集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet);2)HashMap的底層實現,之後
CentOS7防火墻(Firewalld),你關了嗎?
targe ref net blank aliyun 官方 wal http edge 阿裏雲官方教程: https://help.aliyun.com/knowledge_detail/41317.html 百度參考的牛人教程(推薦): http://www.111c
Unity 的 這些坑你遇到了嗎?(一)
~~ md5 歷史 clas 史記 轉換 版本 就會 log 為了苦逼的程序員們少加點班,分享一些在項目開發過程中遇到的一些坑 我使用的環境是unity 5.6.3p3 版本管理是 git (1) 雖然大家都知道 unity 用的序列化方式是 yaml(讀音90% 的會讀
【全民充電節】APP又上新福利,你發現了嗎?
充電節 優惠 APP 安卓 終於熬過了寒冬,盼到了溫暖的3月~天氣漸漸暖和了了,小夥伴們學習的熱情也蹭蹭蹭的高漲起來了呢! 趕著這波學習的熱潮,火熱熱的“全民充電節”也開始啦~戳我去活動會場>>> 同時我們“51CTO學院”的APP也悄然發生了些變化喲~細心的同學發現了沒?
三生三世,十裏挑花‘’大數據愛我你夠了嗎?
大數據現在大數據發展越來越火,趨勢日益紅遍半邊天。 就像現在很受廣大青年熱愛的手機遊戲‘’王者榮耀‘’,‘’絕地求生‘’等遊戲,但是大家都知道,遊戲往往都是盛極一時,到後來石沈大海。。。。那麽,我們在大數據發展的很多小夥伴會不會也有一下兩個擔心: NO.1當前大數據行業真的是人才稀缺嗎?回答:對!未來人才