I. Introduction▲
JetBrains vient de publier la version 9 d'IntelliJ Idea. Cette version est disponible en deux éditions :
- Community Edition : version open source et gratuite comprenant seulement une partie des fonctionnalités de l'IDE ;
- Ultimate Edition : version complète de l'IDE, commerciale cette fois. C'est cette version que je vais présenter ici.
Cet IDE est fait principalement pour le développement, mais supporte maintenant de nombreux langages en plus de Java : JavaScript/Flex, HTML/XHTML/CSS, XML/XSL, Ruby/JRuby, Groovy, SQL, FreeMarker/Velocity et PHP.
Pour le développement Java, il supporte de très nombreux frameworks et technologies : JSP, JSF, EJB, AJAX, GWT, Struts, Struts 2, JBoss Seam, Spring, JPA/Hibernate, Web Services, Rails, Grails, Java ME MIDP/CLDC, Tapestry, Google App Engine, Android ou encore OSGi.
Je vais vous présenter certaines des nouvelles fonctionnalités et vous donner mon avis sur les différents thèmes.
I-A. Éditions▲
Voici un tableau présentant les fonctionnalités et les versions qui les fournissent :
Fonctionnalité |
Ultimate Edition |
Community Edition |
---|---|---|
Historique local |
|
|
Support Ant/Maven |
|
|
Support JUnit/TestNG |
|
|
Éditeur wysiwyg |
|
|
Vérification syntaxique |
|
|
Support des projets Eclipse |
|
|
Support Java ME |
|
|
IDE Talk |
|
|
Gestion de contexte |
|
|
Diagrammes UML |
|
|
Couverture de code |
|
|
Matrice de dépendances |
|
|
Support Android |
|
|
Recherche de code dupliqué |
|
|
Recherche/Remplacement structurel(le) |
|
|
Débugging JSP/Javascript |
|
|
Voici les langages supportés par les différentes versions :
Langage |
Ultimate Edition |
Community Edition |
---|---|---|
Java |
|
|
Groovy |
|
|
XML |
|
|
Regex |
|
|
Scala |
|
|
Clojure |
|
|
Ruby/JRuby |
|
|
Python |
|
|
SQL |
|
|
HTML, XHTML, CSS |
|
|
XSL, XPath |
|
|
Python |
|
|
Freemarker/Velocity |
|
|
JavaScript/ActionScript |
|
|
PHP |
|
|
Support des SCMÂ :
SCM |
Ultimate Edition |
Community Edition |
---|---|---|
CVS |
|
|
Subversion |
|
|
Git |
|
|
Team Foundation Server |
|
|
ClearCase |
|
|
Perforce |
|
|
StarTeam |
|
|
Visual SourceSafe |
|
|
Ensuite, les frameworks et technologies :
Framework/Technologie |
Ultimate Edition |
Community Edition |
---|---|---|
OSGi |
|
|
Rails/Grails |
|
|
JSP/Servlets |
|
|
JavaServer Faces 1.0, 1.2 |
|
|
EJB 3.0, 3.1 |
|
|
Web Beans |
|
|
Bean validation |
|
|
Flex, Air |
|
|
GWT 1.X, 2.0 |
|
|
Struts 1.2, 2 |
|
|
Spring 2.5, 3.0 |
|
|
JBoss Seam |
|
|
Hibernate/JPA 1.0, 2.0 |
|
|
JAX-WS, Apache AXIS |
|
|
REST WebServices |
|
|
Tapestry |
|
|
Google App Engine |
|
|
Et enfin, voici ce qu'il en est pour les serveurs d'application :
Serveurs d'application |
Ultimate Edition |
Community Edition |
---|---|---|
Tomcat |
|
|
GlassFish v2, v3 |
|
|
JBoss |
|
|
WebLogic |
|
|
WebSphere |
|
|
Geronimo |
|
|
Resin |
|
|
II. Installation▲
L'installation est des plus simples. On retrouve donc uniquement les étapes de base qu'on retrouve dans toute installation de base : licence, dossier, options de raccourcis, menu démarrer et procédure d'installation. Rien de bien spécial à ce niveau-là .
Une fois l'installation terminée, il nous faut rentrer la licence et choisir les modules à activer, comme c'était déjà le cas dans les précédentes versions.
III. Améliorations générales▲
La première chose que l'on constate est une nette amélioration des performances. Beaucoup plus de tâches se déroulent en arrière-plan. C'est notamment le cas pour l'indexation qui se lance au démarrage, mais qui ne bloque pas l'interface. On peut donc commencer à travailler pendant l'indexation, mais certaines actions ne sont pas disponibles, comme le refactoring.
On constate également beaucoup moins de freeze de l'interface graphique qui est également plus réactive. Le retour sur action (feedback à l'utilisateur) des différentes vues a été amélioré. C'est-à -dire qu'on se rend compte maintenant qu'une action a été lancée et on n'est plus à se demander si quelque chose se passe ou non comme cela pouvait arriver avec Idea 8.
IV. Interface graphique▲
Comme dit précédemment, la réactivité de l'interface graphique a été grandement améliorée.
Les vues n'ont pas connu de changements majeurs, mais on peut tout de même constater quelques nouvelles fonctionnalités intéressantes.
Premièrement, on peut maintenant déboguer et lancer des classes directement via des raccourcis clavier :
- Alt+Shift+F9 : ouvre la fenêtre de débugging ;
- Alt+Shift+F10 : ouvre la fenêtre de lancement.
Voici les nouvelles vues en questions :
|
|
Ensuite de cela, on a également une gestion de marque-pages dans n'importe quelle partie du code, que ce soit une classe ou une ligne d'une classe. On a pour cela les raccourcis suivants :
- F11 : crée un marque-page sur l'élément sélectionné (fichier dans l'arborescence ou ligne dans l'éditeur) ;
- Shift + F11 : présente les différents marque-pages et permet de se déplacer vers un de ces derniers.
Un exemple de marque-page sur une ligne d'un fichier :
Et la vue des marque-pages :
Et dernièrement et non des moindres, on peut maintenant copier des fichiers depuis le système d'exploitation et les coller directement dans l'IDE et vice-versa. Ce qui est très pratique et n'était pas présent dans les précédentes versions de l'IDE.
V. Support de Maven▲
La vue des projets Maven a subi quelques modifications. Dans le dossier « LifeCycle », seuls sont maintenant affichés les goals les plus importants (clean, validate, compile, test, package, install, site et deploy) au lieu de la liste complète, ce qui est plutôt intéressant. On peut bien sûr toujours afficher l'ensemble des goals avec une option de la barre d'outils.
Toujours au niveau de cette vue, on peut maintenant voir les profils (au sens Maven 2) qui sont configurés au niveau de settings.xml et accéder rapidement au fichier settings.xml de Maven 2. En plus des profils, on peut également visualiser directement les dépendances d'un projet Maven 2 :
On a également accès à un graphe des dépendances d'un module Maven :
Il est possible de faire un réimport automatique après un changement dans un fichier pour ne pas avoir besoin de lancer manuellement pour prendre en compte les changements.
À propos du réimport, on peut maintenant faire des reimports seulement pour le(s) projet(s) qui a (ont) été changé(s) au lieu de devoir tout réimporter et en plus de cela, les performances de cette opération ont été grandement améliorées. Je dirais d'un facteur 3 à 4 pour ce que j'ai pu en voir.
VI. Support d'OSGI▲
Depuis cette nouvelle version, Idea intègre nativement un plugin OSGI, OsmorcSite officiel d'Osmorc. Ce plugin permet de faciliter le développement d'applications modulaires avec OSGi dans Idea. Je vais tenter de vous présenter les principales fonctionnalités qui ont été intégrées à Idea.
La première chose à faire est de configurer le projet pour OSGi. Pour cela, il suffit d'activer le facet OSGi pour le(s) module(s) nécessaire(s). Ensuite de quoi (ou avant, c'est selon), il faut configurer les instances d'OSGi qui sont installées :
Ensuite de quoi, il faut configurer l'instance à utiliser pour le projet :
On peut ensuite passer à la création d'un petit projet OSGi.
La première fonctionnalité à noter est bien entendu la complétion automatique sur les fichiers MANIFEST.MF :
À noter que dès que vous ajoutez l'entête Import-Package, on peut utiliser les classes de ce package depuis le projet sans faire autre chose.
Mais on peut également définir un manifest via Idea :
Et on enchaine avec un activator :
package
com.pragprog.hello;
import
org.osgi.framework.BundleActivator;
import
org.osgi.framework.BundleContext;
public
class
HelloWorld implements
BundleActivator{
@Override
public
void
start
(
BundleContext bundleContext) throws
Exception {
System.out.println
(
"I'm in OSGi :)"
);
}
@Override
public
void
stop
(
BundleContext bundleContext) throws
Exception {
System.out.println
(
"I'm leaving OSGi :("
);
}
}
Pour finir, on crée une nouvelle configuration de lancement « OSGi Bundles ». Il suffit d'ajouter le bundle à la liste et dans l'onglet « Parameters » de choisir la bonne instance OSGi à lancer :
Et on lance la chose, ce qui nous donne l'affichage suivant :
Par contre, on ne peut pas interagir avec l'instance OSGi depuis Idea, ce qui est un peu dommage. On ne peut donc pas stopper des modules ou même les gérer depuis la console d'Idea, ce qui aurait été très pratique. Néanmoins le développement OSGi en lui-même est facilité par Idea.
VII. Support de PHP▲
Voici une fonctionnalité qui n'est peut-être pas intéressante pour tout le monde, mais qui le sera certainement pour les développeurs Java qui gèrent un site PHP ou alors pour les développeurs PHP qui désirent changer d'IDE. Pour ma part, je suis dans le premier cas et jusqu'à présent j'utilisais d'autres IDE et éditeurs pour modifier mon site PHP, mais maintenant, je vais pouvoir le faire directement depuis mon IDE favori.
Premièrement et bien entendu, on a une coloration syntaxique d'un fichier PHP :
On a également droit à de la complétion automatique des fonctions PHP :
Mais il fait plus que de la simple complétion, en effet, il découvre automatiquement les champs et méthodes qui font partie d'une classe qu'on a déclarée ainsi que les méthodes/champs d'une classe de la librairie standard. Vous pouvez voir ces fonctionnalités dans les images suivantes :
En plus de cela, Idea supporte également la documentation PHPDoc et fait de l'autocomplétion en fonction de cette documentation :
On peut également noter qu'il est possible de faire du debugging du code PHP et qu'il est possible de faire des tests unitaires avec PHPUnit. Mais cela sort du cadre de cet article et je ne vais pas m'épancher sur le sujet.
VIII. Gestion de contexte▲
Cette fonctionnalité n'est à mon avis pas des plus majeures, mais elle reste toutefois intéressante. Cette nouvelle fonctionnalité permet d'enregistrer l'état de la vue.
Cela est possible via l'enregistrement de tâches. Une tâche enregistre l'état actuel de la liste de changements, des éditeurs ouverts, de l'état de la vue arborescente des modules, des configurations de lancement et des points d'arrêt activés pour le debug.
Ensuite de quoi, il est possible de revenir à une tâche précédente, ce qui aura pour effet de restaurer l'état enregistré de la tâche à ouvrir.
Il est également possible de synchroniser les différentes tâches avec YouTrack ou Jira.
IX. Divers▲
En plus de ces grosses nouveautés, il y a également eu de nombreux autres changements que je ne détaillerai pas ici parmi lesquels :
- il est maintenant possible de créer un module depuis un projet Grails ou Griffon déjà existant de la même façon qu'il est possible d'importer un projet Eclipse. On peut également créer des modules Griffon/Grails ainsi que des applications ;
- on maintenant le droit à de la vérification orthographique dans le code via une nouvelle inspection activée par défaut avec la nouvelle version ;
- les méthodes et classes publiques qui ne sont pas utilisées sont maintenant directement grisées à l'instar des variables et méthodes privées ;
- amélioration du support de Grails avec le support de Griffon et Gradle ;
- support d'Android ;
- amélioration du support de Flex.
X. Conclusion▲
En conclusion, JetBrains nous a encore une fois fait preuve de sa grande expertise dans le domaine des IDE Java en présentant une excellente nouvelle version pleine de nouvelles fonctionnalités et d'améliorations par rapport aux versions précédentes.
La seule chose que j'aie eu à déplorer jusqu'à maintenant, c'est le manque de documentation sur le plugin OSGi et les limitations de ce dernier.
Vous pouvez télécharger IntelliJ Idea 9 sur le site officielTélécharger IntelliJ Idea 9.
N'hésitez pas à me donner votre avis sur cet article sur le forum : 1 commentaire
X-A. Liens▲
Review des anciennes versions d'Idea
X-B. Remerciements▲
Un grand merci à Furr pour sa relecture.