将IntelliJ IDEA和Eclipse进行Java开发进行比较的任何讨论都是棘手的,因为它很棘手。 我的意思是IDE。 IDE是我们在市场上称为粘性产品的产品。 一旦有人开始使用它,他们就会坚持使用,并且很少切换。 IDE用户变成了进化人类学家所说的“粉丝”。 IntelliJ忠实主义者嘲笑Eclipse狂热者,Eclipse狂热者发疯,一旦每个人都开始命名插件并挥舞着软件许可证? 一切都破了。
难怪初学者在摆脱轻量级学生开发环境后,决定将默认安装的IDE时感到困惑。 他们应该选择大多数教程中使用的还是老师和同事喜欢的教程? 在线上获得正面评价或用户最多的人?
为了一劳永逸地解决这个问题,我们需要从一个困惑的(但客观的)初级Java开发人员和一台新笔记本电脑的角度来看待IntelliJ IDEA和Eclipse。
考虑到IntelliJ终极版(有时称为“ Java开发的凯迪拉克 ”) 的订阅费用 , 我们将假定初级开发人员此时不打算在IDE订阅许可证上花费现金 。 因此,在此比较中,我们将(主要是)谈论提供的IntelliJ免费版本:IntelliJ IDEA社区版。
让我们认识可爱的选手吧。
IntelliJ IDEA
IntelliJ IDEA由JetBrains于2001年发布,JetBrains是一家老牌公司,以前因其Visual Studio的Resharper插件而闻名。 社区版是免费的,主要针对Java和Android应用程序开发人员,它提供了多种语言的支持,包括Java(显然),Kotlin(由JetBrains开发),Groovy,Clojure,Scala等。 IntelliJ IDEA包括高级预测,代码分析和智能代码完成功能,以及一些插件和扩展,可以在您不满意其现成功能的情况下根据需要自定义IDE,设置 。
日食
由IBM在2001年发布的开源IDE Eclipse 最初是为了使Microsoft的Visual Studio黯然失色 。 从那时起,Eclipse已成为用于开源和商业项目的主要平台。 Eclipse具有高度的通用性和灵活性, 旨在满足复杂的企业项目和嵌入式系统应用程序开发的需求 。 除了Java和流行的框架之外,它还支持多种编程语言 。 凭借大量的插件,详尽的文档和庞大的开发人员社区,Eclipse理所当然地获得了忠实的追随者。
开发者想要什么
乍一看,如果苹果和橘子是您未来所有开发工作的基础和家,IDE就像苹果和橘子。 因此,让我们设置一些基本标准,同时仍然假设我们是Java初级,而不是编程课程纸尿裤。
成本
IntelliJ IDEA和Eclipse IDE均可免费下载和使用 ,其中IntelliJ提供了我们上面提到的其他功能的付费版本(“最终版本”)。 作为初级开发人员,免费是完美的标价,尽管记住“免费”还有其他非金钱成本也很重要。 但是我们稍后再讲。
软件许可
IntelliJ IDEA社区版是开放核心而不是开源,并且受Apache 2.0许可证的保护。 尽管这意味着您可以自由地将IDE用于任何类型的项目,但它也反映在插件生态系统上,因为许可证确实在一定程度上限制了插件和扩展的开发。 但是, 作为商业项目,IntelliJ IDEA的优势是拥有预算的公司,而不是社区驱动的非营利组织。
Eclipse IDE是 Eclipse Public License(EPL) v2 下的完全开放源代码, 并且代码由非营利组织Eclipse Foundation维护。 IDE的开放源代码许可证对开发经验的影响很小,但它允许使用更广泛的插件生态系统,并使开放源代码支持者在内部使用由社区开发的软件时就感到温暖。
系统要求
IntelliJ IDEA可以通过以下硬件安装在Windows,MacOS和Linux上:
- 最低2 GB RAM,建议4 GB RAM
- 1.5 GB硬盘空间+至少1 GB用于缓存
- 最低屏幕分辨率1024×768
Eclipse IDE可以在支持JVM的任何设备上运行,包括Windows,MacOS,Linux和Solaris。 它需要的硬件非常基础:
- 最小0.5 GB RAM,建议1+ GB RAM
- 最小300 MB硬盘空间,建议1+ GB
- 最低处理器速度为800 Mhz,建议速度为1.5 Ghz或更快
很容易看出Eclipse的最低要求比较适中 。 由于我们不打算在我们的智能手表上运行IDE, 因此可以肯定地说,即使是过去几年中最便宜的计算机也可以顺利运行而不会费劲 。 但是,如果您要寻找性能,那么相同的硬件可能在两个IDE上都不会给您相同的结果。
性能
等待构建完成或等待编译特别复杂的代码可能会很麻烦。 因此,除非您愿意将这段时间用于其他有趣的活动,否则您可能希望IDE变得既快速又有效。
进行的测试表明,Eclipse IDE 在内存管理方面 远比IntelliJ IDEA高效 。 但是,如果您在Reddit上浏览诸如r / java /等流行的Java论坛,则可能会发现矛盾的论点。
支持的编程语言和框架
在比较用于Java开发的IDE时,有必要了解一下所选IDE支持的其他语言。 您永远不会知道何时可能被迫编辑JavaScript代码或调试COBOL(希望永远不会)。
IntelliJ Community Edition直接支持Groovy,Java,Kotlin和XML / XSL 。 您可以下载并安装插件以进行编程:Clojure,CloudSlang,Dart,Elm, Erlang,Go,Gosu,Haskell,Haxe,Julia,Lua,Perl,Python,Rust和Scala。 支持的框架是Android,Ant,Gradle,JUnit,JavaFX,Maven,Python,SBT和TestNG。
如果您需要对HTML / XHTML / CSS,JavaScript,PHP,SQL或其他语言或应用程序开发框架的支持, 您将被迫花大价钱在IntelliJ中进行开发 。
Eclipse是用Java编写的,因此用于Java开发的工具和SDK是基本安装的一部分 。 但是,由于它是开源的,因此Eclipse IDE具有庞大的插件生态系统,使您几乎可以在一个IDE中使用几乎所有的语言和框架进行编程。 当前,借助 Eclipse市场上可用 的 插件 ,它可以支持100多种编程语言和近200种应用程序开发框架 。
插件和扩展生态系统
目前, Intellij插件市场总共提供3,374个插件 ,其中某些插件专门提供给Ultimate Edition的订户使用,而Eclipse市场上包括1,668个解决方案和IDE扩展 。
在以惊人的速度获得普及之后,IntelliJ社区版在过去两年中也以同样的方式加速了其插件生态系统的增长。 此外,并不总是保证与Eclipse插件具有互操作性 -与其他许多开源解决方案一样,您的工作量可能会有所不同。 使用IntelliJ IDEA,JetBrains可以更好地审查插件,并且彼此之间冲突的可能性也较小 。
对于单个开发人员而言,选择不一定取决于可下载插件的数量,而是取决于开发人员所需的特定组件的可用性,以供其选择的IDE中使用 。
使用方便
说到易用性,很难判断。 没有两个用户是相同的,并且偏好可以归结为诸如UI定制选项或可调整的代码完成之类的事情。 我们要求大多数开发人员在Internet上确认意见– IntelliJ IDEA易于代码完成和检查,因此对初学者更友好。
IntelliJ与Eclipse相比的另一个优势是,许多人将Eclipse定义为更多的插件集合,而不是单独的IDE。 因此,一方面, IntelliJ可为您提供开箱即用的需求 。 另一方面, 如果您想花一些时间来根据自己的特定需求定制环境并修改源代码,那么Eclipse是必经之路 。
值得注意的是,许多开发人员声称IntelliJ提供的易用性和智能编码支持实际上是学习和理解Java编程复杂性的障碍。 然后,其中一些开发人员建议在文本处理器中进行无辅助编码,并在终端中进行编译,以迫使新手在依靠自动化和AI来为他们做一些工作之前真正了解他们在做什么。 归根结底,“好的”编码不是对与错,而是关于意识到编码语言(尤其是Java)是随时间变化的生动活泼的事物。
因此, 保持“纯粹主义者”的态度很可能最终使您落后于曲线 。 拥抱新趋势和最佳实践将使您在编码游戏中处于领先地位。 当然,作为初学者,您需要在走路之前学习爬网,但是“爬网”的必要条件不断变化。 这就是为什么Codota的基于AI的代码完成功能可以从数百万个Java程序中提取代码片段,并在您的IDE,Eclipse或IntelliJ中提供代码建议的原因:)。
人气度
一个IDE优于另一个IDE并不是您选择的唯一标准。 但是, 社区的规模和Java开发人员中的支持者数量可能会影响生产率和易用性 。
如前所述,自从JetBrains于2001年发布Community Edition以来,Intellij IDEA的知名度不断提高,并 于2016 年 超过Eclipse 。 根据 stackshare的说法 ,Intellij IDEA现在拥有更多的粉丝,在Reddit上有更多的积分,但是在Stack Overflow上的问题却少得多。
合适的工作工具
归根结底,重要的不仅是个人用户的偏爱,还有我们初级Java开发人员计划在不久的将来进行工作的项目的需求。 尽管毫无疑问IntelliJ IDEA当前在线上有更多的声音支持者,并且在新的和有经验的Java开发人员中逐渐超过Eclipse,但是我们对初学者Java开发人员的建议是尝试一下,看看他们感觉像家一样。