Intellij Idea - Introduction

IntelliJ is one of the most powerful and popular Integrated Development Environments (IDE) for Java. It is developed and maintained by JetBrains and available as community and ultimate edition. This feature rich IDE enables rapid development and helps in improving code quality.

What is IDE and its benefits?

IDE stands for Integrated Development Environment. It is a combination of multiple tools, which make software development process easier, robust and less error-prone. It has following benefits over plain text editor −

  • Integration with useful tools like compiler, debugger, version control system, build tools, various frameworks, application profilers and so on.

  • Supports code navigation, code completion, code refactoring and code generation features which boosts development process.

  • Supports unit testing, integration testing and code coverage via plug-ins.

  • Provides rich set of plug-ins to enhance IDE functionality further.

Features of IntelliJ

IntelliJ IDEA has some top productive Java code completion features. Its predictive algorithm can accurately assume what a coder is attempting to type, and completes it for him, even if he doesn’t know the exact name of a particular class, member or any other resource.

Deep Insight

IntelliJ IDEA really understands and has a deep insight into your code, as well as the context of the coder, which makes it so unique among other Java IDEs.

  • Smart code completion − It supports context based code completion. It gives a list of the most relevant symbols applicable in the current context.

  • Chain code completion − It is an advanced code completion feature which lists applicable symbols accessible via methods or getters in the current context.

  • Static member's completion − It allows you to use static methods or constants and automatically adds the required import statements to avoid compilation error.

  • Detecting duplicates − It finds the duplicate code fragments on the fly and gives notification/suggestion about it to user.

  • Inspections and quick-fixes − Whenever IntelliJ detects that you're about to make a mistake, a little light bulb notification pops up on same line. Clicking it shows the suggestion list.

Developer Ergonomics

IntelliJ IDEA is designed around the coding principle that developers should be allowed to write codes with as less distraction as possible. That is why in this case, the editor is the only thing visible on the screen, with dedicated shortcuts for all other coding-unrelated functions.

  • Editor-centric environment − Quick pop-ups help in checking additional information without leaving the current context.

  • Shortcuts for everything − IntelliJ IDEA has keyboard shortcuts for nearly everything, including rapid selection and switching between tool windows and many more.

  • Inline debugger − Inline debugger allows you to debug application in IDE itself. It makes the development and debugging process seamless.

Built-in Developer Tools

To help the developers organize their workflow, IntelliJ IDEA offers them an amazing toolset, which comprises of a decompiler, Docker support, bytecode viewer, FTP and many other tools −

  • Version control − IntelliJ supports most of the popular version control system like Git, Subversion, Mercurial, CVS, Perforce, and TFS.

  • Build tools − IntelliJ supports Java and other build tools like Maven, Gradle, Ant, Gant, SBT, NPM, Webpack, Grunt, and Gulp.

  • Test runner and code coverage − IntelliJ IDEA lets you perform unit testing with ease. The IDE includes test runners and coverage tools for major test frameworks, including JUnit, TestNG, Spock, Cucumber, ScalaTest, spec2, and Karma.

  • Decompiler − IntelliJ comes with a built-in decompiler for Java classes. When you want to take a look inside a library that you do not have the source code for, you can do it without using any third-party plug-ins.

  • Terminal − IntelliJ provides built-in terminal. Depending on your platform, you can work with the command line prompt, like PowerShell or Bash.

  • Database tools − IntelliJ provides database tools, which allow you to connect to live databases; run queries; browse and update data; and even manage your schemas in a visual interface from IDE itself.

  • Application server − IntelliJ supports major application servers: Tomcat, JBoss, WebSphere, WebLogic, Glassfish, and many others. You can deploy your artifacts onto application servers and debug the deployed applications in IDE itself.

  • Docker support − Via a separate plug-in, IntelliJ provides a dedicated tool window that lets you connect to locally running Docker machines.

Comparison between Ultimate and Community Edition

The Ultimate Edition is designed to assist in web and enterprise development, whereas the Community Edition is designed for JVM and Android Development. Let us consider a few important points that will help us understand the comparison between the two editions −

Feature Ultimate Edition Community Edition
License Commercial Open-source, Apache 2.0. for commercial development.
Java, Kotlin, Groovy, Scala Supported Supported
Android development Supported Supported
Maven, Gradle, SBT Supported Supported
Git, SVN, Mercurial, CVS Supported Supported
Detecting Duplicates Supported Not supported
Perforce, TFS Supported Not supported
JavaScript, TypeScript Supported Not supported
Java EE, Spring, GWT, Vaadin, Play, Grails, Other Frameworks Supported Not supported
Database Tools, SQL Supported Not supported