Review of the JetBrains IntelliJ IDEA—why we’re using it at eXo

IntelliJIdea_1

A few years ago the vast majority of developers at eXo were using Eclipse to develop our products. But two years ago something new appeared. As we were developing Open Source products in eXo, we also got a free license from JetBrains to use the Ultimate Edition of IntelliJ.

We’re a curious bunch at eXo, so everyone gave it a try. Some came back to Eclipse after two days, and some took a closer look but stopped after a few weeks. Others are still using IntelliJ today, and if you ask them, they will tell you that “IntelliJ is the best IDE for me.” It’s not perfect, of course. They will also tell you that IntelliJ still has some room for improvement.

That’s why, at JetBrains’ request, we’re publishing a review of IntelliJ on our blog today. We’ll tell you what we think about IntelliJ at eXo—why we use it, and why some developers like it and others dislike it.

No rigorous scientific protocol here. We won’t use a framework or tool to measure its performance or create a big comparative table to compare each feature of IntelliJ with other IDEs like Eclipse or NetBeans.

It’s just feedback. From eXo developers, to any developers interested in IntelliJ.

The need

First of all, what’s the need? Which technologies, language, or framework do we use? These are important questions to ask before choosing any IDE.

At eXo, we navigate primarily in the Java world (using Java EE and Groovy, among others) and the Web world (using JavaScript, Less, and HTML). We use Maven for build automation and Git for source code management.

All of these are natively integrated in the Ultimate Edition of IntelliJ. You can work with all languages, technologies, and frameworks with IntelliJ out-of-the-box: no need to install a huge number of plugins. Install, open, and get to work.

User Interface

The one thing we all agree on here is the default user interface that needs to be changed. Change the default theme to Dracula and just enjoy:

01-IntelliJ-dracula-theme

Project Management

Have you ever encountered some annoying error after importing a Maven project into your IDE? For instance, a “plugin execution not covered by lifecycle configuration” error. At eXo, we sure have. Was our IDE not well-configured? Or did we not download the right plugin? With IntelliJ we import, we work. No unintelligible errors to investigate.

Unfortunately, you cannot open multiple projects in the same window. If you want to open different projects at the same time, you have to open many windows and switch between them. That can be really annoying when you’re working on different projects.

Git, like Maven, is also natively integrated into IntelliJ. Projects checkouted from VCS are automatically organized and ready to use. In IntelliJ, you can checkout a Git branch directly or quickly take a look at the commit history:

02-IntelliJ-commit-history

By the way, we have encountered some limits to Git integration with IntelliJ. Git tags are not displayed like branches are, which means we have to go to github to get the list of all tags or use other tools, like git batch. Consequently, when we checkout a tag, it displays the last commit ID rather than the tag version, which is not helpful at all.

Language and Framework Support

IntelliJ IDEA provides out-of-the-box support for many different languages and frameworks. Again, no need to install plugins to develop applications in Java EE or Groovy. All the “must have” functions of modern IDEs are present. Code completion and renaming suggestions are clever and natively support a lot of file formats. However, if Groovy is natively integrated into IntelliJ IDEA, a nice support for Groovy Template is still missing.

JavaScript is natively integrated as well. If you’ve already tried WebStorm from JetBrains to develop in JavaScript and you enjoyed it, you will have the same experience with IntelliJ IDEA: smart code completion, auto code formatting, a powerful refactoring tool. You’ll be happy with it.

The syntax highlighting is sublime. For instance, in a Less or CSS file, you can even see an overview of the color, shown in hexadecimal on the left bar:

03-IntelliJ-less-css-edit

I did a demo for our UI team a few weeks ago and now they are using IntelliJ. It’s very easy to navigate between a huge number of Less files, and the auto completion and code formatting are very useful.

Tools and configuration

IntelliJ knows a lot about your code. You always find what you are looking for, thanks to the powerful Search Everywhere feature. You can search for anything—files, class, settings—from anywhere, in record time.

Most developers who tried IntelliJ and went back to Eclipse said they were too accustomed to Eclipse and felt lost in IntelliJ. Project View and Package are different, and they lost their shortcuts. It’s true that after using Eclipse for many years, it’s difficult to change. And if you don’t feel the need, you don’t have to. But you should know that IntelliJ can be easily personalized. For instance, you can set the shortcut to Eclipse instead of using the default:

04-IntelliJ-preference

And You?

The purpose of this post was to provide a simple review of IntelliJ IDEA, based on the feelings of IntelliJ users at eXo about this IDE. We also wanted to figure out why we are using it more and more around here. The result is a mix of personal opinions, so it’s definitely not an impartial or exhaustive list. If you’re not familiar with IntelliJ, though, we hope it gave you a feel for it.

If you have used it, we’re interested in your point of view. Have you ever tried IntelliJ IDEA? Did you enjoy it? Is there anything you’d like the developers to know? Tell us on community.

Join the eXo tribe by registering for the community and get updates, tutorials, support, and access to the Platform and add-on downloads!

Make the most out of eXo Platform 4

Register to the next webinar and get a complete overview of what you can do with eXo Platform 4. Reserve your seat now!

Be part of the discussion, share your comments

comments

Keep in touch with the author

Tags: , , , ,