昨日,作为“第一家”公开宣布将裁员 15% 的滴滴,一时之间被大众推向了舆论的风口浪尖,但与此同时,因为其不变相且透明的裁员举措也为自己赢得了一片叫好声。然不可否认的是,从此事件乃至整个行业来看,不少科技公司早已于去年起就开始节衣缩食,究其根由还是源于资本寒冬潮来袭。不过对此,值得作为开发者的我们深思的是,资本的寒冬造成了科技行业不太平,而技术圈的浮躁又是因为什么?

640?wx_fmt=jpeg

近几年的技术圈,单以编程语言界来看,稳坐第一把交椅的 Java “或将被替代”、迎来转折点、Java 工程师风光不再等言论不绝于耳。在浮躁的大环境下,每个人似乎都显得很不安。

其实对于这种“唱衰论”,也不难理解。一方面,基于 Java 技术本身而言,Oracle 因此前版本一而再再而三地“迟到”,最终下定决心会以六个月为周期加快 Java 的发布频率,但是对于开发者而言,作为开发工具更新速度太快,不利于生产环境,也会为开发带来诸多的兼容性问题,无形之中平白被增加了工作量,没有开发者会开心。同时,新版本 OracleJDK 的无法免费商用问题也让 Java 失去了原有的一些支持用户。对此,不少开发者甚至用“作死”一词来形容 Oracle 的独裁。除了内部因素,从外部来看,2018 年随着人工智能技术大火的 Python、2017 年 Google 宣布将作为 Android 开发一级语言的 Kotlin 、2016 年因前端开发而成为最受欢迎语言的 JavaScript 等等均向传统编程语言 Java 发起了挑战。但与其说语言遭到了挑战,归根结底还是不同语言所应用的领域吸引的人才相互冲击。

所谓的唱衰论,引用一位网友的观点来道破本质,「世界只有两种编程语言,一种是天天挨骂的,一种是没人用的。」那么,在该言论背后真实的 Java 使用现状到底如何?仿徨于 Java 围城之外的开发者们该如何更好地掌握 Java 相关的技术?接下来,我们将从 Java 开发者最广泛的调查报告中一窥究竟,希望对大家有所裨益。参与该调查报告的有来自全球 10500 名的 Java 开发者。

640?wx_fmt=png

Java 开发者最常使用的 JDK?

截止目前,Java 中 JDK 最大的赢家毫无疑问指的是 Oracle JDK 和 OpenJDK。不过随着 JDK 8 和 JDK 11 中许可和支持的变化,下一次的 Java 调查数据可能会发生很大变化。

640?wx_fmt=png

开发者使用的 JDK 占比

不过根据该报告的调查结果,其中,令人费解的是,很难搞清楚 1% 的 Java 开发者是如何在“无 JDK”的情况下完成 Java 编程的。

640?wx_fmt=png

Java 开发者主要使用的 Java EE 版本是什么?

根据调查显示,有 38% 的 Java 开发者根本不使用 Java EE。估计不少都使用了 Spring Framework。不过可能还有一些 Swing 和 JavaFX 开发人员。

640?wx_fmt=png
640?wx_fmt=png

Java 程序员主要使用哪些 JVM 语言?

虽然如文章伊始提及的,2017 年,Google 将 Kotlin 作为 Android 官方开发语言,“Java 将被替代”言论也随之而来。但是根据调查报告结果显示,在这一问题中,Java 仍然占主导地位。而 Kotlin 只有 2.42% 的受访者表示当前将其作为项目开发的主要语言。此外,它虽然超过了 Scala 的使用率,但依然落后于 Clojure。

640?wx_fmt=png
640?wx_fmt=png

哪些 IDE Java 开发者常用?

对于这一问题,一位昵称为 program9 的程序员表示:“IntelliJ IDEA 是我使用过最好的 IDE。之前我用过 Eclipse 和 NetBeans,但是自从我尝试了 IntelliJ,我再也没有回过头来。当然这不意味着,我不喜欢 vi / vim 编辑器。事实上,我喜欢用它们来快速编辑文件或编写 bash 脚本。我认为任何开发者都应该具备使用 vim 和 bash 脚本的一些基本知识。”

根据报告显示,有 45% 的开发者以 IntelliJ IDEA 为开发 Java 项目的 IDE。其次分别有 38% 的开发者使用免费的 Eclipse 和 11% 的受访者使用 NetBeans。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者主要使用哪种构建工具?

一些开发者在他们的项目中使用不同的构建工具,因此值得注意的是,调查中的问题是要求开发者选择使用的主要构建工具。而绝大多数项目都是使用 maven 构建的。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者使用哪种 CI 工具?

正如大多数开发人员所期望的那样,Jenkins 以高达 57% 的市场份额赢得 CI 服务器工具。其次,也有 21% 的开发者并未使用任何其他的 CI 工具。

640?wx_fmt=png
640?wx_fmt=png

哪些源代码管理工具是开发团队主要使用的?

对于有 74% 的受访者选择 Git,合乎情理也属于意料之中。但令人诧异的是,竟有 16% 的开发者仍在使用 Subversion(a.k.a SVN)。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者主要使用哪些测试技术?

著名软件工程大师 Robert C. Martin 在他关于软件开发专业化的讨论中曾表示道:“我们(程序员)对公司系统相当于外科医生对人的心脏手术。我们是公司赚钱或亏钱的原因……我们是掌握公司生命线的人“。

然而,10% 的开发者回答说他们没有使用任何测试技术。嗯,在此祝安好!

老实说,希望那些在日常开发中没有测试代码习惯的 10% 的参与者只是自学的开发者或者并未参加工作的学生。

640?wx_fmt=png
640?wx_fmt=png

Java 程序员在应用程序中会使用哪些非 JVM 语言?

现在有很多的 Java 应用程序前端都是用 JavaScript 编写。根据调查报告结果显示,57% 的受访者表示使用 JavaScript 语言,但并不清楚他们最终使用的是纯 JavaScript 还是其他任何类似 TypeScript 的语法超集。其次,有 56% 的程序员选择 SQL,也有 8% 的受访者表示未在项目中使用任何其他非 JVM 语言。

640?wx_fmt=png
640?wx_fmt=png

哪些 Web 框架是 Java 开发者的最爱?

有 40% 的受访者选择了 Spring Boot 框架,有 36% 的开发者选择了 Spring MVC,两者使用率相差不大。

640?wx_fmt=png
640?wx_fmt=png

开发者使用哪些 ORM 框架?

注:该选项为多选,因此总数不等于 100%。

根据报告显示,有超过一半的开发人员使用了 Hibernate。其次有 23% 的受访者选择了 JDBC。但严格意义上来讲,JDBC 并不是 ORM 框架,所以说选择 None 这一选项的开发者也有可能使用 JDBC。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者使用哪个数据库?

Oracle 占比 27%,位居榜首,然后是 MySQL 和 PostgreSQL。只有 9% 的 Java 开发者使用了 Microsoft SQL,这并不奇怪,因为它是 C# 的利基。

MongoDB 是 NoSQL 数据库产品中最热门的一种,使用的人数是 IBM  Db2 数据库的 5 倍。

640?wx_fmt=png
640?wx_fmt=png

哪些应用服务器开发者最常使用?

毫无疑问,Tomcat 以 41% 的占比稳居第一。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者多久发布一次新版本的代码?

令人惊叹的是,7% 的开发者表示每天多次发布项目更新代码。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者的地理位置分布?

根据调查显示,大多数的开发者位于欧洲。

640?wx_fmt=png
640?wx_fmt=png

使用 Java 的开发者年龄分布?

最为已有二十几年历史的 Java,其使用者大多是伴随其发展成长起来的人,根据报告显示,有 38% 的软件开发人员年龄为 30-40 岁。

640?wx_fmt=png
640?wx_fmt=png

程序员如何获得及学习有关 Java 技术?

对于这个问题,这里的最大赢家应该是 Google,很多程序员都会通过 Google 去搜索相关信息。而碰巧大多数答案都可以在 Stack Overflow 中找到。

640?wx_fmt=png
640?wx_fmt=png

Java 开发者为开源贡献了多少?

无论是国内还是国外的一些开发者在空闲时间都会自己创建小项目,但是整体而言,想要找到更多的时间去维护开源项目其实并不容易,根据上文的数据结果显示,38% 的 Java 开发者年龄处于 30-40 岁之间,此时,日常工作以及家庭占据了他们大多数时间,很难再抽出空闲时间。这也是为什么有 55% 的人从未开源过项目。

640?wx_fmt=png

参考:

https://programmer9.com/2019/02/06/largest-java-survey-2018.html

http://www.javamagazine.mozaicreader.com/

【完】

发表评论

电子邮件地址不会被公开。 必填项已用*标注