转载: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这趟浑水,因为一谈论这个,总是伴随着很多争吵,在用户数量方面,似乎相当。也有一些第三方开发者两者都用。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.9, 1.10)
  2. 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以性能著称,并且是一款商业产品。它有免费和付费两种版本。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(IntelliJ IDEA was the top IDE in this report, figure 1.11)
  2. 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框架,在前端方面更受欢迎。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.16)
  2. DZone Guide to the Java Ecosystem, 2015 edition (chart 3, paragraph 5 shows a tie)
  3. JSF and Spring MVC Tie in Java / JVM Frameworks Poll

应用服务器

最流行的:Tomcat

次流行的:Wildfly

很长时间以来,Tomcat都是最流行的Java应用服务器框架。它是一个轻量级框架,在一些其他调查中,Jetty——另一个轻量级应用框架——领先于Wildfly——最流行的Java EE支持的应用服务器。Tomcat在轻量Java应用方面无疑是霸主地位,是 微型服务架构 方面的最佳选择。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.13)
  2. DZone Guide to the Java Ecosystem, 2015 edition (chart 4)
  3. 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能做的事情它基本上都能做。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2014
  2. DZone Guide to Continuous Delivery, 2015 edition (page 20)

版本控制系统

最流行的:Git

次流行的:Subversion

记住,使用Git比仅仅使用Github和简单提交那样更加灵活。现在来看,Git赢得了版本控制大战的胜利,很多Subversion和CVS的用户逐渐开始转向Git。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.18)

持续集成

最流行的:Jenkins

次流行的:No CI server

在这方面也有一个明显的巨头。Jenkins灵活的插件系统,在过去的五年间逐渐控制了这个领域。其余Jenkins的竞争对手中,更多的人选择No CI server。接下来是Bamboo。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.13)
  2. DZone Guide to Continuous Delivery, 2015 edition (page 20)
  3. DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)

数据库

最流行的:OracleDB

次流行的:MySQL

在所有这些工具中,数据库可谓是最取决于使用场景的。取决于你要创建的应用的不同,你可能需要一个轻量的键值对存储数据库,或者存储很多列的数据库。对于大多数的应用来说,一般的数据库就能满足需求,这就是为什么这两种数据库可以排名前列的原因。

Oracle是这篇文章中为数不多的商业软件,这意味着,它有很多“企业级”特性。如果你偏爱开源软件的话,强烈推荐MySQL和SQLite。

数据

  1. DB-Engines Database Rankings
  2. DZone Guide to Databases 2016
  3. 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成了标准。

数据

  1. DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)
  2. RebelLabs Java Tools and Technologies Landscape Report 2014(page 31)

静态代码分析

最流行的:FindBugs

次流行的:SonarQube

这两个工具非常不同,所以很难比较。FindBug是一个简单的静态代码分析工具,SonarQube是一个全平台的代码质量分析、语法检查、代码度量的工具。

数据

  1. DZone Guide to Continuous Delivery, 2015 edition (page 20)
  2. RebelLabs Java Tools and Technologies Landscape Report 2014(page 2)

语法检查

最流行的:Checkstyle

次流行的:Eclipse

大型的Java IDE都有这个功能,但是如果你需要特定的程序专门进行类型检查,Checkstyle是一个不错的选择。

数据

  1. DZone Guide to Continuous Delivery, 2015 edition (page 20)

人工仓库管理

最流行的:Sonatype Nexus

次流行的:JFrog Artifactory

很多开发者并不使用人工仓库管理JARs,WARs,库和应用。但是如果想这么做的话,Nexus是最好的选择。两者都是商业软件,Apache Archiva是一个开源的选择。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2014(page 45)

控制反转

最流行的:Spring Framework DI

次流行的:Google Guice

Spring framework在控制反转方面做的很不错,但是Google的开发者也做了一个不错的工具。 Dagger 在这方面的用户并不很多,但是正在逐渐流行起来,尤其是安卓开发方面。 Pokémon Go 使用的也是它。

数据

  1. Poll of reddit.com/r/java

性能分析

Java性能总览

最流行的:VisualVM

次流行的:No profiler

有相当一部分的开发者并不使用性能分析工具(也许他们有专业的性能优化团队来做)。YourKit也是替代VisualVM的一个不错选择。

载入测试

最流行的:JMeter

次流行的:LoadRunner

除了这两款工具之外,还有很多做载入性能测试的工具,所以在使用之前,最好做好充分的市场调研。JMeter是开源软件,LoadRunner是商业软件。商业软件的好处是服务广泛,可以在云端运行测试。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.19)
  2. DZone Guide to Continuous Delivery, 2015 edition (page 20)

编译自动化和依赖管理

最流行的:Maven

次流行的:Gradle

Maven无疑占据了领导地位,但是Gradle的使用也很广泛,它还是安卓的标准编译工具。

数据

  1. RebelLabs Java Tools and Technologies Landscape Report 2016(figure 1.12)
  2. DZone Guide to the Java Ecosystem, 2015 edition (chart 4)

日志库

最流行的:Log4j

次流行的日志库尚不明确,这方面的调查比较少。 这篇文章 的内容场景围绕流行的日志库和Java中的设置展开。

JAVA 开发工具 市场状况的更多相关文章

  1. java开发工具比较(16个工具修订版)

    1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...

  2. 十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美 ...

  3. Java开发工具全面比较

    1.JDK (Java Development Kit)Java开发工具集 从初学者角度来看Java开发工具,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对 ...

  4. Java开发工具安装步骤内容如下

    Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...

  5. JAVA开发工具eclipse中@author怎么改

    1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息. 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 首先打开Eclipse--->然后 ...

  6. 学习java随笔第二篇:java开发工具——Eclipse

    java开发工具有很多这里我使用的是Eclipse. 首先我在官网上下载了Eclipse的软件包,下载地址:http://www.eclipse.org/downloads/,然后有在网上找了一个汉化 ...

  7. Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解

    原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...

  8. ②---Java开发工具Eclipse安装配置

    Java开发工具Eclipse安装及配置 以下将为大家介绍Java开发工具Eclipse安装及配置. 一.下载Eclipse安装文件 正所谓工欲善其事必先利其器,我们在开发java语言过程中同样需要依 ...

  9. 每个Java程序员需要了解的8个Java开发工具

    每个Java程序员需要了解的8个Java开发工具 Java是计算机应用程序编程语言,被广泛用于创建Web应用.服务器处理.用户端的API开发乃至数据库等多个领域.下面列出了8个有助于你开发Java应用 ...

随机推荐

  1. 问题 A: 完数

    问题 A: 完数 时间限制: 1 Sec  内存限制: 32 MB提交: 252  解决: 178[提交][状态][讨论版][命题人:外部导入] 题目描述 求1-n内的完数,所谓的完数是这样的数,它的 ...

  2. kill命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/wangcp-2014/p/5146343.html 1.命令格式: kill[参数][进程号] 2.命令功能: 发送指 ...

  3. 计算机概念总结5-阿里云的了解-ecs

    1.ecs 1.1ecs 云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务.使用云服务器ECS就像使用水.电.煤气等资源一样便捷.高效.您无需提前采购硬 ...

  4. NO3——BFS

    #include <stdio.h> #include <string.h> #include <queue> using namespace std; struc ...

  5. int,long,long long类型的范围

    [内置类型] int      -2147483648-2147483647  //现在编译器的int型是32位的,以前为16位的范围是-32768~32767 unsigned  int   0-4 ...

  6. get? post? put? delete? head? trace? options? http请求方法

    http1.1协议里面定义了八种请求方法: get:用作获取,读取数据 post:向指定的资源提交数据 put:更新,向指定的资源上传一个内容,比如说:更新一个用户的头像或者替换掉已有的一个视频 de ...

  7. truffle开发一个简单的Dapp

    1.安装Truffle:npm install -g truffle 2.建立项目目录并进入:mkdir pet-shop-tutorial cd pet-shop-tutorial 3.使用truf ...

  8. Linux建立FTP服务器

    http://blog.chinaunix.net/uid-20541719-id-1931116.html http://www.cnblogs.com/hnrainll/archive/2011/ ...

  9. Win7/8, convert dynamic disk volume to basic volume.

    之前不小心用了Win8自带的Disk Management 来调整磁盘分区的大小,当时跳出来一个warning窗口,说如果继续操作会变成dynamic disk,然后xxxx. 我心想都是Window ...

  10. 【bzoj4750】密码安全 单调栈

    题目描述 模10^9+61 输入 第一行包含一个正整数 T ,表示有 T 组测试数据. 接下来依次给出每组测试数据.对于每组测试数据: 第一行包含一个正整数 n . 第二行包含 n 个非负整数,表示 ...