`
honley
  • 浏览: 118612 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IntelliJ IDEA vs NetBeans IDE

阅读更多

原文地址:http://kim.saabye-pedersen.org/2014/02/intellij-idea-vs-netbeans-ide.html?utm_source=tuicool

 

I have used the two IDEs on a Maven based project containing around 4000 Java files and 500 jsp and a lot of JavaScript. Frameworks used are Spring, Hibernate and various other. To be clear from the outset I have been more involved in NetBeans as I volunteered to be part of the NetCat for NetBeans 8.0. I thought that was a good way to learn the IDE. To be fair against IntelliJ IDEA it should be stated that what I focus on in this blog entry is not tied to the Ultimate edition.

There are obviously many parts of both IDEs that I have not used. However what I have used is the basic stuff that any decent Java developer will use.

Here are my findings:

 

General findings:

IntelliJ has ctrl-w and Netbeans has alt-shift-period. Both commands select the syntactical element the caret is placed at and pressing w or period multiple times will expand this selection (you can also decrease the scope using other commands). When editing Java files the two are equally good but when editing JSP/html and JavaScript files IntelliJ is far superior. I have added an enhancement request to NetBeans.

NetBeans code refactoring tools are not the best. For instance introducing a new variable does not  give you an easy way to change the type  of the new variable (in IntelliJ this works). I have filed an enhancement request for this in NetBeans. I also experienced another problem with NetBeans not being able to extract a method but in fairness to the NetBeans team it should be stated that they promptly fixed it. 

I have also experienced some strange problems in NetBeans, for instance that running a Spring Boot project will not shut down the Tomcat process that fires up when stopping the project from running. This means that the Tomcat port will be taken when you rerun the project (this is Mac specific). Doing the equivalent in IntelliJ or Eclipse for that matter takes down the Tomcat process (also on a Mac). I also experience exceptions that the NetBeans team say is caused by the JDK (1.8 which they recommend) but that they won't/can't fix or work around. Maybe Mac and NetBeans are not a match made in heaven because have also reported another bug that is related to Mac and that can't be solved.

Slowness issues:

Running unit tests in Netbeans is very slow compared to IntelliJ (my workflow is the usual TDD flow where you make some tests, make code change, run test and so on). It seems to me that Netbeans is noticeably rebuilding everything via Maven to run a single test, whereas IntelliJ must have a better model or does something in the background as you code as it can run the tests immediately (turning compile on save on or off in NetBeans does not change this).  I have filed an enhancement request to NetBeans.

Alt-F7 in NetBeans and IntelliJ means the same thing: finding usages - something I do a lot. However, finding usages in the two IDEs is very different. In NetBeans finding usages takes some time (you acutally have to wait while the IDE searches) whereas the usages pop up immediately in IntelliJ. This must be due to some superior indexing in IntelliJ. Also simply finding files or types in the two IDEs show that IntelliJ has better indexing and it gives you instantaneous results.

Debugging in NetBeans and IntelliJ also leaves you with two very different user experiences. NetBeans is annoyingly slow at showing the variable values.  I often have to sit and wait for long enough to notice that I am waiting.

When you import a Maven project into NetBeans, it will try to update its Maven index (at least on the first run, but I experienced it often, also simply when adding new dependencies in the pom files). This is a very painful experience as it takes a lot of time to process the index files that it downloads (+10 minutes where the IDE is practically unusable - but I least I get to hear my fans fire up).

NetBeans IDE has a slowness detector which will report an exception if an operation takes more than 5 seconds. I think 5 seconds is a long time to wait and that should probably be down to 2 seconds for IDE operations (of course if you ask it to do a Maven build, you can't blame the IDE for Maven being slow).

Final words: 

To be honest I started out the investigating hoping that NetBeans would be better. But IntelliJ is simply a better IDE. But don't take my word for it, try it yourself. That said, is was fun to be part of the NetBeans community, finding and filing bugs (of which I have filed +40 in the last two months) and seeing them get fixed so I will probably give NetBeans a try again later which might be when I have to pay for a personal license for IntelliJ :)

Edits:

I have fixed some cut and paste errors and typos after publishing this entry.
 
 
分享到:
评论

相关推荐

    IntelliJ IDEA 2017.2 Help.PDF

    对于使用过其他IDE如Eclipse或NetBeans的用户,文档提供了迁移指南,帮助他们将已有的项目迁移到IntelliJ IDEA。 ### 针对高级用户的内容 文档中还包含了一些高级指南,如General Guidelines,它提供了关于如何...

    高清彩版 Eclipse转移到IntelliJ IDEA手册

    Eclipse、IntelliJ IDEA 和 NetBeans 这三种主流的Java IDE,各自拥有忠实的用户群体。本文将详细介绍如何从Eclipse顺利过渡到IntelliJ IDEA,并探讨IntelliJ IDEA相较于Eclipse的优势所在。 #### 一、为何选择...

    How to Get Started with IntelliJ IDEA as an Eclipse User

    作者Anton Arhipov分享了自己从Eclipse和NetBeans转向IntelliJ IDEA的经历,解释了为何他认为IntelliJ IDEA更适合他所从事的工作。 #### 一、为什么选择IntelliJ IDEA? 在软件开发界,围绕着IDE的选择的争论不亚于...

    Eclipse转移到IntelliJ IDEA手册(英文版).pdf

    3. Eclipse的使用体验:作者提到在使用Eclipse和NetBeans一段时间之后,发现IntelliJ IDEA更能满足自己的工作需求。 二、IntelliJ IDEA的亮点 1. 功能支持:作者明确指出IntelliJ IDEA在支持他工作方面表现更佳。 2...

    Intellij Idea安装配置教程

    对于习惯了Eclipse或NetBeans等其他集成开发环境的用户来说,IDEA提供了不同的项目结构概念,即项目(Project)相当于Eclipse中的工作空间(Workspace),而模块(Module)则相当于一个独立的项目(Project)。这一理念上的...

    Getting started with IntelliJ IDEA

    IntelliJ IDEA is a commercial Java development tool which competes with the free Eclipse and NetBeans projects. It is an integrated development environment (IDE) designed to automate parts of the ...

    Eclipse转移到IntelliJ IDEA手册

    Coffee or Tea?...Eclipse or IntelliJ IDEA (or NetBeans)? Believe it or not, software developers argue as much about their IDE as any of these other hotly-debated topics. And for a good reason...

    Intellij idea安装及使用教程.pdf

    - **IntelliJ IDEA**:JetBrains出品的高效Java IDE,以其强大的代码辅助、重构功能等闻名。 - **官网**:[IntelliJ IDEA](https://www.jetbrains.com/idea/) #### 第四章 IntelliJ IDEA 特点介绍 - **创新的GUI...

    基于 Java 的简单拼图游戏,使用 JDK 8运行

    java拼图小游戏项目 ...支持 Java 8 的IDE(例如 Eclipse, IntelliJ IDEA, NetBeans) 小白推荐IDEA! 3. 构建项目 你可以使用 IDE 的构建系统或通过命令行构建此项目: javac -source 1.8 -target 1.8 src/*.java

    IDEA CheckStyle插件离线安装包 checkstyle-idea-4.10.0.zip

    5. **跨平台**: CheckStyle不仅适用于IntelliJ IDEA,还支持Eclipse、NetBeans等其他IDE,以及命令行工具。 总结来说,CheckStyle-IDEA插件是Java开发者必备的工具之一,它能够帮助我们保持代码的整洁和一致性,...

    lib_javalib_ide_

    而IDE(如Eclipse、IntelliJ IDEA或NetBeans)通常会集成这些库,使得开发者可以直接在环境中使用,无需手动添加。 在“压缩包子文件的文件名称列表”中,只给出了“lib”这一项,这通常表示这是一个包含多种Java库...

    Netbeans 6.8 安装后配置记录

    可以通过“文件”>“导入项目”菜单来完成,支持导入Eclipse、IntelliJ IDEA等其他IDE的项目格式。 3. **配置源码风格和格式化规则**:为了保持代码的一致性和可读性,开发者可以定制代码风格和格式化规则。这在...

    JAVA程序设计课件-掌握IDE的使用.pptx

    本课件主要讲解了JAVA程序设计中集成开发环境(IDE)的使用,包括Eclipse、NetBeans和IntelliJ IDEA等IDE的特点、优势和使用方法。同时,还讲解了JAVA程序设计中的变量类型转换规则和自动类型提升的概念。 一、集成...

    Java概述ppt课件.ppt

    开发者通常使用集成开发环境(IDE),如Eclipse、IntelliJ IDEA或NetBeans,这些IDE提供了代码编辑、构建自动化、调试等功能,大大提高了开发效率。 1.3 Java程序举例 Java程序通常由类(class)组成,通过public ...

    付费查看JAVA源码-idea-plugin-revu:IntellijIDEA的简单团队代码审查器插件

    Netbeans 有他们的代码审查插件,...)而 IDE 集成是关键特征。 主要特征 设置简单 不需要服务器。 审查定义存储在 XML 文件中,您可以在版本控制系统上共享这些文件。 语言不可知论您可以查看各种文本文件 灵活,您...

    Aspose_Maven_for_NetBeans:Aspose Maven for NetBeans 允许您通过从 Aspose Java 产品线(如 Aspose.Cells for Java 和 Aspose.Words for Java 等)中选择 API,在 NetBeans IDE 中创建基于 Aspose Maven 的项目

    为 NetBeans 设置 Maven 这是发布的另一个 NetBeans 插件,它创建基于 Aspose maven 的项目。 Aspose Maven for NetBeans IDE 插件使 Java 开发人员能够使用处理各种二进制文件格式。... (IntelliJ IDEA 插件)

    Java语言学习教程大纲及实例

    - 使用IDE(如Eclipse, IntelliJ IDEA或NetBeans)创建第一个Java程序 2. **Java基本语法**: - 变量声明与类型(int, String, boolean等) - 基本数据类型和运算符 - 控制结构:if-else语句、switch-case语句、...

    ide-eval-resetter-2.2.3-031813.zip

    3. 兼容性广泛:可能支持多种流行的IDE,如IntelliJ IDEA、Eclipse、NetBeans等。 4. 安全无害:在重置评估期的同时,确保不会损害用户的个人数据或项目文件。 5. 用户友好:界面简洁,操作步骤清晰,便于用户使用。...

    swing小程序

    本教程将深入探讨在IntelliJ IDEA和NetBeans两个集成开发环境(IDE)中使用Swing进行开发的方法。 首先,让我们了解Swing的基本概念。Swing库基于Java AWT(Abstract Window Toolkit)并进行了扩展,提供了更多的组件...

Global site tag (gtag.js) - Google Analytics