2016 年 Java 工具和技术的调查:IDEA 已超过
最近「技术最前线」看到 RebelLabs 做了一次 2016 年 Java 工具与技术的调查,调查报告虽然是
6 月公布的,但数据一点也不过时。
所以「技术最前线」忙会了一中午,写了这篇文章,带大家一起看看一些值得关注数据。比如:
46% 的在用 IntelliJ IDEA,已超过了 Eclipse 的 41%; (谁是 Java IDE 王者,已经有答案了)
Git 有 68% 份额,而 SVN 仅有 23%;(这个不出意外)
如果你想偷懒,可以直接拖到最后看总结,但十分不建议这么做啦~ 另外,本文已同步发布在伯乐头条(top.jobbole.com)网站。
一、总览
68% 的开发者用 Maven;
68% 的在用 Git;
46% 的在用 Intellij IDEA;
43% 的在用 Spring MVC
34% 的在用 微服务架构;
32% 的在用 Docker;
62% 的在用 Java 8;
60% 的在用 Jenkins;
42% 的在用 Tomcat;
39% 的在用 Oracle DB;
31% 的在用 Java EE 7;
29% 的在用 Spring Boot;
参与者的工作经验
74% 的程序员自认为高于平均水平
工作中主要项目的类型,67% 是全栈 Web 应用
是否采用了微服务架构?
在用哪种 JVM 语言?
Java 版本
Java EE 版本
Java IDE
构建工具
应用服务器(蓝色为生产环境,黄色为开发环境)
生产环境所用的数据库
二、趋势
Java SE 版本使用率(从2012年起)
Java EE 版本使用率(从2014年起)
Java IDE 使用率(从2012年起)
构建工具使用率 ↓
Web 框架使用率 ↓
版本控制系统 ↓
总结
2040 名开发者参与;
做全栈Web项目的开发者,平均大约有 10 - 12 年的工作经验;
63% 的在大企业或中型工作就职;
74% 的自认为高于业界平均水平;
34% 采用了微服务架构;
66% 并没有采用微服务,其中仅有 12% 的在未来有计划试试;
Java 8 是主流,62% 的参与者已经在生产环境用上了;
Java EE 7 , 31% 的参与者已经在用新版本了;
42% 的根本不用 Java EE;
46% 的在用 IntelliJ IDEA,已超过了 Eclipse 的 41%;
68% 的在用 Maven ,Gradle 只有 16%.
Tomcat 是最受欢迎的应用服务器,高达 42%;
39% 的参与者在用 Oracle DB ,稍微比 MySQL 的 38% 高了一点;
MongoDB 在最受欢迎的 NoSQL DB ,比例是 15% ;
Spring 依旧主宰着 Web 框架市场, Spring MVC 和 Spring Boot 的比例是 43% 和 29%;
Jenkins 主宰着 CI Server 市场,比例是 60% ;
Git 有 68% 份额,而 SVN 仅有 23%;
New Relic 在 APMs 有着 11% 份额;
32% 的参与者在用 Docker ,但 54% 的根本没用虚拟化环境;
71% 的参与者宣称自己是 Agile 的;
未经伯乐在线许可,请勿转载;
过去四年的变化
Eclipse 的份额持续下降,而 IntelliJ 却稳步持续上升,已经在使用率超越了 Eclipse;
Maven 依旧保持着绝对的领先优势;
Gradle 增长缓慢,暂时还不足以挑战 Maven;
Spring 主宰着 Web 框架市场,从 2012 年到 2016 年持续增长中,特别是 Spring Boot 可以称为剧增;
JSF 在缓慢下降。Stripes、Tapestry、Wicket 和 Play 1 看样子要退出历史舞台了;
Git 展示了强劲的增长,从 27% 到 68%。而 SVN 却从 55% 降到 23%;
2016 年 Java 工具和技术的调查:IDEA 已超过的更多相关文章
- java的JSP技术
java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
- Java Web编程技术学习要点及方向
学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...
- 《精通Hibernate:Java对象持久化技术详解》目录
图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1 ...
- java集群技术(转)
来源:http://blog.csdn.net/cdh1213/article/details/21443239 序言 越来越多的关键应用运行在J2EE(Java2, Enterprise Editi ...
- 2016最新Java笔试题集锦
更新时间:2015-08-13 来源:网络 投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...
- 2015第44周五Java集群技术(转)
从http://blog.csdn.net/cdh1213/article/details/21443239上看到这篇文章,感觉很不错,找好久没找到中文出处,最早看是从http://www.these ...
- 深入了解java集群技术
原文源自:http://blog.csdn.net/happyangelling/article/details/6413584 序言 越来越多的关键应用运行在J2EE(Java 2, Enterpr ...
- 10.Java 加解密技术系列之 DH
Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然 ...
随机推荐
- poj1426--Find The Multiple(广搜,智商题)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18527 Accepted: 749 ...
- vbs 脚本2
一些很恶作剧的vbs程序代码 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-16我要评论 恶作剧的vbs代码,这里提供的都是一些死循环或导致系统死机的vbs对机器没坏处,最多关机重启 ...
- android 构建GPS Provide步骤及信息
构建GPS Provide步骤及信息 1. 用GPS2GoogleEarth录制KML文件 2. KML文件 2.1 经纬度解析 <LineString> <coordina ...
- 【Android归纳】Fragment生命周期-基于实验的最新总结
如今非常多应用的开发都是基于FragmentActivity中嵌套Fragment进行开发的,所以,假设我们可以清晰地知道他们的生命周期,那么会使我们的开发变的easy. 对于Activity的生命周 ...
- wpf Listbox 设置ItemContainerStyle后,ItemTemplateSelector不能触发
解决方案: 将Listbox 的ItemTemplateSelector 改为 ItemContainerStyle中ContentPresenter ContentTemplateSelector ...
- '无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称' 或 'vue不是内部或外部命令' 的解决方法
如果在使用 vue 初始化项目的时候提示: vue : 无法将“vue”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 或者: ...
- contest hunter 6803 导弹防御塔
没什么好写的.写写这题吧 拆点,把一个防御塔拆成m个,表示第i次攻击.瞎yy就好啊 #include<cstdio> #include<iostream> #include&l ...
- N数码问题的启发式搜索算法--A*算法python实现
一.启发式搜索:A算法 1)评价函数的一般形式 : f(n) = g(n) + h(n) g(n):从S0到Sn的实际代价(搜索的横向因子) h(n):从N到目标节点的估计代价,称为启发函数(搜索的纵 ...
- NAS与SAN有什么区别?
NAS和SAN字面上相似,并且都是新型数据存储模式,但这二者是完全不同的,针对不同方向的技术,为了能够更好的区分它们,天伟数据恢复整理了以下内容供读者参考(天伟数据恢复建议重要数据多备份,备份很重要以 ...
- markdown 计算器
计算器 分四种运算(加减乘除).括号.去除最后括号.验证等式是否计算完成 bracket = re.compile(r'\([^()]+\)') # 找括号 multiplys = re.compil ...