近年来,在技术界,单就计算机语言行业而言,稳坐大师椅“可能被取代”的Java受到欢迎转折点,Java项目工程师不再吃香了。不休。在焦虑的环境中,每个人都显得焦虑。这种“唱衰论”我想不难理解。不仅如此,基于Java技术本身,甲骨文对之前的版本一再“迟到”,决心在六个月内加快Java的发布频率。但是对于开发者来说,作为开发环境的更新速度太快,不利于生产环境,也会给开发设计带来很多兼容性问题。无形中无故增加了工作量,没有开发者会高兴。同时,新版OracleJDK的非自由商业问题也让Java失去了很多原有的支持用户。相应地,很多开发者甚至用“死”这个词来形容甲骨文的独裁统治。除了内部因素,从外界来看,2018年紧跟人工智能技术的Python,2017年被谷歌宣布为Android开发的一级语言的Kotlin,以及成为最流行语言的JavaScript2016年因前端开发等参加了对传统计算机语言Java的挑战。但与其说是语言受到了挑战,归根结底还是不同语言所应用的领域所吸引的人才碰撞。最后是唱衰论,引用一位网友的观点来说明其本质,“当今世界上只有两种计算机语言,一种是每天都在训练,另一种是不用的任何人。”那么,在这种观点的背后,Java应用的真实状态是怎样的呢?身处Java围城之外的开发者又该如何尽快掌握Java相关技术呢?在下一步中,我们希望通过浏览最广泛的Java开发人员调查来使您受益。参与这份调查报告的有来自世界各地的10,500名Java开发人员。Java开发者常用的JDK?截至目前,Java中的JDK获胜者指的是OracleJDK和OpenJDK。但是,随着JDK8和JDK11中许可和支持的变化,接下来的Java调查统计数据可能会发生很大变化。开发者使用JDK的比例仅基于报告的数据调查报告。其中,令人费解的是,很难弄清楚1%的Java开发人员是如何在没有JDK的情况下进行Java编程的。Java开发人员的顶级JavaEE版本是什么?根据一份数据调查报告,38%的Java开发者根本不使用JavaEE。估计很多都是用SpringFramework。但也许还有一些Swing和JavaFX开发人员。Java软件工程师最喜欢的JVM语言是什么?虽然如文章开头所述,2017年谷歌采用Kotlin作为官方Android编程语言,“Java将被取代”的观点随之而来。但是,根据调查和研究报告的结果,Java仍然在这个问题上占主导地位。而Kotlin只有2.42%的受访者表示他们将其视为当今工程项目开发和设计的主要语言。除此之外,虽然它超过了Scala的利用率,但仍然落后于Clojure。Java开发人员常用哪些IDE?针对这个问题,一位软件工程师说:“IntelliJIDEA是我用过的最好的IDE。我以前用过Eclipse和NetBeans,但自从我尝试了IntelliJ,我再也回不去了。这样一来,我认为意思是,我不喜欢vi/vim编辑器。实际上,我喜欢用它们来快速编写文件或编写bash脚本。我认为所有开发人员都应该具备一些使用vim和bash脚本的基本知识。”报告显示,45%的开发者使用IntelliJIDEA作为开发Java项目的IDE。其次是38%的开发人员使用全部免费的Eclipse,11%的受访者使用NetBeans。Java开发人员使用的顶级构建工具是什么?许多开发人员在他们的项目中使用不同的构建工具,因此值得注意的是,调查问题要求开发人员选择使用的主要构建工具。大部分工程项目都是用maven构建的。Java开发人员使用哪些CI工具?正如大多数开发人员所预料的那样,Jenkins以高达57%的市场份额占据了CI服务器工具。此外,21%的开发人员尚未采用所有其他CI工具。哪些源代码管理工具是开发和设计团队的首选?有74%的受访者选择Git,这很有意义,也很有意义。但令人惊讶的是,16%的开发人员仍在使用Subversion(又名SVN)。Java开发人员使用的顶级测试技术是什么?著名软件工程大师RobertC.Martin在他对软件开发专业化的论述中曾表示:“我们(软件工程师)之于企业系统,就相当于医生之于人的心脏手术。我们都是赚钱或赔钱的公司。”根本原因……我们都是掌握企业命运的人”。然而,10%的开发人员回应说他们没有使用其他测试技术。好吧,但愿岁月静好!老实说,预计在日常开发设计中没有测试代码习惯的那10%的参与者只是自学成才的开发人员或尚未加入劳动力大军的大学生。Java程序员在他们的应用程序中使用了哪些非JVM语言?今天有许多Java应用程序前端都是用JavaScript编写的。根据调查研究报告的结果,有57%的受访者表示他们使用JavaScript语言,但不清楚他们使用的是纯JavaScript还是类似于TypeScript的其他语法超集。其次,56%的程序员选择SQL,8%的受访者表示他们没有在项目中使用过任何其他非JVM语言。哪些Web框架是Java开发人员的最爱?40%的受访者选择了SpringBoot架构,36%的开发者选择了SpringMVC,两者在使用上没有太大区别。开发人员使用哪些ORM架构?注:此选项为多项选择,因此合计不等于100%。据报道,超过一半的开发人员使用Hibernate。其次是23%的受访者选择了JDBC。但严格来说JDBC并不是ORM框架,所以选择None选项的开发者也会使用JDBC。Java开发人员使用哪个数据库?甲骨文以27%的份额位居榜首,其次是MySQL和PostgreSQL。只有9%的Java开发人员采用了MicrosoftSQL,这并不奇怪,因为这是C#的利基市场。MongoDB是最流行的NoSQL数据库产品,使用人数是IBM的Db2数据库的5倍。哪些应用服务器开发人员使用最多?毫无疑问,Tomcat以41%位居榜首。Java开发人员多久发布一次新版本的代码?惊人的7%的开发人员表示每天多次发布项目更新代码。Java开发人员的地理分布?根据调查,大多数开发商位于欧洲。使用Java的开发者年龄分布?Java,已经有20多年的历史了,它的用户绝大部分都是伴随着它的发展而成长起来的人。报告显示,38%的软件开发人员年龄在30-40岁之间。程序员如何获取和学习Java技术?对于这个问题,这里的赢家应该是谷歌,很多程序员都会使用谷歌来搜索相关资料。恰好大部分答案都可以在StackOverflow上找到。Java开发人员为开源贡献了多少?一些国内外的开发者会在业余时间自己构建一些小项目,但总体来说,很难找到更多的时间来维护开源项目。根据之前的数据结果,38%的JavaDeveloper年龄在30到40岁之间。这时候,日常的工作和家庭占据了他们大部分的时间,很难找到空闲时间。这就是为什么55%的人从未开源过项目。
