Continuing a series of articles focusing on NetBeans users and their five favorite NetBeans IDE features, here's the next part, by Max Calderoni. -- NetBeans team.
Max Calderoni is Software Engineer at VMware. He is currently working in VMware's Storage Solutions unit in various projects involving distributed storage systems and cloud computing services. He enjoys working primarily in Java and uses NetBeans as his favorite IDE. Max has been working in the past in Java projects using the NetBeans Platform around data mining and visualization of oil field simulation data.
What are your 5 favorite NetBeans features?
1. Native Maven Support. The choice of supporting Maven natively in NetBeans has been a really good one. No other IDE supports working with Maven projects the way NetBeans does.
I found this being critically important when working at VMware, where most of the code is written in C and C++. For that, there are not too many experienced Java programmers, as most of the engineers have a Systems background. Engineers coming from C and C++ approach Java often with Eclipse, perhaps because they find mention of Eclipse in books, but unfortunately most projects are Maven-based. At the time when I was working in these projects, people were constantly coming to me to try resolve strange compilation issues and editor error flagging, because of synchronization problems between the Eclipse project system and Maven's project system.
By switching to NetBeans, shown above, those problems were gone. Any folder containing a POM file is automatically recognized as a Maven project that can be opened via the Open Project dialog. Engineers happily go from the IDE to the command line and back, because NetBeans delegates compilation to Maven completely and you are always guaranteed that whatever you have in the IDE is the same as you have on the command line.
2. Dependency Management. When working in distributed systems with Maven, where things get deployed in containers such as Tomcat or Jetty, certain runtime exceptions can happen if you don't pay close attention to what gets inserted in the classpath. Many times, due to Maven transitive dependencies, JARs of the same piece of software, but of different, and some times, incompatible versions, can be included in the classpath.
NetBeans has a very powerful visualizer of dependencies, which flags version clashes and prompts you to correct them from the UI. Those mouse actions translate directly into POM edits.
This is a great feature, and again of considerable help to people new to Maven, who have little understanding about how to manage the classpath with the POM file or by running the Maven dependency plugin.
3. Editor. The editor in NetBeans is fast. There are shortcuts that I can no longer do without, such as the following:
- Ctrl-k for keyword completion
- Ctrl-Shift-1 to go straight to the Java file in the Projects window
- Ctrl-Shift-U to create a unit test class
- Keyword shortcuts like re-tab, psvm, St-tab, pu-tab, etc
4. Debugger. I was surprised to find out how easy it is to debug multiple runtimes in NetBeans. If you work in systems that are distributed, you often find yourself needing to debug two or three Java runtimes at the same time.
NetBeans separates all debugger sessions in different tabs, as shown above, allowing you to go back and forth from one server to a client to another server, following breakpoints in all sessions, threads, and runtimes.
5. Start Page. This might sound odd to mention, as it does not have directly to do with IDE functionality, but the moment NetBeans started posting article titles and news in the Start Page, I got tons of relevant information about Java technologies, IDE features that I did not know of, and interesting tips from blogs and tutorials. I really like this feature as it is relevant in what I do.
In conclusion, I like that it takes only two clicks to report an issue to the NetBeans team. The window will pop up with the exception, you fill a description and click Submit. This is how it should be and that is how it is in NetBeans. No hassle in reporting issues back to the NetBeans team, no need to find the URL, fill in form fields, etc. This is very productive and, in the end, I am sure very useful to the NetBeans team, too.
Do you and your colleagues also want to share your team's favorite NetBeans features with the world? Write to netbeans dot webmaster at gmail dot com.