I. Qu'est-ce qu'IntelliJ▲
Faisons en premier lieu un tour rapide de l'outil.
I-A. Introduction▲
Depuis janvier 2001, la société JetBrainsSite de JetBrains édite le logiciel IntelliJ IDEASite d'IntelliJ IDEA. Il s'agit d'un EDI (ou IDE en anglais), à savoir un Environnement de Développement Intégré (Integrated Development Environment), autrement dit un ensemble d'outils destinés au développement logiciel. IDEA est ainsi à mettre au même niveau - toutes proportions gardées - d'EclipseSite d'Eclipse ou encore de NetBeansSite de NetBeans.
Pour information, IntelliJ fait référence à la plateforme commune de JetBrains pour tous leurs outils de développement, IDEA étant l'EDI de développement Java. Il est donc plus juste de dire « je travaille sur IDEA » que « je travaille sur IntelliJ », bien que ce soit souvent la seconde phrase qui est la plus courante.
I-B. Versions et prix▲
IDEA existe en deux versions : Community et Ultimate. Pour faire simple, la version Community, gratuite, est avant tout destinée au développement d'applications « lourdes » Java, Scala et Android. Dès qu'il s'agit de développer des applications web, il faut se tourner vers l'édition Ultimate. Son prix, pour une licence personnelle, est de 191 € (hors promotion ou prix de mise à jour), une licence commerciale est à 479 €. 50 % de réduction sont accordés aux mises à jour ainsi que pour les start-up. Les étudiants, les enseignants ou les projets open source peuvent, quant à eux, disposer de versions complètement gratuites !
Un comparatif complet des deux éditions est visible iciComparaison des versions d'IDEA.
Vous pouvez télécharger l'une des deux versions sur la page dédiéePage de téléchargement. Notez au passage qu'IntelliJ IDEA est compatible Windows, Mac et Linux.
I-C. Principales fonctionnalités▲
Cet article n'a pas pour but de détailler toutes les fonctionnalités d'IDEA, un livre entier serait nécessaire pour accomplir cette tâche. Nous verrons toutefois les principales fonctionnalités et langages, frameworks ou outils supportés.
I-C-1. Langages et frameworks supportés▲
La version Community gère nativement les langages suivants : Java, Scala, Groovy, Clojure et XML, XSD et DTD. Avec la version Ultimate s'ajoutent les langages dédiés au développement web, à savoir le HTML, CSS, JavaScript, CoffeeScript, ActionScript. Viennent également le support du Freemarker, de Velocity, du XSL, XPath, SQL, Ruby et JRuby, Python ou encore PHP.
Certains de ces langages nécessitent toutefois l'ajout de plugins gratuits.
Avec la version Ultimate, vient également le support des frameworks les plus courants pour le développement autour de l'écosystème de la JVM ou du web. On citera par exemple Spring, Play! framework, JavaEE, GWT, Hibernate, Struts, Grails, Griffon, Sass, LESS, Rails, Django, Node.js, etc.
I-C-2. Gestionnaires de sources▲
Si vous travaillez sur CVS (réveillez-vous, nous sommes en 2015), SVN, Mercurial ou Git (voire GitHub), alors la version Community sera suffisante pour vous. Si vous avez Team Foundation Server, Perforce, ClearCase ou encore Visual SourceSafe, c'est vers la version Ultimate qu'il vous faudra vous tourner.
I-C-3. Outils de construction▲
Les principaux outils de construction d'applications sont présents dans les deux éditions d'IDEA. On y retrouve ainsi Maven, Gradle, Ant et Gant Build Tools.
L'édition Ultimate, grâce à ses capacités en développement web, supporte également des outils de construction dédiés à cet univers, comme Grunt.
I-C-4. Développement et autres fonctions▲
En ce qui concerne le développement à proprement parler, IDEA offre une excellente intégration des outils de tests (JUnit, TestNG, Spock ou encore Cucumber), un historique local des modifications de fichiers, une interopérabilité avec Eclipse, ou encore un gestionnaire de contextes. Ce dernier permet de travailler sur un ticket JIRA (ou n'importe quel autre gestionnaire de tickets) et d'y associer un contexte. Ainsi, lorsque l'on rouvre un ticket JIRA sur lequel on avait déjà commencé à travailler, IDEA va rouvrir les fichiers qui étaient ouverts lorsque le contexte de ce ticket avait été précédemment fermé. Si vous êtes adeptes de Mylyn sur EclipseMylin sur Eclipse, cette fonction devrait vous intéresser. Vous pouvez voir iciTâches et contextes d'IDEA pour plus de détails (en anglais).
À ce propos, IDEA s'interface sans problème avec les plus populaires des systèmes de tickets : JIRA, YouTrack, Lighthouse, GitHub, Redmine, Trac, etc.
Si vous possédez la version Ultimate, vous disposerez également d'un gestionnaire complet de bases de données (éditeur SQL, définition de schémas, diagrammes, etc.), d'un outil de modélisation UML, d'outils de couverture de code, du « Structural Search and Replace » (j'avais parlé de cette fonctionnalité l'an passé dans un autre article sur l'outil de JetBrains).
L'intégralité des fonctionnalités d'IDEA est à trouver sur cette pageFonctionnalités d'IDEA.
II. Les nouveautés de la version 14▲
Comme à chaque fin d'année, JetBrains publie sa nouvelle version majeure de son EDI. C'est bien entendu encore le cas en cette fin d'année 2014, qui voit la version 14 d'IDEA sortir. Passons en revue les principales nouveautés de l'outil.
II-A. Décompilateur intégré▲
Je me souviens que lorsque j'utilisais Eclipse (temps heureusement révolu !), la première chose que je faisais après avoir installé l'outil, c'était de lui ajouter un « décompilateur » (JadClipse en l'occurrence). Quel est le rôle d'un décompilateur ? C'est tout simplement de réaliser l'opération inverse du compilateur, autrement dit à transformer du code compilé, donc binaire (les fameux .class en Java) en code source, bien plus compréhensible par l'être humain. Ce type d'outil s'avère vite indispensable dans la mesure où l'on récupère très fréquemment des dépendances compilées, sans toujours avoir les sources qui vont avec.
La première grosse amélioration de cette nouvelle version d'IDEA est l'arrivée d'un décompilateur intégré nativement dans l'EDI. Plus besoin donc d'installer de bibliothèques tierces ou de plugins.
Cette fonctionnalité est proposée dès la version Community.
II-B. Débogueur amélioré▲
Écrire des tests est devenu aujourd'hui une étape obligatoire pour tout développement réalisé dans les règles de l'art. Cela n'empêche cependant pas d'avoir besoin, par moments, d'un débogueur. Bien entendu, IntelliJ IDEA en dispose d'un depuis déjà bien longtemps. Mais le voici encore amélioré avec cette nouvelle mouture de l'EDI. Parmi les améliorations, il en est une qui n'est pas négligeable, et qui fera sans doute hurler de joie tout développeur en train de se bagarrer avec son code. En effet, IntelliJ IDEA propose « tout simplement » d'afficher les valeurs des variables directement à côté du code, comme cela est monté sur la capture d'écran suivante :
L'idée est diablement simple, et elle fera gagner un temps précieux aux développeurs. On ne peut qu'en remercier l'équipe de JetBrains !
Pour les développeurs déjà passés à Java 8, ils seront heureux d'apprendre que l'évaluateur d'expressions permet désormais de travailler avec des expressions lambdas.
II-C. Inférence d'annotations▲
Les annotations ont été introduites en Java lors de la sortie de la version 5, il y a déjà dix ans ! Ces annotations sont utilisées partout non seulement pour ajouter des fonctionnalités à certaines parties du code, mais aussi pour donner plus de sens au code lui-même. C'est par exemple le cas des annotations @Nullable ou @NotNull, indiquant si une variable accepte ou non d'avoir une valeur vide (nul). Ce genre d'indications peut être très utile pour le développeur souhaitant utiliser votre API.
Le seul hic de ces annotations, c'est qu'elles doivent être ajoutées manuellement dans le code. Eh bien plus maintenant ! En effet, IntelliJ IDEA est désormais capable, par la seule analyse du code (ou plus précisément du byte-code), de déterminer la pertinence de certaines annotations automatiquement, en particulier @Nullabble, @NotNull ou encore @Contract (documentation de cette annotation). Le code en question n'est pas modifié (ce qui implique que cette fonctionnalité marche également sur du code tiers), mais va impacter la documentation ainsi que la détection de potentiels problèmes dans votre code. Ainsi, appeler une méthode avec un paramètre null, alors qu'IntelliJ IDEA aura détecté que la méthode appelante n'autorise pas ce type de valeur (quand bien même le développeur de cette méthode n'aura pas pris soin d'ajouter @NotNull), lèvera une erreur dans l'éditeur d'IDEA.
II-D. Autres améliorations▲
Il existe de nombreuses autres petites (ou moins petites) améliorations dans cette version d'IntelliJ IDEA. En voici quelques-unes qui méritent votre attention.
Tout d'abord, l'éditeur de code - c'est tout de même ici que nous passons le plus clair de notre temps sur un EDI - dispose de diverses nouveautés, avec une détection automatique de style de codage, une sélection multiple encore plus performante (à la Sublime Text), une meilleure gestion de la touche « Backspace », etc.
De nouveaux frameworks viennent s'ajouter à la liste - déjà longue - de ceux supportés par l'EDI. Nous pourrons citer Thymeleaf, Phonegap, Cordova ou encore Ionic. Attention toutefois, ceci n'est proposé qu'avec la version Ultimate. Les supports d'autres frameworks sont également améliorés. Citons en vrac : Scala, Android, Spring, GWT, Gradle, Maven ou JavaFX.
L'introduction des fichiers brouillons est aussi une bonne nouvelle. Il n'est ainsi plus nécessaire de créer physiquement un fichier pour tester quelque chose ou pour noter une idée.
L'écran des préférences a également été refait pour le rendre plus lisible. Nous noterons ainsi différentes améliorations des performances, permettant de démarrer l'outil plus rapidement que dans les versions précédentes.
Je terminerai par une fonctionnalité que j'ai découverte avec cette version 14, bien qu'elle fût introduite lors de l'édition précédente : l'édition « postfix ». De quoi s'agit-il au juste ? Imaginez que vous êtes en train de saisir un bout de code, et que vous avez oublié d'encapsuler cette ligne dans un bloc de test de non-nullité. Plutôt que de vous arrêter et d'écrire une ligne au-dessus, un bloc « if (maVariable!= null) { », il vous suffit d'écrire à la fin (d'où le « postfix ») de la variable un « .notnull », et IDEA vous corrigera (d'où le « postfix ») automatiquement votre code. C'est le genre de chose qui vous fait adorer IntelliJ IDEA : il vous propose des fonctionnalités dont vous avez toujours rêvé sans que jamais vous n'y ayez songé ! La version 14 permet désormais de faire ce genre de chose sur du code JavaScript, alors que cela était resté limité au code Java jusqu'à présent.
III. Ce qui fait la force d'IntelliJ▲
On reproche souvent à IntelliJ IDEA d'être payant et d'avoir un prix relativement élevé. Une licence unique coûte 191 € si elle est personnelle, 479 € s'il s'agit d'une licence d'entreprise. Pour cette dernière, cela représente généralement moins d'une journée de prestation et cela risque de lui en faire gagner bien davantage.
Ceux qui ont vraiment goûté à cet EDI, comme moi, n'ont plus envie de faire machine arrière et ne peuvent plus se passer de l'outil. Lors de la sortie de l'édition de 2013, j'avais justement écrit un article à ce sujet. Je vous invite donc à le parcourir pour comprendre ce qui donne à IntelliJ IDEA sa notoriété. J'y parle notamment de l'autocomplétion, de sa puissance d'analyse ainsi que de ses inspecteurs, des outils de refactoring, ou encore du « SSR » (ou « Structural Search and Replace »), fonctionnalité ultra puissante, mais difficile à manipuler.
IV. Petits conseils pour bien migrer vers IntelliJ IDEA▲
Fin 2012, j'ai acheté la version 12 d'IntelliJ, bien décidé à m'y mettre pour de vrai. J'avais déjà essayé par le passé d'y jeter un œil, mais mes habitudes sur Eclipse ont eu raison de toutes mes tentatives. Mais cette fois-ci fut la bonne, et je ne voudrais jamais avoir à faire machine arrière ! Pour vous aider à franchir le pas, voilà quelques petites astuces.
Tout d'abord, il faut persévérer un peu. C'est vrai qu'il est parfois déstabilisant de quitter un outil - en l'occurrence Eclipse - dans lequel on a pris ses habitudes au fil des ans, mais croyez-moi, cette fois c'est pour votre bien !
Premier point : la vue « Workspace » d'Eclipse disparait. IDEA ne gère qu'un seul projet à la fois par fenêtre (il est toutefois possible d'ouvrir autant de fenêtres d'IDEA que nécessaire). Finalement, ce n'est guère gênant, sauf si on a l'habitude de travailler sur dix projets en même temps (mais c'est peut-être là un signe qu'il y a un problème, non ?).
Autre point, les raccourcis clavier. On ne peut pas travailler efficacement sur un outil sans en connaître les raccourcis clavier, du moins les principaux. IDEA propose une option pour faire correspondre autant que possible les raccourcis clavier à ceux d'Eclipse ou de NetBeans. Pour cela, il faut aller dans Settings > Keymap puis choisir Eclipse ou NetBeans dans le sélecteur Keymaps. Toutefois, je vous conseille vivement de laisser les raccourcis par défaut et de les apprendre. Pour vous aider, vous pouvez télécharger et imprimer un pense-bêteListe des raccourcis clavier pour IDEA (la version pour MacLes raccourcis d'IDEA pour Mac) ou pourquoi pas vous acheter un t-shirtAcheter un T-Shirt IDEA…
Il existe aussi le raccourci « universel », Ctrl + Shift + A, qui vous permet d'exécuter n'importe quelle action en tapant simplement son nom. Enfin, je vous recommande le plugin « Key Promoter » qui détecte quand vous réalisez une action alors qu'un raccourci clavier existe. Dans pareille situation, le plugin va afficher une popup vous indiquant le raccourci à utiliser pour gagner du temps. C'est très pratique.
Si certaines personnes de votre équipe travaillent toujours sur Eclipse (les pauvres !), alors il faudra peut-être penser à ajouter le plugin de formatage d'EclipseLe plugin de formattage d'Eclipse, ce qui vous assurera d'avoir les mêmes conventions que vos camarades. À noter aussi qu'il est possible de demander à IDEA de sauvegarder les métadonnées du projet au format EclipsePlugin de compatibilité avec Eclipse (fichier .classpath) plutôt qu'IDEA (fichier *.iml).
Quoi qu'il en soit, si vous vous sentez perdu, n'hésitez pas à consulter la F.A.Q.FAQ IntelliJ IDEA ou le forum dédiéForum IDEA de Developpez.com.
D'autres conseils sur la page dédiéeConseils de JetBrains pour migrer vers IDEA de JetBrains. Une page similaire existeMigrer vers IDEA si vous êtes un utilisateur de NetBeans.
V. Conclusion▲
À l'image de la version 13, cette nouvelle version n'est pas une révolution. JetBrains n'a cependant de cesse d'améliorer son outil, le rendant toujours plus puissant.
Si le développement web n'a pas vos faveurs, alors il n'y a pas une seconde à perdre : jetez- vous sur la version Community qui est gratuite.
De même, si vous n'avez encore jamais mis les mains sur cet outil, alors il ne faut vraiment pas manquer l'occasion d'y jeter un œil, soit avec la version Community, soit avec la version d'essai de 30 jours de la version Ultimate.
À noter qu'il existe un autre EDI développé par JetBrains : WebStorm. Pour faire simple, il s'agit d'IntelliJ IDEA où toute la partie Java (disons plutôt tout ce qui a trait à la JVM) a été supprimée. Cet outil fait donc le bonheur des développeurs web, et a l'avantage d'être plus accessible (comptez 95 € pour l'édition personnelle).
VI. Remerciements▲
Je tiens à remercier JetBrains pour leur aide et leur magnifique outil, ainsi que la communauté de Developpez.com. Je remercie également Mickael BaronMickael Baron de m'avoir proposé l'opportunité d'écrire cet article. Je remercie enfin Claude Leloup pour sa relecture.
VII. Références▲
- Site officiel d'IDEASite officiel d'IDEA
- Détails des fonctionnalités supportées par IDEADétails des fonctionnalités supportées par IDEA
- Détails des nouveautés de la version 14Détails des nouveautés de la version 13
- FAQ d'IntelliJ IDEA sur Developpez.comFAQ d'IntelliJ IDEA sur Developpez.com
- Article de présentation de la v13Article de présentation de la v13
- Forum IntelliJ de Developpez.comForum IntelliJ de Developpez.com