I. Présentation

Tout d'abord, qu'est ce qu'IntelliJ Idea ? C'est un EDI très puissant pour Java, la Rolls des EDI en quelque sorte. Son seul défaut est d'être payant, mais ce défaut est largement compensé par ses énormes possibilités. Je trouve personnellement qu'il vaut tout à fait son prix.

Les principales nouvelles fonctionnalités de la version 6.0 sont un éditeur de Gui très puissant qui supporte beaucoup de layouts (dont le FormLayout), le support des EJB 3.0, un module pour faciliter la gestion en groupe et le calcul de la couverture du code par les tests.

Je vais donc vous présenter toutes ces nouvelles fonctionnalités. Et vous faire découvrir les avantages et inconvénients de cet EDI.

II. Interface

L'interface est presque entièrement conçue pour que l'utilisateur puisse se passer de la souris, cela se révèle très pratique en terme de vitesse d'accès aux fonctions d'Idea.

Une chose très agréable est le fait de pouvoir défaire certaines parties de l'application, nous permettant ainsi d'avoir l'application sur deux écrans. Par exemple, avec d'un coté notre code et de l'autre la console pour avoir une meilleure vue. De plus, on peut accéder à toutes les fenêtres que l'on a séparées de la fenêtre principale via des raccourcis claviers, on peut aussi les cacher de la même manière.

Un petit inconvénient que l'on peut voir, est le fait qu'en cliquant plus à droite que le dernier caractère de la ligne, on peut écrire du texte sans qu'on ait auparavant mis des espaces ou des tabulations pour y accéder. Mais on peut y remédier en modifiant la configuration de l'espace virtuel, dans le panneau des propriétés de l'EDI.

Une petite chose que l'on peut remarquer est la barre en bas à droite permettant de voir la mémoire utilisée, ainsi qu'un bouton permettant de lancer le gc (Garbage Collector) et donc de diminuer la mémoire utilisée inutilement.

Parlons maintenant justement des possibilités de configuration de l'interface. Comme vous le voyez sur la capture d'écran ci-dessous, on a pas mal de choix (représentés par un bouton, eux aussi accessibles par touche). De plus, pour ceux qui n'aiment pas cette vue, vous avez le droit à une vue classique via le bouton Classic View. Depuis cette interface, vous avez directement accès aux propriétés de votre projet en plus de celles de l'EDI.

Fenêtre de configuration d'IntelliJ Idea 6
Fenêtre de configuration d'IntelliJ Idea 6

En ce qui concerne l'interface, vous pouvez modifier l'apparence générale, les options de l'éditeur, les couleurs et les polices de caractère de toute l'interface.

Vous avez aussi accès à d'innombrables possibilités de configuration pour le reste de l'EDI : la complétion de code, le style du code, les templates de fichiers, la gestion des plugins et des mises à jour. Vous pouvez même créer vos propres menus en y insérant seulement les boutons qui vous sont utiles.

L'aide de l'Edi se révèle être très complète et très pratique, il est facile de s'y retrouver et de trouver ce que l'on cherche.

Interface d'aide
Interface d'aide

III. Gui Designer

Voilà à mon avis, la plus grande innovation de cette version. J'ai tout de suite été conquis par ce Designer, par sa puissance, ses possibilités et par toutes les choses qu'il supporte (notamment FormLayout de JGoodies qui est un layout très puissant et très simple à utiliser).

Tout d'abord, ce Gui Designer supporte de nombreux layouts :

  • FormLayout (JGoodies)
  • GridBagLayout
  • GridLayout
  • CardLayout
  • BorderLayout
  • FlowLayout
  • BoxLayout

Lors de l'utilisation de l'un de ces layouts, la grille de positionnement se crée automatiquement. Vous pouvez donc visualiser directement à l'écran la grille de positionnement de vos composants. La création d'interfaces se fait donc extrêmement simplement, bien qu'elle soit un peu déconcertante au premier abord.

Bien entendu, on peut aussi gérer le layout des composants que l'on insert à l'intérieur du principal de manière personnalisée. Vous pouvez aussi employer vos propres composants dans le GUI Designer et les ajouter à votre Form.

Le Gui Designer de Demetra en action
Le Gui Designer de Demetra en action

La prévisualisation se révèle très pratique, car elle intègre directement un menu qui permet de changer le look and feel ou alors d'effectuer à nouveau un pack sur votre interface.

Prévisualisation d'un Form
Prévisualisation d'un Form

Comme vous avez pu le voir sur la capture d'écran, l'éditeur gère beaucoup de composant Swing (JToolBar, JTable, JTree, JProgressBar, ...). Il supporte aussi les modèles de liste (ComboBoxModel, ListModel).

Vous pouvez même directement effectuer du databinding (lié un objet java (un bean) à une interface graphique) directement depuis l'éditeur.

Une autre fonctionnalité plus qu'intéressante est le fait de pouvoir gérer l'internationalisation (plusieurs langues) de votre programme sans rien avoir coder soi-même. Il vous suffira juste de remplir vos fichiers de properties dans le programme et d'associer les clés aux composants de l'interface à internationaliser.

Une autre possibilité très intéressante est de pouvoir importer des interfaces ayant été faites sous un autre éditeur dans celui-ci et de convertir ce code en un Form compatible avec ce Gui Designer. Ainsi, vous n'aurez pas de problèmes pour passer d'un autre Edi à Idea, sauf cas spéciaux.

IntelliJ Idea permet aussi de détecter directement quelques erreurs de votre interface, cela vous permettra encore une fois de gagner du temps de développement, il permet par exemple de détecter des boutons radio qui ne sont pas dans un groupe, des groupes avec un seul bouton ou encore des mnemonics dupliqués.

Pour plus d'infos sur les possibilités de ce Gui Designer, je vous invite à aller regarder cette demo.

IV. Productivité et fonctionnalités d'édition

Dans Idea, tout a été fait pour permettre d'augmenter la productivité des développeurs. Ainsi, la complétion est déjà bien remplie au départ; vous pouvez par exemple employer psvm pour créer une nouvelle méthode main ou encore sout pour System.out.println(), vous pouvez aussi créer vos propres complétions. La complétion des noms de classes et des variables et aussi pratique.

Auto complétion
Auto complétion

Mais une des fonctionnalités très intéressantes est la génération de code. En effet, via le raccourci Alt+Insert, vous pouvez directement ajouter un constructeur, des méthodes getters/setters, surcharger une méthode de la superclasse ou encore générer les méthodes equals et hashcode. Cela va générer du code automatiquement, par exemple, pour le constructeur, vous aurez le choix entre tous les constructeurs de la superclasse et vous pouvez directement demander au programme d'initialiser vos variables locales dans le constructeur et de lui ajouter un paramètre. C'est pareil pour les méthodes equals et hashcode, elles vont être directement générées et complétées à partir de vos variables.

Génération de code
Génération de code

Vous avez aussi le droit à une inspection de code très intéressante qui va chercher soit dans un fichier, soit dans tout le projet des incohérences telles que des variables non utilisées, du code redondant, des opérations inaccessibles. Ou alors, même des bouts de code pouvant être améliorés, tels que des return intégrés à un if par exemple. Idea vous propose ensuite directement la ou les solutions que vous pouvez ensuite, à votre guise, employer ou non.

Avant la simplification découverte par l'inspection
Avant la simplification découverte par l'inspection
Après la simplification
Après la simplification

Les possibilités de refactoring d'Idea ont été encore revues à la hausse dans ce programme en améliorant certaines fonctionnalités existantes (extraction de méthode qui gère mieux désormais de multiples points de sortie) et en ajoutant de nouveaux refactorings tels que l'inversion de boolean. En plus des nouveautés, Idea intègre bien sûr toutes les fonctionnalités habituelles de refactoring (extraction de méthodes, renommage de membres, introduction de variables). Vous pouvez d'ailleurs voir la liste des refactorings dans la capture d'écran suivante.

Image non disponible

V. Facilité de travail en groupe

Pour un meilleur travail en groupe, on peut intégrer le programme Team City directement dans Idea. Ce programme (payant lui aussi) permet d'automatiser les tests et les builds. De plus, en cas d'erreur lors des tests ou d'un build, les personnes ayant apportées des modifications sur une des parties qui a posé problèmes, sont directement averties et peuvent ainsi réagir rapidement. De plus, Team City permet de tenir à jour une page Web du projet, ainsi tout le monde peut se tenir au courant de l'avancement des builds, voir l'état des tests, les différentes erreurs et modifier la file d'attente du build. On peut seulement regretter que Team city ne soit pas par défaut avec Idea. Par contre, toutes ces données sont théoriques, je n'ai pas ce programme et n'ai donc pas pu me faire une idée de ce que ça donnait vraiment. Mais au vu de commentaire de certaines personnes, ca m'a l'air très pratique et très fonctionnel.

Une fonction assez intéressante et la messagerie instantanée directement intégrée à l'éditeur. Elle vous permet de converser directement avec d'autres personnes travaillant avec cet Edi. Mais c'est aussi plus qu'une simple messagerie, vous pouvez aussi visualiser les pages que votre interlocuteur a ouverte, vous pouvez aussi effectuer des comparaisons de différents code source entre vos fichiers à l'un et l'autre et vous pouvez aussi envoyer des pointeurs sur des bouts de code à l'autre personne. Vous pouvez même envoyer directement la stacktrace d'une erreur avec les liens directement sur les fichiers java incriminés. C'est donc une fonctionnalité qui peut se révéler très utile dans une entreprise sur un projet. Il est à noter que l'on peut se parler, soit à l'intérieur d'un réseau privé, mais aussi à quelqu'un n' importe où sur internet grâce au réseau Jabber.

A l'utilisation, ce programme de messagerie instantanée se révèle tout à fait simple à utiliser et pratique. Il ne possède pas de fonction superflue (wizz, smileys) et se veut tout à fait professionnel et adapté à l'utilisation dans le travail de groupe. Dès réception d'un pointeur, il suffit de cliquer dessus pour que le fichier s'ouvre chez nous directement sur la ligne en question et c'est pareil pour les stacktrace. De plus, vous voyez les fichiers ouverts par votre interlocuteur et depuis là, ouvrir la version locale du fichier ou encore comparer votre version et celle de l'autre personne.

Messagerie interne
Messagerie interne
Liste des fichiers ouverts par quelqu'un
Liste des fichiers ouverts par quelqu'un

En plus de ces programmes spéciaux, vous pouvez employer CVS et Subversion directement dans Idea. Vous avez aussi accès à une liste des changements effectués avec votre système de contrôle de version. Depuis cette liste, vous pouvez grouper les différents fichiers de manières différentes, changer les fichiers de groupe voir les différences sur deux fichiers et créer de nouvelles listes de changements

Liste des changements
Liste des changements

Une autre fonctionnalité intéressante, c'est de pouvoir sauvegarder vos configurations de lancements. Ainsi, tout le monde pourra lancer le programme avec telle ou telle configuration, pour voir les différences d'un poste à l'autre ou tout simplement pour être uniforme.

VI. Support avancé de Java EE

Demetra permet un très bon support de tout ce qui est des projets Java EE et Web.

En effet, l'accent a beaucoup été mis sur les différents éditeurs d'Idea. Ainsi, cette version améliore les éditeurs existants, tels que l'éditeur de JSP (librairies de tag personnalisées) ou de Javascript (complétion de code basée sur DOM) et ajoute de nouveaux supports très intéressants.

Cette version supporte les EJB 3.0. Vous pouvez employez des mécanismes d'annotations pour créer des EJB. Un mécanisme de complétion a aussi été directement mis en place dans l'éditeur xml. Vous pouvez aussi migrer vos anciens EBJ en 3.0.

Support des EJB 3.0
Support des EJB 3.0

A cela vient s'ajouter le support des JSF (Java Server Faces), pour lesquels vous aurez droit à un éditeur dédiée avec de la complétion de code et de la mise en évidence d'erreur.

De même, vous pourrez directement gérer vos projets Struts, ou vous aurez aussi un éditeur personnalisé, ce qui vous permettra d'ajouter facilement des actions, des beans, des propriétés à vos actions, ...

Support de Struts
Support de Struts

Comme vous pouvez le voir sur cette démo, Idea supporte maintenant directement le Google Web Toolkit, ce qui facilite grandement le developpement d'applications Ajax. Vous aurez donc droit à de la complétion de code, du refactoring et de l'inspection de code.

A tout ceci, on peut encore ajouter le support de nouveaux serveurs tels que WebLogig 9.0 ou WebSphere.

VI. Divers

Avec cette version d'IntelliJ Idea, vous pouvez employer différents compilateurs par défaut, par exemple Jikes ou le compilateur d'Eclipse.

Idea supporte complètement JUnit4, vous pouvez donc effectuer les tests avec la dernière version de JUnit.

En plus du support de JUnit4, Idea intègre le calcul de la couverture du code par les tests. Vous pourrez donc directement voir quel est le pourcentage de vos méthodes qui est couvert par vos tests. Ainsi, vous saurez si vos tests couvrent l'entier de votre programme ou si alors ils n'en couvrent qu'une petite partie.

La couverture de code
La couverture de code

VIII. Points noirs

Tout d'abord, au début, ce programme n'est pas extrêmement facile à prendre en main. Il faudra un moment avant que vous vous y habituiez et que vous bénéficiez de tous les avantages au niveau de la productivité que permet Idea.

Ensuite, ce programme est plutôt conséquent et consomme beaucoup de mémoire. Il n'est donc pas fait pour des machines ayant une faible puissance.

On peut aussi regretter le fait qu'il n'y ait pas de version en français, mais tout bon développeur maîtrisant les bases du langage de Shakespeare, il ne devrait pas y avoir trop de problèmes pour maîtriser cet Edi qui se révèle très simple d'utilisation dès que vous avez commencé à le maîtriser et très complet.

Enfin, le prix reste tout de même assez important pour un privé, n'utilisant un Edi que pour ses propres développements. Mais, il faut ce qu'il faut, la qualité à un coût.

IX. Conclusion

En conclusion, ce logiciel vous permettra de gagner beaucoup de temps et d'être plus productif. Bien qu'un peu compliqué au début, il vous séduira bientôt par ses multiples possibilités et son aide à la productivité.

Pour résumer cet article, je vais vous présenter en quelques phrases ses avantages et inconvénients.

IX-A. Avantages

  • Un GUI Designer extrêmement puissant
  • Une interface très bien pensée et axée rapidité d'accès aux diverses fonctions
  • Beaucoup de fonctionnalités facilitant le travail en groupe
  • Un très bon support de Java EE
  • Des possibilités de refactoring très puissantes

IX-B. Inconvénients

  • Le prix est tout de même assez conséquent pour une utilisation personnelle
  • Par de version en français
  • Pas très intuitif au début

IX-C. Liens