2018年開發者生態體系狀態調查報告(第一部分)

在2018年年初,jetbrains公司通過調查6000名開發者來了解開發者的生態狀態,最近,調查結果終于整理完畢,以下是得出的結果。
一、 日常工作
1.1)流行語言:今年,使用最受歡迎、最常用與最有前途的語言相較去年沒有變化,最受歡迎的語言是Java,最常使用的是JavaScript,最有前途的是GO。
在經常使用的語言一項中,JavaScript占64%,HTML/CSS占55%,Java占51%,its extension占47%, Python占41%,GO占12%位居第12。同時,有趣的是,its extension與第六名language(29%)這兩門語言,在調查的6000名開發者中,幾乎沒有人打算在將來學習他們。
在打算在將來學習的語言一項中,GO占16%,Python和Kotlin并列第二,占13%,TypeScript占8%,swift位列第五占7%。
另外,有38%的開發者表示沒有計劃學習新的語言。
1.2)常用語言:在主要使用的開發語言中,前三分別是Java,JavaScript和Python。
1.3)常用工具:在開發中最經常使用的工具中,最受歡迎的是IDE(e.g. eclipse,inteliJ IDE),他們有82%的使用者,第二受歡迎的是代碼協作工具(e.g. GitHub,GitLab,Bitbucket),有77%的使用者,第三是一些輕量的桌面級編輯器(e.g. Sublime Text,Atom,Visual Studio Code,Vim),問題追蹤工具(e.g. Jira, YouTrack)和持續集成(CI)或持續交付(CD)工具(e.g. Jenkins, TeamCity)并列第四,有44%的使用者。
在這部分問卷中,大部分開發者(82%)堅持使用IDE,只用69%的開發者只是用輕量級編輯器;大部分會自定義自己的開發工具,然而還有12%的人不會自定義自己的開發工具;云端IDE仍然不受開發者青睞,只有8%的開發者會偶爾使用;此外,大部分的開發者表示喜歡暗色主題,有77%的受訪者都把自己的開發者工具調整成了暗色主題。
1.4)熱門語言:在與報告1.1中提到的語言學習計劃相對的,這一部分在過去一年中有學習新語言的受訪者的學習內容。Python以30%的占比位居第一,JavaScript以落后1%的劣勢位居第二,29%,第三名是Java,21%,GO語言第四名占比19%,TypeScript和Kotlin都以16%的比例并列第五。
1.5)服務器選用:關于在哪里托管個人或公司開發的數據庫和/或服務和/或應用程序的問題中,55%的受訪者表示在個人電腦或工作站上部署,54%的受訪者則在專用的服務器上部署,59%受訪者會在云服務器部署,13%的則表示在其他服務器上部署或不愿意回答。人們計劃從自托管和內部部署解決方案轉向主要的云提供商,如亞馬遜網絡服務,谷歌云平臺和微軟Azure。
在未來12個月內,私人和本地服務器的份額將分別下降6%和11%,而亞馬遜網絡服務,谷歌云平臺和微軟Azure的份額將分別增長8%,7%和 分別為3%。
1.6)單元測試:在單元測試方面,59%的受訪者會寫單元測試,11%受訪者會使用單元測試但是不會編寫,30%的受訪者則不會使用單元測試。
1.7)開源態度:在對開源項目的貢獻一項中,僅有6%的受訪者全職為開源項目工作,其中只有三分之一的人獲得了報酬,12%的受訪者會經常為開源項目貢獻(至少一月一次),20%則偶爾做一次貢獻(一年內會有幾次),22%的受訪者只為開源項目做過少數貢獻。在剩下的40%的人群中,只有極少部分(總量的3%)不想為開源項目貢獻。
1.8)常用操作系統:在操作系統方面,Windows系統占據主流,有62%的用戶表示在使用,Unix/Linux第二,有49%,macOS第三,44%,剩下有1%的使用其他操作系統。
1.9)移動端平臺:在移動端開發人員中,有86%的人員開發Android,iOS有48%,額外的,還有3%的開發其他移動設備系統的人員,其中,有35%的開發者同時會開發Android和iOS。
1.10)移動端開發方式:72%的受訪者會使用原生的工具,43%的受訪者會使用跨平臺技術或框架開發,其中,有15%的受訪者同時兩種都會使用。


二、 娛樂項目
2.1)音樂:在受訪者中有77%的人會在開發時聽音樂,在這77%中,喜歡聽電子音樂的最多,有37%的比例;第二是流行樂,32%;第三是搖滾,29%;經典音樂比搖滾低1%,以29%居第四;第五則是重金屬音樂,28%。在和職位關聯后,我們發現開發人員,系統分析師,產品經理,團隊負責人,QA工程師,數據分析師,教師/教師/導師以及DevOps工程師在編碼時都傾向于選擇電子音樂,DBA,UX / UI設計師和架構師大多喜歡Rock,首席信息官/首席技術官/首席執行官,技術支持和業務分析師更喜歡古典音樂。
2.2)睡眠時間:出乎意料的,大部分受訪者都表示至少能睡眠7個小時以上。有53%的受訪者能睡眠7-8個小時,有6%的能睡眠8個小時以上;有35%的能睡眠5-6個小時,只有6%的受訪者能睡眠5個小時以下。
2.3)常用開發地點:有64%的受訪者最常在辦公室開發,31%的喜歡在家開發,在咖啡店或者聯合開發中心的有2%,剩下1%表示在其他地點開發。在項目中獨立工作的開發人員通常在家工作,而在團隊中工作的開發人員則在辦公室工作。
2.4)業余時間安排:有85%的受訪者表示會在業余時間繼續開發,剩下的則表示不會。
2.5)智能機情況:有69%的受訪者使用安卓手機,iOS則為41%,有2%的受訪者不使用智能機,有1%的使用黑莓或者其他手機。
2.6)提神飲品:57%的人偏向于咖啡而33%的人喜歡茶,剩下10%的人表示都不喜歡。

注1:在調查中,由于有復合性的存在,因此,結果的百分比合計大于100%,為節省時間,將只展示前五以及有代表性的數據。
注2:報告會分多成多個部分,此為第一部分。
Ref: https://www.jetbrains.com/res...
在此感謝jetbrains

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277053.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277053.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277053.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向對象三大基本特性,五大基本原則

透切理解面向對象三大基本特性是理解面向對象五大基本原則的基礎. 三大特性是:封裝,繼承,多態 所謂封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。封裝是…

人事薪資管理系統V1.00功能簡介(適用于工廠)c#.net+SQL Server2000

1. 統計管理1.1 工廠員工綜合統計1.2 按月統計生產訂單總金額1.3 按月統計員工工資1.4 按月統計員工計件工資1.5 員工生日排行榜2. 人事管理2.1 增加員工信息2.2 上傳或更換員工照片2.3 確認員工基本薪資(含包月,計件,計…

運維工程師主要工作是做什么?

總結兩句話: 1、保障業務長期穩定運行(如網站服務器、游戲服務器等)。 2、保障數據安全可靠(如用戶名密碼、游戲數據、博客文章、交易數據等)。 由這兩句話推演運維工程師要學些什么? 一、保障業務長期穩定…

python3.7 安裝cx_Freeze

遇到的問題簡單描述: 1,直接 pip install cz_freeze 安裝失敗 2,pip cx_Free-*.*.*.tar.gz 安裝失敗 解決辦法: 1,下載 cx_Freeze-5.1.1-cp37-cp37m-win_amd64.whl (地址:https://www.lfd.uci…

SiteMesh參考

SiteMesh參考 作者:kongxx (kongxxgmail.com)安裝 首先從sitemesh下載安裝包,這里使用的是2.2.1版本。 創建一個Web應用程序,這里我創建一個名為myapp的Web應用程序; 復制sitemesh-2.2.1.jar文件到{myapp}/WEB-INF/lib目錄下&am…

精通Spring Boot——第十一篇:使用自定義配置

2019獨角獸企業重金招聘Python工程師標準>>> 今天這篇文章給大家介紹自定義配置的兩種方式 第一式: 使用ConfigurationProperties,且看代碼 package com.developlee.customconfig.config;import org.springframework.boot.context.properties…

MySQL 高可用架構在業務層面的應用分析

MySQL 高可用架構在業務層面的應用分析 http://mp.weixin.qq.com/s?__bizMzAxNjAzMTQyMA&mid208312443&idx1&snf9a0d03dd9a1cf3b3575c0241291e421&scene22&srcidseLU5tmZumKLzwVBIHzM#rd http://mp.weixin.qq.com/s?__bizMzAxNjAzMTQyMA&mid20831244…

使用Expresso學習.net正則表達式

什么是RE?想必各位大大在做文件查找的時侯都有使用過萬用字符”*”,比如說想查找在Windows目錄下所有的Word文件時,你可能就會用”*.doc”這樣的方式來做查找,因為”*”所代表的是任意的字符。RE所做的就是類似這樣的功能,但其功…

數據結構與算法學習筆記之 從0編號的數組

數據結構與算法學習筆記之 從0編號的數組前言數組看似簡單,但掌握精髓的卻沒有多少;他既是編程語言中的數據類型,又是最基礎的數據結構;一個小問題:為什么數據要從0開始編號,而不是 從1開始呢?正…

JAVA四種基本排序總結

JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進,SHELL排序法是 插入法的改進.所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法一 插入法:遍歷排序集合,每到一個元素時,都要將這個元素與所…

Windows 故障轉移+Hyper-V 虛機自動遷移高 可用

Windows 故障轉移Hyper-V 虛機自動遷移高 可用 Windows 故障轉移Hyper-V 虛機自動遷移高... 1一、系統原理... 31.1 高效率的 VMbus 架構... 31.2 完美支持 Linux 系統... 4二、架構拓樸... 52.1 網絡及系統架構拓樸... 52.2 域結構拓樸... 5三、實驗資源列表... 63.1 網絡設備…

MSSqlServer基礎學習01

1.新建登陸用戶名,須賦予數據庫訪問權限方可訪問已有的數據庫,可以參考如下圖片轉載于:https://www.cnblogs.com/MyVision/p/11242417.html

js,java時間處理

1.JS獲取時間格式為“yyyy-MM-dd HH:mm:ss”的字符串 function getTimeStr(){var myDate new Date();var year myDate.getFullYear(); //獲取完整的年份(4位,1970-????)var month myDate.getMonth(); //獲取當前月份(0-11,0代表1月)month month > 9 ? month : &quo…

框架和模式

1.什么是模式? 模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。 Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題&#xff0c…

人月神話第三章

對于效率和概念的完整性來說,最好由少數干練的人員來設計和開發, 而對于大型系統, 則需要大量的人手, 以使產品能在時間上滿足要求。 文章參照外科手術隊伍對10個人的編程隊伍進行專業化的角色分工。并為如何運作做出詳細說明。…

評上了7月份的Microsoft MVP

昨天晚上覺得困,于是躺到床上去休息了一會兒,沒想到醒來以后就發現了一封信,告訴我當選了7月份的MVP(我們的Cat Chen也同樣當選了,園子里肯定還有其它朋友)。自從去年9月份登陸博客園以來,寫技術…

javascript刪除數組,索引出現問題解決辦法。

var data [{ isRemove: 0, name: "項目1" },{ isRemove: 1, name: "項目2" },{ isRemove: 1, name: "項目3" },{ isRemove: 0, name: "項目4" },{ isRemove: 0, name: "項目5" },{ isRemove: 0, name: "項目6" }…

知識點 - 學習過程中積累

優化數據庫查詢訪問&#xff1a;使用存儲過程&#xff0c;利用連接池打開關閉數據庫&#xff1b;操作數據是&#xff0c;盡量避免裝箱&#xff1b;數據庫中為<NULL>的字段&#xff0c;sql語句中用is null讀取&#xff1b;開發復合控件的主要步驟&#xff1a;1&#xff09…

Mircosoft 正式把Windows Mobile改名為Windows Phone,你會因此而購買Windows Phone嗎?

簡介 本文講述Windows Phone改名事件&#xff0c;以及Windows Phone發展歷史和今后發展策略的想法。 事件 今天下班的時候看報紙&#xff0c;有一段新聞關于昨天(2009年10月6日)Mircosoft正式使用Windows Phone這個名字。我去到原先Windows Mobile的主頁&#xff0c;已經全部由…

【課后服務】20181022切蛋糕

權當拋磚引玉吧&#xff0c;掌握記搜的方法最重要。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,k; bool book[21][21]; int cake[21][21]; int dp[21][21][21][21]; int yt(int x,int y,int w,int h)//返回蛋糕…