IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Revue de l'IDE Jetbrains Intellij Idea 9 Ultimate Edition

Voici ma revue de l'EDI Jetbrains Intellij Idea 9 Ultimate Edition.

Je présente ici les fonctionnalités de la version Ultimate Edition qui ne sont pas toutes disponibles dans la version open source, Community Edition.

1 commentaire Donner une note  l'article (5)

Version anglophone de cet article - English version of this article: Review of Jetbrains Intellij Idea 9 Ultimate Edition.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

Splash screen d'IntelliJ Idea 9
Splash screen d'IntelliJ Idea 9

I-A. Éditions

Voici un tableau présentant les fonctionnalités et les versions qui les fournissent :

Fonctionnalité

Ultimate Edition

Community Edition

Historique local

Image non disponible

Image non disponible

Support Ant/Maven

Image non disponible

Image non disponible

Support JUnit/TestNG

Image non disponible

Image non disponible

Éditeur wysiwyg

Image non disponible

Image non disponible

Vérification syntaxique

Image non disponible

Image non disponible

Support des projets Eclipse

Image non disponible

Image non disponible

Support Java ME

Image non disponible

Image non disponible

IDE Talk

Image non disponible

Image non disponible

Gestion de contexte

Image non disponible

Image non disponible

Diagrammes UML

Image non disponible

Image non disponible

Couverture de code

Image non disponible

Image non disponible

Matrice de dépendances

Image non disponible

Image non disponible

Support Android

Image non disponible

Image non disponible

Recherche de code dupliqué

Image non disponible

Image non disponible

Recherche/Remplacement structurel(le)

Image non disponible

Image non disponible

Débugging JSP/Javascript

Image non disponible

Image non disponible


Voici les langages supportés par les différentes versions :

Langage

Ultimate Edition

Community Edition

Java

Image non disponible

Image non disponible

Groovy

Image non disponible

Image non disponible

XML

Image non disponible

Image non disponible

Regex

Image non disponible

Image non disponible

Scala

Image non disponible

Image non disponible

Clojure

Image non disponible

Image non disponible

Ruby/JRuby

Image non disponible

Image non disponible

Python

Image non disponible

Image non disponible

SQL

Image non disponible

Image non disponible

HTML, XHTML, CSS

Image non disponible

Image non disponible

XSL, XPath

Image non disponible

Image non disponible

Python

Image non disponible

Image non disponible

Freemarker/Velocity

Image non disponible

Image non disponible

JavaScript/ActionScript

Image non disponible

Image non disponible

PHP

Image non disponible

Image non disponible


Support des SCM :

SCM

Ultimate Edition

Community Edition

CVS

Image non disponible

Image non disponible

Subversion

Image non disponible

Image non disponible

Git

Image non disponible

Image non disponible

Team Foundation Server

Image non disponible

Image non disponible

ClearCase

Image non disponible

Image non disponible

Perforce

Image non disponible

Image non disponible

StarTeam

Image non disponible

Image non disponible

Visual SourceSafe

Image non disponible

Image non disponible


Ensuite, les frameworks et technologies :

Framework/Technologie

Ultimate Edition

Community Edition

OSGi

Image non disponible

Image non disponible

Rails/Grails

Image non disponible

Image non disponible

JSP/Servlets

Image non disponible

Image non disponible

JavaServer Faces 1.0, 1.2

Image non disponible

Image non disponible

EJB 3.0, 3.1

Image non disponible

Image non disponible

Web Beans

Image non disponible

Image non disponible

Bean validation

Image non disponible

Image non disponible

Flex, Air

Image non disponible

Image non disponible

GWT 1.X, 2.0

Image non disponible

Image non disponible

Struts 1.2, 2

Image non disponible

Image non disponible

Spring 2.5, 3.0

Image non disponible

Image non disponible

JBoss Seam

Image non disponible

Image non disponible

Hibernate/JPA 1.0, 2.0

Image non disponible

Image non disponible

JAX-WS, Apache AXIS

Image non disponible

Image non disponible

REST WebServices

Image non disponible

Image non disponible

Tapestry

Image non disponible

Image non disponible

Google App Engine

Image non disponible

Image non disponible


Et enfin, voici ce qu'il en est pour les serveurs d'application :

Serveurs d'application

Ultimate Edition

Community Edition

Tomcat

Image non disponible

Image non disponible

GlassFish v2, v3

Image non disponible

Image non disponible

JBoss

Image non disponible

Image non disponible

WebLogic

Image non disponible

Image non disponible

WebSphere

Image non disponible

Image non disponible

Geronimo

Image non disponible

Image non disponible

Resin

Image non disponible

Image non disponible

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.

Indexage en arrière plan
Indexage en arrière-plan


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 :

Vue de débugging rapide

Vue de lancement rapide


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 :

Marque-page sur une ligne
Marque-page sur une ligne


Et la vue des marque-pages :

Affichage des marque-pages
Affichage 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 :

Dépendances Maven
Dépendances Maven


On a également accès à un graphe des dépendances d'un module Maven :

Graphe des dépendances Maven
Graphe des dépendances 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 :

Configuration des instances OSGi installées
Configuration des instances OSGi installées


Ensuite de quoi, il faut configurer l'instance à utiliser pour le projet :

Configuration de l'instance d'OSGi à utiliser pour le projet
Configuration de l'instance d'OSGi à 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 :

Complétion des entêtes OSGi
Complétion des entêtes OSGi


À 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 :

Configuration d'un manifest
Configuration d'un manifest


Et on enchaine avec un activator :

 
Sélectionnez
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 :

Configuration de lancement d'OSGi
Configuration de lancement d'OSGi


Et on lance la chose, ce qui nous donne l'affichage suivant :

Lancement d'une application OSGi
Lancement d'une application OSGi


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 :

Coloration syntaxique d'un fichier PHP
Coloration syntaxique d'un fichier PHP


On a également droit à de la complétion automatique des fonctions PHP :

Complétion automatique
Complétion automatique


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 :

Complétion contextuelle pour PHP
Complétion contextuelle pour PHP
Complétion avancée pour PHP
Complétion avancée pour PHP


En plus de cela, Idea supporte également la documentation PHPDoc et fait de l'autocomplétion en fonction de cette documentation :

Autocomplétion depuis PHPDOC
Autocomplétion depuis PHPDOC

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.

Création d'une tâche
Création d'une tâche


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.

Ouverture d'une tâche
Ouverture d'une tâche


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 Donner une note  l'article (5)

X-A. Liens

X-B. Remerciements

Un grand merci à Furr pour sa relecture.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   











Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Baptiste Wicht. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.