JAVA 开发工具 市场状况
转载:http://blog.csdn.net/hj7jay/article/details/52250755
2016 JAVA 流行的开发工具
最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而是因为广泛使用的社区带来了无价的资源和支持。
流行的工具更容易学习,因为会有很多人乐意帮助你。如果是开源的话,麻烦就更少了。因为有更多的人在审核代码和进行测试,能考虑到更多的情况。
在很多情况下,都会有一个对立的竞争对手,比如Apache和Nginx——两个web服务器。Apache被使用的更多,但是顶尖的网站使用Nginx更多,也就是说,顶级工程师更加青睐Nginx——在很多情况下,流行度可能是区分工具最重要的一点。
这份列表包含了开发Java应用程序所需要的大部分工具。包括最流行的、次流行的,他们都有强大的社区支持。Java的初学者需要认识一下这些工具,熟悉生态系统。
语言版本
最流行的:Java 8
次流行的:Java 7
Java 8可能是所有版本中被接受最快的。可能是因为,Java 8带来了期待已久的现代语言特性,例如lambda表达式,解决了长久以来Java饱受人们批评的冗长啰嗦的缺点。当然, 性能 也是一大方面。
虽然现在很多Java应用和主要的应用都是用Java 8写的,但也有很大数量的Java应用依然使用Java 7或6。
我不会蹚Java EE和Spring这趟浑水,因为一谈论这个,总是伴随着很多争吵,在用户数量方面,似乎相当。也有一些第三方开发者两者都用。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.9, 1.10)
- DZone Guide to the Java Ecosystem, 2015 edition (graphs 1 & 2)
编辑器和IDE
最流行的:Eclipse和IntelliJ IDEA(存在争议)
次流行的:Netbeans
Eclipse和Netbeans都是免费、开源的。Eclipse以强大的社区和丰富的插件闻名(开发Eclipse插件非常方便),这让Eclipse平台的扩展性变得很强,但是这个IDE启动比较慢。Netbeans通过整合了Maven和Git等让自己变得与众不同。IntelliJ以性能著称,并且是一款商业产品。它有免费和付费两种版本。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(IntelliJ IDEA was the top IDE in this report, figure 1.11)
- DZone Guide to the Java Ecosystem, 2015 edition (Eclipse was the top IDE in this one, paragraph 4)
Web Framework
最流行的:AngularJS,SpringMVC
次流行的:Java Server Faces(JSF)
三个调查中的两个都显示Spring MVC的受欢迎度比Java Server Faces(JSF)高,DZone的 调查 显示Spring MVC和JSF之间不分伯仲。随着JavaScript框架在web方面的发展,也许这些都不再重要了。有一个调查显示,AngularJS相比与纯Java框架,在前端方面更受欢迎。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.16)
- DZone Guide to the Java Ecosystem, 2015 edition (chart 3, paragraph 5 shows a tie)
- JSF and Spring MVC Tie in Java / JVM Frameworks Poll
应用服务器
最流行的:Tomcat
次流行的:Wildfly
很长时间以来,Tomcat都是最流行的Java应用服务器框架。它是一个轻量级框架,在一些其他调查中,Jetty——另一个轻量级应用框架——领先于Wildfly——最流行的Java EE支持的应用服务器。Tomcat在轻量Java应用方面无疑是霸主地位,是 微型服务架构 方面的最佳选择。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.13)
- DZone Guide to the Java Ecosystem, 2015 edition (chart 4)
- RebelLabs’ Great Application Server Debate 2013 (for a deeper dive into app server use cases)
测试框架
单元测试
最流行的:JUnit
名副其实的最佳Java测试框架
模拟
最流行的:Mockito
最受欢迎的Java 模拟 测试框架。
自动化Web浏览测试
最流行的:Selenium
Selenium只是自动化浏览测试。开发者经常使用这个工具配合其他的测试框架,来测试大型Web应用。
行为驱动开发测试(BDD)测试
最流行的:Cucumber-JVM, Spock
Cucumber最开始只是一个Ruby项目,但是现在已经用各大主流编程语言实现了。Spock支持JVM驱动的语言Groovy,当然也支持Java。Mockito能做的事情它基本上都能做。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2014
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
版本控制系统
最流行的:Git
次流行的:Subversion
记住,使用Git比仅仅使用Github和简单提交那样更加灵活。现在来看,Git赢得了版本控制大战的胜利,很多Subversion和CVS的用户逐渐开始转向Git。
数据
持续集成
最流行的:Jenkins
次流行的:No CI server
在这方面也有一个明显的巨头。Jenkins灵活的插件系统,在过去的五年间逐渐控制了这个领域。其余Jenkins的竞争对手中,更多的人选择No CI server。接下来是Bamboo。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.13)
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
- DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)
数据库
最流行的:OracleDB
次流行的:MySQL
在所有这些工具中,数据库可谓是最取决于使用场景的。取决于你要创建的应用的不同,你可能需要一个轻量的键值对存储数据库,或者存储很多列的数据库。对于大多数的应用来说,一般的数据库就能满足需求,这就是为什么这两种数据库可以排名前列的原因。
Oracle是这篇文章中为数不多的商业软件,这意味着,它有很多“企业级”特性。如果你偏爱开源软件的话,强烈推荐MySQL和SQLite。
数据
- DB-Engines Database Rankings
- DZone Guide to Databases 2016
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.14, this is the only Java-specific one)
对象关系映射
最流行的:The Java Persistence API (JPA) / Hibernate
次流行的:The Java Database Connectivity API (JDBC)
Hibernate太流行了,多年前就在Java Persistence API成了标准。
数据
- DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)
- RebelLabs Java Tools and Technologies Landscape Report 2014(page 31)
静态代码分析
最流行的:FindBugs
次流行的:SonarQube
这两个工具非常不同,所以很难比较。FindBug是一个简单的静态代码分析工具,SonarQube是一个全平台的代码质量分析、语法检查、代码度量的工具。
数据
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
- RebelLabs Java Tools and Technologies Landscape Report 2014(page 2)
语法检查
最流行的:Checkstyle
次流行的:Eclipse
大型的Java IDE都有这个功能,但是如果你需要特定的程序专门进行类型检查,Checkstyle是一个不错的选择。
数据
人工仓库管理
最流行的:Sonatype Nexus
次流行的:JFrog Artifactory
很多开发者并不使用人工仓库管理JARs,WARs,库和应用。但是如果想这么做的话,Nexus是最好的选择。两者都是商业软件,Apache Archiva是一个开源的选择。
数据
控制反转
最流行的:Spring Framework DI
次流行的:Google Guice
Spring framework在控制反转方面做的很不错,但是Google的开发者也做了一个不错的工具。 Dagger 在这方面的用户并不很多,但是正在逐渐流行起来,尤其是安卓开发方面。 Pokémon Go 使用的也是它。
数据
性能分析
Java性能总览
最流行的:VisualVM
次流行的:No profiler
有相当一部分的开发者并不使用性能分析工具(也许他们有专业的性能优化团队来做)。YourKit也是替代VisualVM的一个不错选择。
载入测试
最流行的:JMeter
次流行的:LoadRunner
除了这两款工具之外,还有很多做载入性能测试的工具,所以在使用之前,最好做好充分的市场调研。JMeter是开源软件,LoadRunner是商业软件。商业软件的好处是服务广泛,可以在云端运行测试。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.19)
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
编译自动化和依赖管理
最流行的:Maven
次流行的:Gradle
Maven无疑占据了领导地位,但是Gradle的使用也很广泛,它还是安卓的标准编译工具。
数据
- RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.12)
- DZone Guide to the Java Ecosystem, 2015 edition (chart 4)
日志库
最流行的:Log4j
次流行的日志库尚不明确,这方面的调查比较少。 这篇文章 的内容场景围绕流行的日志库和Java中的设置展开。
JAVA 开发工具 市场状况的更多相关文章
- java开发工具比较(16个工具修订版)
1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...
- 十四种Java开发工具点评
在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美 ...
- Java开发工具全面比较
1.JDK (Java Development Kit)Java开发工具集 从初学者角度来看Java开发工具,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对 ...
- Java开发工具安装步骤内容如下
Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...
- JAVA开发工具eclipse中@author怎么改
1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息. 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 首先打开Eclipse--->然后 ...
- 学习java随笔第二篇:java开发工具——Eclipse
java开发工具有很多这里我使用的是Eclipse. 首先我在官网上下载了Eclipse的软件包,下载地址:http://www.eclipse.org/downloads/,然后有在网上找了一个汉化 ...
- Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...
- ②---Java开发工具Eclipse安装配置
Java开发工具Eclipse安装及配置 以下将为大家介绍Java开发工具Eclipse安装及配置. 一.下载Eclipse安装文件 正所谓工欲善其事必先利其器,我们在开发java语言过程中同样需要依 ...
- 每个Java程序员需要了解的8个Java开发工具
每个Java程序员需要了解的8个Java开发工具 Java是计算机应用程序编程语言,被广泛用于创建Web应用.服务器处理.用户端的API开发乃至数据库等多个领域.下面列出了8个有助于你开发Java应用 ...
随机推荐
- Java 集合学习--ArrayList
一.ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复. ①.实现 List 接口 List接口继承Collection接口,是List类的顶层接口 ...
- python 网络篇(网络编程)
一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好.但是如果这两个程序之间想要传递一个数据, ...
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- Captcha 验证码Example
maven依赖 防止和spring中的servlet冲突 <dependency> <groupId>com.github.penggle</groupId> &l ...
- OpenPAI:大规模人工智能集群管理平台介绍及任务提交指南
产品渊源: 随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题.例如,如何提升GPU等硬件资源的利用率?如何节省硬件 ...
- DP入门(1)——数字三角形问题
一.问题描述 如上图所示,有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数.现请你在此数字三角形中寻找一条从首行到最下行的路径,使得路径上所经过的数字之和 ...
- 并查集——hdu1232(入门)
传送门:畅通工程 实质是求连通分支的数量 #include <iostream> #include <cstdio> #include <algorithm> us ...
- BZOJ4651 NOI2016网格(割点)
首先显然可以通过孤立角落里的跳蚤使其不连通,所以只要有解答案就不会大于2.同样显然的一点是当且仅当跳蚤数量<=2且连通时无解.做法其实也很显然了:特判无解,若跳蚤不连通输出0,否则看图中是否无割 ...
- hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装
hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...
- bzoj2348
实在不懂为啥网上的题解都是二分,本人没写二分,wa的很惨结果竟然是printf("%d")的锅,改了就A了 2348: [Baltic 2011]Plagiarism Time L ...