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应用 ...
随机推荐
- CSS3 : box-shadow
box-shadow 用于设置边框阴影,语法: box-shadow: h-shadow v-shadow blur spread color inset; -moz-box-shadow: h-sh ...
- Java IO学习--File类
一.File类 File类具备一定的误导性,可能容易认为它指代的是文件,实际并非如此,它既能代表一个特定文件的名称,又能表示一个目录下一组文件的名称.简而言之,File类是文件或者目录路径名的抽象表示 ...
- LeetCode 61——旋转链表
1. 题目 2. 解答 2.1. 方法一 将链表每个节点向右移动 1 个位置,其实就是让链表最后一个结点指向第一个结点. 因此,向右移动 k 个位置就重复上述过程 k 次即可. 然后,我们注意到,若链 ...
- Dijkstra模板 dj斯特拉
图论里非常常用的dijkstra,自己加了个路径查找,做个模板吧: ; struct Edge { int from,to,dist; Edge(int u, int v, int d):from(u ...
- Pro Git - 笔记1
Getting Started About Version Control Local Version Control Systems Centralized Version Control Syst ...
- AMF3 在Unity中使用AMF3和Java服务器通信
现在在做的项目是一个网页游戏的移植到移动端. 所以服务器直接使用原来的代码.原来的游戏是as3实现,使用flash amf3数据通信. Unity 使用C#作为脚本语言,所以就需要.net的amf3解 ...
- [org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 1064, SQLState: 42000问题的解决办法
[org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 1064, SQLState: 42000问题的解决办法. 出现这种情况的原因 ...
- beta版本冲刺六
目录 组员情况 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团队签入记 ...
- java第七笔记
- winspool.drv
public partial class Form1 : Form{ [System.Runtime.InteropServices.DllImportAttribute("winspool ...