Top Reasons to Upgrade
Much Faster Start-up and More Instant Feedback
Nobody wants to waste his time. Prior to version 9, an "index update" dialog appeared each time when opening a project and the indexing process could take as long as several minutes on some very large projects. IntelliJ IDEA 9 includes a time-saving "background indexing" feature, which hides the indexing action in the background. IDEA will still scan your classes, so as to give you all the advanced code-assistance features, however, you can now safely open and edit your source code while the indexing process runs. This means that you can be productive right after the startup of the IDE. Background indexing greatly improves the user experience for developers who work on large code bases. Note: a warning will occur if you try to use an advanced feature, such as refactoring, while the background indexing process is running.
Maven import has also been moved to the background in order to improve the user experience. And last but not the least, we have also made the user interface faster — there are less cases when the user needs to wait for the IDE to respond.
More Frameworks Supported Out of the Box and New Language Features
The previous version of IntelliJ IDEA already supported many frameworks and technologies, however IDEA 9 adds much more useful functionality available out of the box — without the need to search for plug-ins. The new Java EE 6 specification is fully supported — including Enterprise Java Beans 3.1, JavaServer Faces 2.0, Java Persistence API 2.0, Servlet 3.0, Web Beans and Bean Validation. We have updated our Spring support to version 3.0, too. Other newly supported frameworks and technologies include Tapestry, OSGi, Android, Griffon, Google App Engine, Google Web Toolkit 1.x/2.0 and Subversion 1.6. Support for all of these frameworks is nicely integrated into the IDE, which means that you can use framework-aware code completion, cross-technology refactorings, inspections and other advanced features which help improve the quality of your code. You won't find such wide range of out of the box functionality in any other IDE on the market!
IDEA 9 now also includes Type Annotations Support (JSR-308), so you can use new useful annotations, such as the @NotNull, @Pattern and such, for various elements in your source code.
Easier Source Code Understanding and Better Tools for Exploring Your Codebase
People frequently complain about the verbosity of Java. While this may hold a lot of truth, we have greatly improved source code readability by including new folding features. You can now fold boring pieces of code such as anonymous inner classes or listeners and thus make your the code in the editor more compact for reading.
Before
After
And properties can be folded similarly to hide boring code.
A small preview for icons is now being shown in the editor gutter anytime you use an Icon in your code.
![]()
IDEA 9 is capable of highlighting unused code globally in your whole project (IDEA scans all your classes so it can understand which artifacts are being used, no matter which frameworks or technologies you use). Also, there is now a dedicated Grails Project View reflecting logical structure of your Grails Web applications. If you want to investigate data flows in your application you can use the DataFlow to this and DataFlow from this feature. It shows you the whole flow of data including individual values if possible.
IntelliJ IDEA 9 brings quite a few improvements in the UML modeling functionality. The UML pop-up has been enhanced so that now you can use it to update your code. For instance, feel free to add subtypes, add classes from signature or add super classes right in the UML pop-up. Don't hesitate to even remove elements in the UML pop-up. The window containing the UML diagram automatically resizes to accommodate for the actual size of the diagram. The UML pop-up will also help you review all changes done between different code revisions. You may find a lot of other smaller improvements when working with UML and you'll definitely enjoy its robustness now after a numerous bug-fixes that have been applied to it.

Finally, Maven support has been update to include a dependency graph.
Smarter Editor for Better Coding Productivity
IntelliJ IDEA already provided smart type completion (Ctrl-Shift-Space) but in version 9 it was improved to be able to insert multiple parameters at once:

You can now also define which classes should be excluded from auto-import and from code completion:

IntelliJ IDEA 9 provides a new code spell checker. How does it work?
Let's say you create a method called getSometing()
. It's hard to notice
the typo in this method name, but IDEA can underline the method name
because "someting" is not an English word. So IDEA supports the
practice of having easy to read code with proper method, variable,
class, etc. names. Of course, this feature can be turned on and off as
needed.
There is also a new intention called "to/from atomic", which converts regular fields into atomic objects (e.g. int field to AtomicInteger). We have also introduced several new inspections such as the "assert with side effects" inspection.
Even More Languages into Polyglot's Toolbox
PHP language is now officially supported by IntelliJ IDEA. The IDE brings PHP developers advanced editing features such as smart code completion, various refactorings, and code analysis functionality. Together with database support, HTML editor, XML editor, JavaScript editor, and JavaScript debugger, you get all the tools you need to develop PHP applications with pleasure!
To allow you leverage the power of the new promising languages, we
have improved the Scala plug-in with many new features (you can get the
plug-in from the Plugins section of the Settings dialog).
And it's also well worth your attention that the La Clojure plugin will
enable you to perform serious work with Clojure, a language, which is
quickly becoming popular as people start recognizing the importance of
writing safe heavily concurrent code.
On the database side, IntelliJ IDEA now supports the PostgreSQL and Debry SQL dialects for all of it's database features (most of the other typical SQL database dialects have already been supported).
Greatly Improved Flex Development
With IntelliJ IDEA 9 you can develop, deploy and debug Adobe AIR
applications. You can point IDEA to the SDK and you're ready to go.
FlexUnit testing framework is supported, so you have no excuse for not
testing your Flex code right from within the IDE:
As expected, you can also refactor your ActionScript code and so
benefit from the newly introduced refactorings: move member, pull
method up, extract method and inline variable.
The show class/method/call hierarchy feature enables you to browse your
Flex application source structure and the editor will help you generate
event handlers. With all that has been mentioned so far we believe that
the ability to import projects directly from Flash Builder will now
come you in handy.
Improved Web Development
Debugging JavaScript has never been so easy — thanks to the new integration with Firefox in IntelliJ IDEA 9. Simply create a JavaScript Debug configuration, select Firefox from the Browser list and click OK. Or even simpler, just right-click in an HTML file and select the Debug option. IntelliJ IDEA automatically installs a plug-in for Mozilla Firefox and starts debugging.
As for JavaScript code assistance, IDEA 9 introduces the Extract Method and Inline Variable refactorings. JavaScript conditional comments are now supported, too.
More Flexible Project Structure
IDEA 9 brings a more powerful and flexible way to set up packaging configurations (artifacts) for your project. Artifacts can be configured in the Project Structure dialog. Once configured you can build an artifact at any time from the main menu or you can automate it with the use of Build on make option in artifact settings, and Build Artifacts option in run configuration settings:

Packaging configurations of existing JavaEE facets are migrated to artifacts automatically.
We have also introduced on the fly module reloading which means that you can for instance manually edit the .iml file in IDEA and when you press save, project structure will be changed instantly. Reload of the project is not required, as it was required in previous versions.
Finally since version you can choose different dependency scopes - you can specify whether a dependency is "compile time", "test only", "runtime only" or "provided". Semanitcs of these scopes is quite similar to Maven's scopes.
General UI Improvements
IntelliJ IDEA 9 brings a new powerful Ctrl+Tab action that allows you to switch between open files in editor and tool windows. It works similar to Alt+Tab on Windows or ?+Tab on Mac.

It is now also much easier to select and run/debug different Run configurations using keyboard. There is a new small pop-up which lets you choose which configuration you want to run.
Numbered bookmarks are another valuable addition to IntelliJ IDEA 9. You can define a bookmark and assign a number to it (0-9). Then you navigate between the bookmarks very easily using the keyboard.
And as for the user interface, drag & drop items freely from the operating system or copy and paste from/to native shell.
IntelliJ IDEA 9 has added great support for defining and managing tasks. As a developer you often receive new tasks from your management and co-workers, and IDEA helps you keep track of them while you implement different features or fix bugs. By activating a new task, IDEA cleans your workspace, creates a change list, and optionally loads a stacktrace (if there is an exception description in that task). And importantly, it's so easy to switch between your tasks and contexts:

Colors can add a whole new dimension to the information you get through the user interface. IntelliJ IDEA 9 lets you assign custom colors to arbitrary sets of files (Scopes) in Editor tabs or Navigation lists (Go to class/file, etc). This helps you understand at a glance, which class you are looking at: a JDK class, a library, a test, a DAO, Domain logic or user interface of your own application, whatever you feel fit.

Safe Investment — the Core of IDEA is Now Open Source
Starting with version 9.0, IntelliJ IDEA is offered in two editions: Community Edition, free and open-source, and Ultimate Edition, which until today has been referred to as simply IntelliJ IDEA. The brand new Community Edition is built on the IntelliJ Platform, which has also been open sourced. Customers can decide which version fits their needs — Community Edition is limited to Java SE, Swing, Groovy and Scala development only.
JetBrains has also started a new open source site jetbrains.org to make it easier to cooperate with the whole community formed around IntelliJ IDEA.
Existing customers benefit greatly from the open source project:
- Wider user base means more plug-ins and more features developed by the community and available for all
- Better quality thanks to community testing and regular quality assurance by JetBrains
- More and earlier community feedback leading to better implementation of features
- More available documentation thanks to community contributions
- More languages and frameworks supported on top of the platform thanks to community contributions
- As more people learn and use the platform and the IDE, it will become easier to find people with a good knowledge of IntelliJ IDEA (both for hiring and for consulting)
Read more information about the reasoning for open sourcing core of IDEA and other topics in the FAQ.
