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应用 ...
随机推荐
- 在Kotlin上怎样用Mockito2 mock final 类(KAD 23)
作者:Antonio Leiva 时间:Mar 2, 2017 原文链接:https://antonioleiva.com/mockito-2-kotlin/ 如我们在前面文章中谈到的,Kotlin最 ...
- LeetCode 24——两两交换链表中的节点
1. 题目 2. 解答 新建一个哨兵结点作为头结点,然后每次交换相邻两个结点.并依次将它们连接到新链表中去,再将原链表中后面的结点也串到新链表后面.直至到达链尾或者剩余一个节点,则此时返回新链表的头结 ...
- c++调用Python基础功能
c++调用Python首先安装Python,以win7为例,Python路径为:c:\Python35\,通过mingw编译c++代码.编写makefile文件,首先要添加包含路径:inc_path ...
- HDU 1271 整数对(思路题)
假设删除第k位,把整数A表示成如下形式: A = a * 10^(k+1) + b * 10 ^k + c; 则: B = a * 10^k + c; N = A + B = (11*a+b)*10^ ...
- HDU 4747 Mex(线段树)(2013 ACM/ICPC Asia Regional Hangzhou Online)
Problem Description Mex is a function on a set of integers, which is universally used for impartial ...
- BufferedInputStream/BufferedOutputStream
BufferedInputStream: public synchronized int read() throws IOException int res=bis.read(); System.ou ...
- 详细讲解Java中方法的重载和重写
首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 ...
- Coursera: Internet History, Technology, and Security
课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing ...
- c语言实现带LRU机制的哈希表
#include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h&g ...
- Football Games(思维题)
Problem Description A mysterious country will hold a football world championships---Abnormal Cup, at ...