Review: JetBrains IntelliJ IDEA 4SummaryJetBrains' IntelliJ IDEA is somewhat of an anomaly: a third-party, non-open- source, Java-only integrated development environment(IDE) made by a company that doesn't have it's own J2EE application server. I think it's mere existence in the marketplace speaks volumes about how it is accepted. IDEA has consistently won awards, users' choice, good reviews, etc., because of their innovation and solid usability. Version 4.0 seems to be no different; JetBrains has added a number of features that make Java development even easier. IntroductionVersion 4.0 of IntelliJ IDEA brings with it a number of useful new features. Some of these features include:
Setup and InstallationOne of the great things about IDEA is that you can run it on just about any OS including, Windows, Linux, Unix and Mac OS X. You will need at least 256 MB of RAM and an 800 Mhz processor (Windows/Linux/Unix) or 1.42 Ghz G4 (Mac). Installation is a snap in all environments--provided you have a stable JDK 1.4.2 installed. Note that if you are using the 30-day trial, you will need to register at their Web site to obtain a temporary license key.
The User InterfaceIDEA's user interface is similar to most popular IDEs out there today. What I find most useful about IDEA's interface is how simple it is to display and hide the different windows within the environment. For example, if I want to see my to-do list, I can click the ToDo(s) button at the bottom of the screen and it will show me what I need to see, click it again and it's gone. This may seem fairly rudimentary, but other IDEs tend to use archaic icons or options in the file menu that require some searching. How often have you closed a window only to spend 15 minutes at a later time trying to see it again. More advanced users can toggle using key commands also. Any developer will find IDEA's interface similar enough to be comfortable, yet like the above example, it seems to have features that you always wished your other IDE had, although you wouldn't have known to ask for it. One really cool feature is the floating mode. This mode allows tool windows to have a transparency level and just "float" over the other windows, to be positioned wherever you like. This works great for the times when you want to have access to a set of tools without having to significantly shrink the main editing window. Additionally, the IDE interface is entirely customizable. All of the elements in a file are color-coded. These colors can be customized to represent different types of objects or even display differently depending on whether you are editing an XML file, an EJB or a JSP template. Additionally, the location of window tools and appearance are easily customized. Figure one shows IDEA's basic user interface.
Coding ToolsBottom line: IDEs purpose is to write code - or at least make the prospect easier. IDEA fulfills this by providing intuitive code completion tools. When you declare objects, IDEA will recognize their methods and constructors and show them in a drop-down list, as options, when you type out object instances. This can save valuable typing time. Closing brackets and indentations are automatically handled. Live Templates is a great feature that allows the developer to type in the name of a template and IDEA will automatically insert the template code--for example, a generic for loop. Simply create your own templates for code snippets you use often. Segments of code can easily be "folded", or hidden, to make scrolling through your code easier and IDEA will automatically recognize segments that are "foldable", such as a class definition or a comment segment. In version 4, developers can now utilize split plan editing, so you can see two parts of the same file at the same time. These are all just the tip of the proverbial iceberg.
RefactoringOne of the features that has been with IntelliJ IDEA for a long time, and been a significant factor in its popularity, is the refactoring. IDEA makes it simple to change the name of methods or variables. You can move a package or class or even a method by simply dragging and dropping. IDEA will automatically update all references to that article. It is somewhat surprising what you can change in one place without having to worry about inheritance and other references to what you have changed: changing methods to static, adding or removing parameters, changing the return type and so on. In the case of adding parameters, you will need to supply a default value, but in most cases these changes are done with little additional input. The refactoring in IDEA goes deeper than most IDEs and deeper than I can go here. I recommend taking a look at IDEA's Web site for more refactoring information.
DebuggingI like the debugger in IDEA not just because it's effective, but also because it is very simple to use and easy to decipher. The interface is easy to read, with collapsible entries. New in version 4, the debugger will support HotSwap debugging, where you can modify and recompile the code during the debugging process. Debugging JSP's can be done from within the IDEA environment, without having to browse the page, by using the JSR45 plug-in. The usual features are also all present: stepping in/out, watches, breakpoints, etc., but also a number of other features, such as conditional breakpoints, advanced expression evaluation and thread suspension. One of the features I find particularly useful is the ability to view the data within collection classes and customize the output of the toString() methods. This allows developers to better see what's being stored in specific objects and thus better find what's working and what's not within their application. Along the same lines, IDEA allows you to setup multiple "execution profiles" for running and debugging applications. This might include JUnit testing, remote debugging, or even WebLogic instances. Something else worth noting is that the exception window allows for easy navigation to the source code for quick edits and fixes.
Other ToolsAll of the aforementioned features are expected, to a certain degree, within any IDE. However, IDEA includes a number of other tools that are beyond the expected. Here are a few examples.
GUI DesignerDeveloping Swing-based and other graphical user interfaces in Java can at times, be somewhat cumbersome. IDEA's GUI Designer works to make this process easier. A layout/form builder tool allows different graphical elements to be displayed and edited in a drag-and-drop fashion. This GUI layout is kept separate from the code, and data bindings are set up. This makes for a clear separation between presentation and logic. You can even create a binding before you have created the matching object(IDEA will set an intention action for you to create the object later) so you are not held back by this separation. Ant project integration, I18N support and custom component integration is also supported here.
Diff ToolVersion 4.0 has an advanced comparison tool that will allow you to compare two files, compare a selection to clipboard entries, move distinct changes from one version to another and more. These changes can include, or not include, whitespace information. And did I mention these can all be done with a few keystrokes or mouse clicks?
Version Control IntegrationIDEA will integrate with Visual Source Safe, StarTeam and CVS to allow for teams to work on projects without stepping on each others' toes. The VSS and StarTeam integrations are good and features are about what you would expect, check in, check out, mark project as current, lock and unlock, etc. The CVS integration is impressive. You do not need to install a CVS client and IDEA will auto-configure CVS by detecting project files. A File View tool window allows for easy file browsing - even of remote and non-integrated CVS repositories. You can use the Diff Tool with CVS entries. You can roll back, merge and all that other good stuff; all this from directly within IDEA. ConclusionIf you're in the market for an IDE, or even if you think you are happy with your existing IDE, you owe it to yourself to at least check out IntelliJ IDEA. IDEA offers so many intuitive, user-friendly tools that it allows you to literally develop as fast as your ideas come and. Now at version 4, IDEA is a mature product that will integrate with just about any enterprise. More Information
Drew Falkman is the author of the JRun Web Application Construction Kit and co- author (with Ben Forta) of Reality ColdFusion: J2EE Integration, both published by Macromedia Press. Over the past 6 years, Drew has developed over 150 Web applications in all sizes using ColdFusion and Java. Currently Drew consults, speaks at events, writes for numerous publications, and teaches courses at Portland State University. His latest project through his consulting company, Veraison LLC, was a real-time cattle auction using Flash Remoting and Flash Communication Server. In addition, Drew is a member of Team Macromedia, a certified ColdFusion Developer and a certified Macromedia instructor.
|