Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News JetBrains Releases IntelliJ IDEA 2016.1

JetBrains Releases IntelliJ IDEA 2016.1

Leia em Português

This item in japanese

JetBrains has released IntelliJ IDEA 2016.1, the latest version of their most popular IDE. The new version seems to have the polyglot developer in mind, with multiple enhancements over a variety of languages and technologies; however, the most noticeable changes are aimed at Java, particularly at helping developers take full advantage of Java 8.

The first noticeable change in IntelliJ IDEA 2016.1 is the version number. JetBrains is changing the versioning scheme for all their products, adopting a more meaningful format but without using the traditional semantic versioning (more suitable to versions of APIs). The new versioning scheme consists of two components: the year of publication, and the ordinal within that year. The main objectives of this change are leaving behind the idea of major vs. minor releases, treating instead all releases as equal increments upon the previous one, and also better aligning versions of different products, meaning that, for instance, version 2016.2 of IntelliJ IDEA will include similar new functionality as WebStorm 2016.2.

Beyond the version number, the first thing the everyday Java programmer will probably experience when using IntelliJ IDEA 2016.1 is an increased number of warnings due to the new inspections added. For instance, although the concept of Optional was available before Java 8 through Google Guava, it is since its addition as a native Java construct that it has become popular. Being a relatively new concept, many programmers may fall on anti-patterns like calling get() without checking isPresent() first (exposing themselves to a NoSuchElementException), using Optional as arguments for a method (where overloading may be more appropriate) or using Optional over arrays or collections (where an empty one may express the same concept with less boilerplate); IntelliJ IDEA now has inspections for all these scenarios.

Since Guava’s Optional may still be used in a number of codebases, the inspections will check either type of Optional when verifying the programmer is using it properly. However, if IntelliJ IDEA does find an instance of Guava’s Optional, another inspection will flag this as an opportunity to migrate to Java’s native version. If this pattern succeeds, similar inspections could be added to prompt the programmer to perform similar migrations, for instance substituting the popular JodaTime by Java 8’s new date and time library, as the very creators of JodaTime recommend.

But Java isn't the only language that benefits in the latest version. Kotlin 1.0 is supported by default, Scala has better code completion that suggests property names, Groovy can be used to set up Watch variables while debugging, and JavaScript includes support for ES6 and TypeScript 1.8. Other technologies also have better support in IntelliJ IDEA 2016.1, like coding assistance for Spring Framework and for Thymeleaf, a leaked activities profiler for Android, and a new Docker plugin.

When upgrading to a new release of any product the user's primary concern will be around bugs. As we see on sites like Reddit and Hacker news, JetBrains has been typically responsive in this release, and any bugs have been resolved or are being resolved shortly.



Rate this Article