知识大全 四大顶级Java编程工具横向对比

Posted

篇首语:人生的旅程就是这样,用大把的时间迷茫 ,在几个瞬间成长。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 四大顶级Java编程工具横向对比相关的知识,希望对你有一定的参考价值。

四大顶级Java编程工具横向对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  好的程序员总是对开发环境有着不同寻常的熟悉 有的人可能对完整的IDE熟悉 它们也是本文的重点 还有人可能会emacs或 vi/vim这样的编辑器熟悉 但据调查发现 开发人员每隔几年就会转移到新的IDE 有可能是项目需要 或跳槽到了新公司 或是自己的偏好发生了转移

  许多开发人员在选择新的编程工具时总会犯难 为了解开你心中的疑团 本文就对流行的Java开发工具做一次全面的横向对比 看完本文说不定就不再犯难 了 好吧 首先请各位选手登台亮相吧 它们分别是 Eclipse JetBrains IntelliJ IDEA Netbeans和Oracle JDeveloper 这些工具都很优秀 对重构 语法检查和调试的支持都很好 大都能直接从IDE将项目部署到服务器 并能进行远程调试 单独对比它们 的功能已经没有什么意义了 因为它们都支持插件 我们更注重的是易用性 文档和帮助系统的质量 以及插件的数量和质量 提到插件就不得不提Eclipse 基金会 长期以来它都信奉和推崇插件 Eclipse的插件数非常丰富 每次发行新版本都会同步推出大量的新插件

  Netbeans和 IntelliJ IDEA也有很多的插件 但它们更注重用户体验 JDeveloper同样易于使用 不过插件数量就少一些 此外 它和Oracle的软件堆栈联系紧密 从商业角度出发更有吸引力 但也正因为如此 JDeveloper才没有出现较大的插件生态系统

  图 总分对比

  这些IDE都支持Java开发中用到的通用语言(JSF HTML CSS XML等) 有些还支持JVM脚本语言(如Groovy和JRuby) 甚 至是非Java语言(如C/C++ PHP)和建模语言(UML) 下表显示了这些IDE默认安装支持的主要语言清单

  图 支持的开发语言对比

  下表显示了所有IDE对Java SE和企业开发 以及对Java ME嵌入式和Android移动开发和的支持良好程度(这里不涉及任何第三方辅助增强工具 如果要加入第三方的工具 Eclipse对Java ME的支持将有所改善)

  图 对开发平台支持的对比

  在本次评测中 我们特别注重易用性和编码能力 我们认为它们是决定生产力和用户满意度的主要因素 它们和插件一样重要 在记分卡上会有所反映 我给每个因素设置了不同的权重 如果你不同意我的评估结果 你可以根据你的看法进行修改 并得出你自己的排名

  Eclipse

  Eclipse是所有Java IDE中最突出的一员 其用户量和插件规模都是无人能敌的 这一切首先要感谢其创始公司IBM IBM将其开源 成立独立的基金会 并提供持续的资助 其 它厂商和社区也可以为Eclipse做贡献 事实证明 这个决策是非常英明的 Eclipse社区非常活跃 并为其贡献了大量优秀的插件

  Eclipse厂商独立性的好处很快就有了回报 Google公开宣布Eclipse成为Android开发的首选平台 曾经Netbeans也成为 Google的热门候选 但Oracle最近针对Android中使用的Java虚拟机而起诉Google 让Google彻底断了这个想法

  最新版本是今年 月发布的 代号太阳神 它加入了很多新的功能 稍后我会提及它们 Eclipse是自成一格的IDE 其界面布局和其它IDE有 著很大的不同 其中最重要的一个概念就是透视图 根据不同的行为 显示的透视图可能不一样 这种设计是为了满足丰富的插件使用 因此其界面布局有时会发生 很大的变化

  在基本的Java开发环境中 Eclipse放弃了一些约定 它要求用户遵循它的规则 例如 在创建项目前需要先创建一个 工作区 项目是创建在工作区之下的 你也可以在工作区下面创建工作集 对工作区的依赖意味着项目的迁移是件麻烦事 向导提示往往让人犯晕 放手去做 的 思想在Eclipse中行不通 几乎所有事情都需要填写对话框或选择项 要么无法区分或不直观

  图 Eclipse IDE的Java编码界面

  例如 在未安装Groovy插件前 将一个混合了Groovy和Java的项目导入到Eclipse 如果你点击Groovy文件进行编辑 对弹出一个 菜单 包含四个选项 文本编辑器 系统编辑器 本地编辑器和默认编辑器 因为没有提供任何帮助或提示信息 在这里就只能靠猜的方法选择了 事情还没完 如 果你选择系统编辑器 Eclipse开始运行脚本 而不是打开编辑它 总之 开发人员需要有丰富的经验才能很好地驾驭好Eclipse 不要迷恋向导是真 理

  要摸清Eclipse的底细 用户得严重依赖于帮助系统 这么多年来 Eclipse的帮助系统确实进步了不少 但仍然有不足之 处 此外 Eclipse早期版本会虚假报告错误数量 不过现在这一现象已基本得到消除 虽然每次发布新的版本都会修复一些问题 但其核心的编辑功能应该 重写和重新设计

  我还要补充一点 在Java开发领域 Eclipse的设计问题必须要改进了 现在它面对的竞争对手一个也不差 它的 那些缺点更能说明问题 在其它领域 如C开发 原本就鲜有优秀的IDE 因此抱怨的声音也很少 Eclipse现在也是Linux下C/C++开发的主要 IDE

  尽管存在问题 使用Eclipse的插件可以获得无限的扩展性 这也是为什么许多插件开发人员力挺Eclipse的原因 许多 优秀的Eclipse插件在其它IDE中是找不到的 因为这些插件的开发者不愿意移植 如著名的任务管理器Mylin 你只能在Eclipse中享用它

  过去 Eclipse插件管理一直被用户诟病 因为插件之间的依赖性太强了 Eclipse已经意识到问题的严重性 并在逐渐解决这些问题 今年发布了Eclipse Marketplace 一举解决了寻找插件的困难

  JetBrains IntelliJ IDEA

  JetBrains的IntelliJ有两种版本 付费和免费的开源社区版本 本文用于比较的是其付费版本 社区版只提供了基本的编辑功能 IntelliJ IDEA比其它IDE的速度要快 因此吸引了大批忠实用户 对于初学者 IntelliJ的开发人员经常关注Java社区的一举一动 因此他们总能以最快 的速度添加对新的 热门产品的支持 如IntelliJ是第一个为Groovy和Grails提供强大支持的IDE 也是第一个为JavaScript提 供高级支持和调试功能的IDE 即使它不是第一个提供支持的 也会争取是第二个 或是提供更好的支持 IntelliJ可与Ant和Maven无缝集成 支持Spring 并能够从Java编码跳跃到Adobe Flex和PHP

  IntelliJ IDEA凭借其独树一帜的功能赢得了众多用户 如几年前 它率先推出用于单元测试的结果对比窗口 在进行单元测试时 可以并排对比预期结果和实际输出 这在当时可是非常拉风的功能

  即便是如今 它的功能也比其它竞争对手更优秀 有些功能完全是独一无二的 例如 它提供的重构工具就比其它IDE强大得多 此外 它内置的语法检查器不 仅可以揪出明显的语法错误 还可以 闻 出问题 那些写得不好 但可以正常运行的代码在它灵敏的嗅觉下暴露无遗 这样的代码实现包括 简单功能复杂化 只 有一个为 真 的条件等 IntelliJ还提供了代码覆蓋工具 它能在IDE中显示测试时哪些代码被执行过了 IntelliJ还捆绑了开源的EMMA 产品

  图 IntelliJ IDEA有两个并排的编辑器

  IntelliJ还有一个很独到的功能 那就是高亮显示重复的代码 在一个很大的代码库中要找出重复的代码可不是件容易的事情 它还提供了一个依赖分析工具 可以准确地显示出方法之间的依赖关系

  IntelliJ往往会预先考虑到很多需求 例如 这里提到的所有IDE都有一个相同的弹出式功能 当你在编辑器中输入方法的名称时会弹出一个辅助窗 口 这个功能也被称为自动完成 在IntelliJ中 它会借助代码上下文信息猜测你要使用的函数 并将其置于列表顶部 因此使用箭头键向下滚动的几率就 小多了 最不可思议的是 它的准确率很高 这是一个非常人性化的功能

  说了这么多的优点 难道IntelliJ就没有缺点了吗 当然不 是 抱怨最多的就是缺乏良好的文档支持 如果遇到问题可能没有人能帮得上忙 要弄清楚其高级功能也不容易 幸运的是 开发商会回答电子邮件提问 但要想得 到正确的答案 一次只能问一个问题 由于开发商在俄罗斯 因此还需要忍受时差 IntelliJ的第二个问题是启动时间过长 虽然在 中有所改善 但 启动速度仍然缓慢 除了这些问题 IntelliJ是一个优秀的IDE 与其它竞争对手比起来 它是一款成功的商业产品

  NetBeans

  过去 年中 NetBeans的市场占有率上升很快 据位于纽约的BZ市调公司发布的年度Java IDE调查报告显示 NetBeans在受访者中的使用比例是 % 今年这一数字翻了一番 达到了 % 它是这个期间上升最大的Java IDE 在总的普及程度方面 NetBeans仅仅次于排名第一的Eclipse

  NetBeans取得今天的成绩是和它的前主人 Sun微系统公司悉心关注分不开的 当今年早些时候Oracle收购Sun时 Java社区对NetBeans的命运非常关注 特别是当Oracle宣布 不再继续支持Sun的开源项目时 如OpenSolaris和Kenai托管项目 关注度更是达到了前所未有的高度

  Oracle开发 工具产品管理老大Duncan Mills传达了Oracle的旨意 NetBeans将会继续保留 他说 我们会积极支持JDeveloper和 NetBeans JDeveloper主要用于内部和企业用户 特别是那些需要Oracle融合中间件解决方案的用户 而NetBeans主要为那些想 开发其它技术的用户提供 我们希望他们最终迁移到Oracle解决方案和JDeveloper

  NetBeans最突出的优点是它的 易用性 轻盈和简洁 访问它的下载页面就可以感受到这种氛围 例如 下载NetBeans时 你会看到它提供了多种预配置的版本 你只需要选择合适的下载 即可 Eclipse也有类似的体贴之处 而IntelliJ和JDeveloper只提供了粗暴的下载链接

  图 NetBeans编辑器 下方是从代码抽取的未完成任务列表

  NetBeans支持JRuby和JavaFX 这是其它IDE所忽略的 当然 NetBeans也是支持C/C++和PHP的 JRuby最初是由 Sun开发的 这也是为什么NetBeans要支持它的缘故 JRuby重要开发人员Charles Nutter最近告诉我 在语言支持方面 NetBeans有不可逾越的优势 它也支持桌面脚本语言JavaFX Oracle也表示会坚定不移地推动这 项技术的发展 但引来的质疑声也很大 因为JavaFX在用户中间的反响并不好 NetBeans一度停止了对UML图的支持 但幸好现在又提供了

  NetBeans早在几年前就经过了完全重新设计 保留了简单易用的导航 它和IntelliJ不一样 IntelliJ是在输入时执行语法检 查 NetBeans是在后台不断编译 Eclipse有一个配置选项也可以提供类似的功能 这意味着一旦你完成编码 就可以运行代码 了 NetBeans也可以在后台为每个项目创建一个Ant生成文件 对开发人员来说 Ant生成文件是一个非常有用的资源 开发人员可以用它精确地控制 IDE的生成过程

  NetBeans还附带了一个分析器 一个Juint单元测试生成器 以及一个国际化字符向导 对于企业级开发 它 提供了绑定Tomcat或GlassFish Open Server的下载选项 为了监控运行的应用程序 NetBeans集成了对JMX(Java管理扩展)和Jconsole的支持

  NetBeans的插件数量远远少于Eclipse 和IntelliJ IDEA的插件数量相当 其中好多插件都是从Eclipse平台移植过来的 正如我前面提到的 许多Eclipse插件开发者现在都不再往其它平台移植 了 但如果NetBeans继续以最近 年的速度增长 也许情况会有所变化 就目前而言 插件是NetBeans最大的弱项 其它方面NetBeans算 得上是最用户友好的IDE了

  Oracle JDeveloper Studio g ( )

  Oracle的JDeveloper Studio和这里比较的其它产品有很大不同 那句 走自己的路 让别人去说吧 的名言用来形容它最合适不过了 首先它不是免费的 源代码不对外开放 确切地说 它更像是Oracle的内部开发工具

  受Oracle的影响 JDeveloper在某些方面显得非常狭隘 但它也有其独到之处 有趣的是 Oracle公司其它产品的版本号永远不能超过其核心产品 – 数据库的版本号 因此我们经常看到Oracle产品的版本号都很长很长

  JDeveloper的安装很简单 但最终在系统中注册的产品名称居然是 Oracle融合中间件 大多数人认为开发工具不属于中间件范畴 但 Oracle坚持这样分类估计是想强调其对中间件开发的支持强度 例如 JDeveloper为ADF(应用程序开发框架)和Java Server Faces(JSF)组件集提供了许多支持 也支持TopLink(Oracle从BEA收购取得的持久化层) JDeveloper也提供了大量的 Java EE工具 包括一个Weblogic Server的嵌入式版本 它可以在IDE内启动和管理

  如果从上到下全部使用Oracle软件堆栈中的产品 JDeveloper一定不会让你失望 例如 你可以将ADF中的Oracle JSF组件切换成其它厂家的 你还可以做一些所见即所得的UI开发

  图 JDeveloper编辑器 底部面板用于管理嵌入的Weblogic Server实例

  JDeveloper和其它IDE比起来 其响应速度较快 帮助信息也很全 按下帮助组合键 屏幕很快弹出相关的帮助信息 在这方面 它提供的帮助信息 和其它IDE比起来 其上下文感应能力更强 JDeveloper也内置了分析器 可以测量性能和内存消耗 它的语法检查器还发现了一向自诩的 IntelliJ IDEA的代码校验工具未能发现的错误 功夫不负有心人 Oracle在这方面下了大力气 效果就是不一样

  JDeveloper的弱项是缺乏一个强大的插件生态系统 这和Oracle此前忽略该领域的决策息息相关 不过现在Oracle已经醒悟了 虽然 JDeveloper也有不少插件了 但大部分都是公司自己写的 几乎看不到第三方贡献的插件 我找了很久都没有发现代码覆蓋分析插件 这是阻碍 JDeveloper发展的一个重大限制

  Oracle清楚地表明JDeveloper将继续作为公司的主要开发环境 对于那些致力于Oracle软件堆栈开发的组织而言 JDeveloper是不二之选

  下表对几个流行的Java IDE做了一个概述

   Java IDE 平台 成本 总结 Eclipse Java Mac OS X Windows Linux 免费 Java IDE市场的绝对领导者 每年一次重大发布 第三方插件非常丰富 但Eclipse难学 难用 简单任务被复杂化 JetBrains IntelliJ IDEA JDK 或 Mac OS X Windows Linux $ 本次评测唯一的商业软件 其功能完善 易用 但文档仍然不够完善 NetBeans JDK Windows Mac OS X Linux 免费 一款优秀的 易于使用的完整IDE 支持除Java外的许多编程语言 其插件没有Eclipse多 功能没有IntelliJ IDEA完善 Oracle JDeveloper Studio g JDK Windows Mac OS X Linux 免费 一个稳定的 闭源的Java IDE 良好的企业级开发支持 和Oracle其它产品结合紧密 插件数量很少 几乎都是官方提供的

  其它IDE

  为什么有这么多厂商和开源爱好者为Java编写IDE仍然是个迷 之前我们曾介绍了 款Python开发工具 Java IDE领域也毫不示弱 但Java已经很成熟了 因此现在已经很少出现新的IDE 下面这些曾经资深的开发环境都面临退役了

  Embarcadero JBuilder 目前该产品的最近一个更新版本还是JBuilder 根据Embarcadero公司的发言人表示 年从Borland公司买下其IDE产品线后 改名为CodeGear了 鉴于公司还在 开发其它IDE 如Delphi 因此可以认为JBuilder已经走到了生命的尽头

  Genuitec MyEclipse MyEclipse是一个基于Eclipse 捆绑了一组插件的订阅产品 前面我们曾提到 Eclipse插件的寻找 安装和管理都 很繁琐 而MyEclipse正是为此而生 Genuitec也开发一些自己独有的插件 MyEclipse的订阅价格每年从$ $ 不等 包括 技术支持费用

  IBM Rational Application Developer 这个IDE(即著名的RAD)是IBM推出的一系列开发环境中的一部分 RAD和它的兄弟们都是基于Eclipse构建的 简而言之 就是在Eclipse基础上换了一张皮 加入了一些自己的东西 如架构师版本提供了UML建模工具 商业开发版本支持IBM的 GL等 如果你在使用 WebSphere 这些工具的威力就可以显示出来了 但大多数功能和MyEclipse及其他免费的IDE并没有多大区别

cha138/Article/program/Java/hx/201311/26792

相关参考

知识大全 VB.NET和C#逐层横向对比[2]

VB.NET和C#逐层横向对比[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //函数层 

知识大全 横向技术分析C#、C++和Java优劣

横向技术分析C#、C++和Java优劣  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#诞生之

知识大全 gwt和echo2的对比

  综合对比  两个都是非传统的b/s框架都是用AJAX来构造动态网站编程过程都和SWT/Swing差不多  区别在于一个运行于客户端一个运行于服务器  gwt把代码编译为+js目前只支持java规范

四大水处理技术对比及UVLED技术的优势分析

饮用水安全是国家公共卫生安全体系的重要组成部分,与人民身体健康和社会稳定气息相关。2006年我国颁布了生活饮用水卫生标准(GB5749-2006),与1985年的旧标准相比,水质指标由35项增加至10

四大水处理技术对比及UVLED技术的优势分析

饮用水安全是国家公共卫生安全体系的重要组成部分,与人民身体健康和社会稳定气息相关。2006年我国颁布了生活饮用水卫生标准(GB5749-2006),与1985年的旧标准相比,水质指标由35项增加至10

四大水处理技术对比及UVLED技术的优势分析

饮用水安全是国家公共卫生安全体系的重要组成部分,与人民身体健康和社会稳定气息相关。2006年我国颁布了生活饮用水卫生标准(GB5749-2006),与1985年的旧标准相比,水质指标由35项增加至10

知识大全 Java List遍历方法及其效率对比

JavaList遍历方法及其效率对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java代码

知识大全 Java与C#相似之处的对比

Java与C#相似之处的对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在比较Java和C#

知识大全 两款建模工具对比分析比较

一二者的出身    作为世界最著名的两大CASE工具RationalRose和PowerDesigner的名声可谓如雷贯耳Rose是当时全球最大的CASE工具提

知识大全 Java网络编程-Java Socket编程(五)

Java网络编程-JavaSocket编程(五)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!