2021 年 Java 開發(fā)者生產(chǎn)力報(bào)告
Java 開發(fā)工具 JRebel 和 XRebel 的開發(fā)商——Perforce 最近公布了其第九份年度全球 Java 開發(fā)者生產(chǎn)力報(bào)告,該報(bào)告基于對 850 多位 Java 開發(fā)者的調(diào)查而得出。涵蓋的主題包括 Java 團(tuán)隊(duì)的性質(zhì)、他們遇到的挑戰(zhàn),以及首選的開發(fā)工具等諸多方面。通過調(diào)查發(fā)現(xiàn),盡管有越來越多的開發(fā)者使用微服務(wù),但是開發(fā)者仍然面臨著較長的重新部署時(shí)間和服務(wù)間的功能問題。
關(guān)于受訪者
此次調(diào)查中 49% 的受訪者是 Java 開發(fā)者,6%為董事或副總裁,其余的則是由團(tuán)隊(duì)負(fù)責(zé)人、架構(gòu)師和顧問組成。其中有超過三分之一(36%)的受訪者在大型企業(yè)或組織中工作,在中小型公司有 42%,在初創(chuàng)公司有 15%。大多數(shù)人都是在小型團(tuán)隊(duì)中工作,這表明人們對更敏捷的開發(fā)和采用微服務(wù)的需求不斷增長,在微服務(wù)中,開發(fā)人員可以使用較少的代碼片段。40% 的團(tuán)隊(duì)在 3 至 9 人之間,24% 在 10-20 人之間,17% 在 20-50 人之間。
Java 和微服務(wù)趨勢
不出所料,有 69% 的受訪者仍在使用 Java 8,緊隨其后是的 JavaScript 占 40%,以及 Java 11 占36%(在調(diào)查中受訪者可以選擇多種編程語言)。只有 16% 的受訪者表示他們正在使用 Java 12 或更高版本,而目前有 15% 的受訪者仍然在堅(jiān)持使用 Java 7 或更早期的版本。
對于微服務(wù)的采用保持穩(wěn)定,有 66% 的受訪者正在積極過渡或已經(jīng)在使用微服務(wù)了。只有 13% 的受訪者根本不打算轉(zhuǎn)型。調(diào)查中還詢問了開發(fā)人員在他們主要的應(yīng)用程序中擁有多少微服務(wù),并以 1 到 20 這種規(guī)模進(jìn)行選擇。最終得出的答案是:使用 5-10 的有 36%,使用 1-5 的有 34%,其次是 16% 使用了 20 或更多的微服務(wù),最后使用 10-20 的占了 14%。當(dāng)然,公司或組織可以擁有多個(gè)應(yīng)用程序架構(gòu),例如:42% 的用戶使用 Monolith、SOA 29%、移動設(shè)備 23%,以及桌面設(shè)備 18%。
最受歡迎的工具
該報(bào)告對受訪者在每個(gè)類別中最常用的技術(shù)和工具也進(jìn)行了調(diào)查:
- 應(yīng)用服務(wù)器 —— Tomcat 仍占 66% 的份額。之后,JBoss/WildFly(19%)、WebLogic(18%)、Jetty(15%)和 WebSphere(14%),后幾個(gè)的占比相對比較均勻。
- 應(yīng)用程序框架 —— Spring Boot 以 62% 位居榜首,與去年的 83% 相比有所下降。DropWizard 的用戶占 8%,比 2020 年的 1% 有所增加。Quarkus 也類似,采用率從 1% 增加到 6%。
- 框架配置 —— Annotations 以 75% 的優(yōu)勢居于領(lǐng)先地位。
- IDE —— IntelliJ IDEA 以 65% 排名第一,其次是 Eclipse(48%)、VSCode(27%)和NetBeans(13%)。
- JRE/JDK 分發(fā) —— 使用 Oracle JDK 開發(fā)者有所增加,從去年的 50% 上升到 59%,盡管有報(bào)告指出很多人由于許可成本而放棄使用 JDK。這可能歸因于響應(yīng)此次調(diào)查的大型企業(yè)的數(shù)量占比較高,而大型企業(yè)通常比小型組織更難過渡。排名第二的是 AdoptOpenJDK 占 22%,使用 Amazon Corretto 的占比 10%。
- 數(shù)據(jù)庫 —— 最受青睞的是數(shù)據(jù)庫是 MySQL 占比 43%,其次是 Oracle DB 和 PostreSQL,分別占36%。接下來是 MongoDB,有 29% 的受訪者在使用。
- 構(gòu)建工具 —— Maven 以 67% 的占比成為開發(fā)者的首選工具,而去年 Maven 和 Gradle 則是并駕齊驅(qū)。
- 虛擬化工具 —— 88% 的受訪者表示他們在使用這些工具,而最常見的工具是 Docker,占57%,低于去年的 74%。Kubernetes 以 42% 的占比排名第二,相比去年的 35% 有所提高。VMWare 以 27% 的份額位居第三。
- CI/CD —— Jenkins 在受訪者中使用占比 61%,其他競爭對手(Bamboo、TravisCI 和 TeamCity等),僅占 12% 或更少。
- PaaS —— 大多數(shù)受訪者現(xiàn)在正在使用 PaaS 服務(wù)提供商,只有 24% 的受訪者表示不使用。對于使用 PaaS 服務(wù)提供商的用戶,AWS 占 39% 是用戶的首選;Microsoft Azure 緊隨其后,占24%;Google Cloud 位居第三,占 18%。
開發(fā)者的痛點(diǎn)
最嚴(yán)重的應(yīng)用程序性能問題是較長的應(yīng)用程序響應(yīng)時(shí)間,達(dá)到54%(與去年的55%相提并論)。這種持續(xù)的趨勢與微服務(wù)的采用不斷增長相吻合。報(bào)告中的另一個(gè)性能問題是高 CPU 使用率(39%)和內(nèi)存泄漏(35%),過多的開放連接和 IO 查詢也分別達(dá)到26%和19%。
部署時(shí)間是最常見的問題。59% 的開發(fā)人員經(jīng)歷了超過四分鐘的重新部署時(shí)間,而 20% 經(jīng)歷了超過 10 分鐘的重新部署時(shí)間。這背后有兩個(gè)潛在的原因。一種是,隨著微服務(wù)規(guī)模的增長,開發(fā)和創(chuàng)建應(yīng)用程序?qū)⒒ㄙM(fèi)更長的時(shí)間。第二個(gè)原因是由于微服務(wù)在遠(yuǎn)程虛擬機(jī)上運(yùn)行。
針對微服務(wù),對服務(wù)間功能進(jìn)行故障排除是報(bào)告中最大的挑戰(zhàn),占30%;其次是在本地設(shè)置開發(fā)環(huán)境的問題(占24%)。這可以歸因于創(chuàng)建復(fù)雜的微服務(wù)應(yīng)用程序的困難度。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:2021 年 Java 開發(fā)者生產(chǎn)力報(bào)告
本文地址:https://www.oschina.net/news/130872/java-development-2021