IDE like an update, please: JetBrains freshens IntelliJ, adds improved GitHub integration, Java support

Issues? Visit the website or use Visual Studio Code

21 Reg comments Got Tips?

JetBrains has released IntelliJ IDEA 2020.2, a big mid-year update that adds support for Java 15 and Jakarta EE9 as well as improving its GitHub integration.

JetBrains' IntelliJ platform is the basis for a range of IDEs including Google's Android Studio. The IDE runs on the JVM (Java Virtual Machine) and is mainly written in Java with some pieces in Kotlin, a language invented and maintained by JetBrains which targets the JVM (Java Virtual Machine).

The core of IntelliJ is open source and can be found on GitHub in the guise of the free IntelliJ Community Edition.

A StackOverflow 2019 survey (the question did not feature in the 2020 equivalent) showed IntelliJ as the fourth most popular development environment, used by around 25 per cent of developers, behind Visual Studio Code, Visual Studio, and not forgetting Notepad++. Given the extent of the competition from free tools, JetBrains has done well to stay in the commercial IDE game, boosted by Google's use of IntelliJ for Android Studio along with the anointing of Kotlin as the first-choice language for Android development.

JetBrains is releasing version 2020.2 of its Java IDE this week.

JetBrains is releasing version 2020.2 of its Java IDE this week

Major updates to IntelliJ come three times a year, generally in March, the end of July (this one) and November/December. This week brings the release of IDEA 2020.2, which is the Java/Kotlin IDE and the most comprehensive product in the JetBrains family. Other related IDEs cover Python, JavaScript, PHP, C#, C/C++. Ruby, Objective-C/Swift, and Go. You can also add support for these languages into IDEA via plugins. Differentiation between the commercial, language-specific and free editions is achieved by varying the level of access to closed-source plugins, with IDEA Ultimate getting you everything.

IntelliJ IDEA 2020.2 brings significant updates for Java developers including support for Java 15, the update expected in September. This means things like support for records (lightweight classes for carrying immutable data), and highlighting for sealed classes and interfaces. You can set the language level of a project so that these features only kick in when appropriate.

There are also more general Java updates. If you are debugging and an exception files, static analysis will try to find the root cause and navigate to the line of code that caused it (often not the line where the exception was thrown). There is also a new data flow analysis that will report expressions that evaluate to zero even when "non-trivial", according to the docs. A new right-click action will collapse statements into a loop where this makes sense.

The 2020.2 update also adds support for Jakarta EE 9, the big release with nothing in it but namespace changes from javax to Jakarta. On the framework side, there is also improved support for Quarkus, for microservices running in Kubernetes, and micronaut, another microservices framework. Swagger UI, for visualising APIs, is now integrated into the IDE. Android developers will now get all the updates in Android Studio 4.0.

Developers who have used IDEA will know how annoying it can be to wait for a large project to be indexed. A new shared indexes plugin lets you download indexes created by others working on the same code, or for standard code such as JDKs. The team reckon this will cut indexing time by around 60-75 per cent.

IntelliJ IDEA 2020.2 also features a revamped Inspections Widget showing warnings, errors and other issues, with a redesigned user interface and navigation using arrow keys rather than the old F2, though that still works.

On my OAuth

GitHub support is another theme in this release. In particular, you can now perform an entire pull request workflow from within the IDE, including browsing, reviewing, assigning, commenting and merging. GitHub authorisation is now based on OAuth – not before time, since password authentication is deprecated. Developers on Windows can now use Git installed in the Windows Subsystem for Linux 2 (WSL 2).

GitHub Pull Request integration allows developers to review and merge pull requests from within the IDE.

GitHub Pull Request integration allows developers to review and merge pull requests from within the IDE

Keeping up with VS Code when it comes to GitHub integration is challenging, though it seems unsurprising since both are Microsoft-owned. VS Code supports not only pull requests but also GitHub issues, including the ability to create issues from todo comments in your code. IntelliJ IDEA does support GitHub as a source of what it calls “tracker tasks” which it can link to GitHub issues, but it has limitations compared to full per-project integration.

JetBrains need not worry too much, at least for its Java developers, since its Java language support is way ahead of that in VS Code.

We took a quick look at the latest IDEA. JetBrains has been at this for while: the first IDEA was released in 2001. As you would expect from a mature product, its Java support is comprehensive and it is particularly strong in static analysis and refactoring tools.

The IDE performs well and the user interface, while occasionally cluttered, still does a good job of letting developers focus on their code. The new code inspection panel works well and overall this looks a worthwhile upgrade for Java developers. ®


Biting the hand that feeds IT © 1998–2020