Passer d’Eclipse à Intellij : Retour d’expérience

Publié par Anthony Coulon, le 23/10/2013, dans Java

Il y a quelques semaines je me suis décidé à sauter le pas : passer sur Intellij. Tout cela ne s’est pas fait sans mal.

intellijideaeclipse

Eclipse et Intellij sont tous les deux des IDE (Integrated Development Environment) essentiellement utilisé pour des projets Java, développés respectivement par la Fondation Eclipse et par JetBrains.

J’ai beaucoup utilisé Eclipse et comme beaucoup de monde j’avais pris l’habitude de travailler avec tous ses raccourcis. Ce fut d’ailleurs mon premier frein pour passer sur Intellij.

Une fois installé, il faut maintenant récupérer le projet sur lequel je travail. Et… première grosse différence entre les 2 IDE : fini les workspaces, on a maintenant une notion de projet. Prenons par exemple des projets maven : après avoir indiqué l’endroit où ils se trouvent, ils sont automatiquement importés. De plus, si vous souhaitez, par la suite, rajouter de nouveaux projets maven dans le dossier, il n’y a rien à faire, Intellij les ajoutera tout seul, comme un grand.

Une fois nos projets importés, on peut commencer à travailler. Galère… Ce ne sont plus les mêmes raccourcis… Une antisèche peut être utile, cliquez ici.  Mais surtout, il ne faut ne pas hésiter à re-mapper les raccourcis à sa guise au fur et à mesure que l’on se retrouve bloqué.

raccourcis-clavier-humour

Malgré tout, les habitudes persistent et c’est dur de s’en débarasser. Par exemple le “ctrl+d” qui supprime une ligne dans Eclipse alors que sur Intellij cette même opération duplique la ligne… Tout l’inverse de ce qu’on pense faire !

Mais, bonne nouvelle, une fois les raccourcis pris en main, ça dépote !

Quelques points qui m’ont tout simplement bluffés. Notamment les imports statiques qu’Eclipse est, quant à lui, incapable de faire.

geek_cartoon

Le refactoring est désormais très simple à faire. Intellij le gère très bien et propose toujours une solution intelligente. A chaque cas tordu, je me demande comment il va s’en sortir. Et bien, je dois avouer que je suis à chaque fois bluffé ! Pour le coup, j’ai vraiment le sentiment d’apprendre à refactorer. Par exemple, extraire une méthode où on attend le retour de plusieurs variables, Eclipse ne sait pas faire alors qu’Intellij vous proposera de créer une “Inner Classe” avec ces variables et votre méthode qui les manipule.

Il y a une intégration de Spring aux projets Java et on navigue facilement d’un “Component” jusqu’à son fichier de conf en un clic.

On peut également noter des outils intégrés à l’IDE, comme par exemple un client SQL. Plus besoin d’avoir MySQL Workbench à côté ! Mais surtout on a de la complétion SQL dans les chaîne de caractères présents dans le code.

Finalement,  LA fonctionnalité que je retiendrais le plus d’Intellij (celle qui m’a véritablement bluffée) est la complétion dans le JavaScript !!! Enfin !!!

Une complétion efficace et intelligente dans les fichiers HTML et une vraie complétion dans les JavaScript. Pour le coup, ça fait une réelle différence surtout quand on aime coder en JS et c’est aussi un vrai gain de productivité. A noter tout de même que, depuis la version Kepler d’Eclipse, on commençait à avoir quelque chose qui s’y approche.

Pour finir Eclipse est un très bon IDE, qui fait son boulot et surtout il est totalement gratuit et Open Source. Pour un projet uniquement Java, Eclipse sera largement suffisant, mais la plupart du temps, on travaille sur des projets web et on atteint les limites de l’IDE. Intellij, quand à lui, permet d’être multi-langages. Avec un seul outil, on pourra coder de manière efficace, en Java, SQL, JavaScript, … Avec cet IDE on a un réel gain en productivité grâce à toutes ses fonctionnalités très avancées. Alors je vous conseille à votre tour de l’essayer et de l’adopter vous ne serez pas déçu.

Pour télécharger Intellij IDE c’est ici que ça se passe

5 retours sur “Passer d’Eclipse à Intellij : Retour d’expérience”

  1. Xavier Nopre says:

    Salut Anthony,

    Merci pour ce REX intéressant.

    Quelle version d’Intellij IDE as-tu utilisée : Community Edition (gratuit) ou Ultimate Edition (pas gratuit) ?

    Merci

  2. Anthony Coulon says:

    Salut Xavier,

    J’utilise la version Ultimate. Mais je pense quand même que la version Community serait plus agréable à utiliser qu’Eclipse. Par contre il me semble que dans cette version il n’y a pas la complétion JS et la navigation dans les projet Spring, entre autre.

  3. Jabberwock says:

    Bonjour Anthony,

    Tout d’abord, merci pour ce retour d’expérience ainsi que pour cette blague de geek format BD. J’adore.

    Ensuite, bah, j’ai plein de questions.

    Etant un utilisateur assidu (presque intégriste selon certains collègues) d’Eclipse, j’aurais voulu te poser quelques questions pour mieux comprendre ton enthousiasme voir le partager. De plus après une discussion au restaurant avec quelques utilisateurs avertis d’IntelliJ, je me dis qu’il est temps de se renseigner un peu plus sur la bête.

    Pour la partie maven, utilisais-tu m2e sur Eclipse ? J’ai croisé pas mal de monde qui utilisais maven-eclipse-plugin et il est vrai que l’import est complètement manuel (parents, modules). Sans parler des lignes de commandes à taper juste pour l’ajout d’une dépendance . Par contre avec m2e, j’ai l’impression que l’import a un système similaire à celui que tu décris sur IntelliJ. Merci de me corriger si j’ai mal compris.

    Au niveau des imports statiques d’IntelliJ, ils sont automatiques ? Sans aucune configuration ? Comment cela se passe-t-il concrètement ?
    Je suis intéressé par un éventuel complément de ta part. En effet, j’en utilise sur Eclipse, et seuls ceux que j’ai personnellement configuré dans Window > Preferences > Java > Editor > Favorites sont proposés en autocomplétion. Parfois j’aimerais que d’autres le soit sans avoir à refaire la configuration.

    Je note le coup de l’InnerClass pour le refactoring. J’en ai rarement eu besoin, mais ça peut être utile.

    Niveau SQL, si j’ai bien compris, l’autocomplétion se fait sur toutes les tables de ta base y compris dans les chaînes de caractères java. Je suppose que cela fonctionne également dans les fichiers SQL comme c’est le cas sur Eclipse.

    Tu indiques que sur Eclipse Kepler la complétion JS s’était amélioré. Tu parles uniquement de l’édition des fichiers JS ou même les fichiers HTML et JSP ? Sur le coup je trouve que c’est toujours lent quand on en a réellement besoin. J’aurais également une question annexe, tu as réussi à configurer l’autocomplétion sur des bibliothèque style jQuery ?

    Je te remercie de m’avoir lu jusque là ainsi que pour tes éventuelles réponses. Je sais que ça ne motive pas vraiment de lire un pavé pareil.

  4. Anthony Coulon says:

    Bonjour Jabberwock

    Tout d’abord merci pour ton commentaire et désolé pour le temps de réponse !

    Sur Eclipse j’utilisais m2e et j’en étais assez content. Mais sur Intellij l’intégration est beaucoup plus poussée. Il y a rien à configurer, chaque nouveau dossier sera importé automatiquement dans le projet et chaque module maven sera importé comme tel dans l’IDE.

    Je te confirme que les imports statiques fonctionnent sans rien configurer (au contraire d’Eclipse). Intellij les retrouve tout seul comme un grand. Un coup de complétions et il te propose d’utiliser l’attribut statique de tel classe. Tu auras quelque chose dans ce genre : “MaClasse.monStatique” et dans un second temps tu peux rajouter l’import statique pour avoir que “monStatique”.

    Pour le coup de l’inner classe c’est juste que le moteur de refactoring d’Intellij est plus évolué que celui d’Eclipse. Là où ce dernier t’informe qu’il ne peut pas extraire ton bout de code dans une méthode, Intellij lui va plutôt te proposer d’extraire une inner classe avec la méthode en question et les n variables que tu manipule.

    Dans les fichiers SQL Eclipse lui ne propose qu’une complétion sur les mots clés or Intellij lui va au-delà, il arrive à retrouver tes noms de tables et de colonnes.

    Pour ce qui est de la complétion dans les JS encore une fois il n’y a rien à configurer. Intellij voit tout ! Absolument tout ce qu’il y a dans projet !

    Voilà j’espère avoir correctement répondu à tes question. encore merci pour ton commentaire.

    Anthony

  5. Jabberwock says:

    Bonjour Anthony,

    Pas de soucis pour le temps que tu as pris. Je suppose que comme moi, il y a des périodes ou le travail est plus prenant.

    Merci pour tes réponses. Cela conforte dans l’idée de tester Intellij. J’échange pas mal en ce moment avec des développeurs sur le sujet et ils en sont tous très contents de l’outil. Il est donc temps que je me fasse une première impression sur un projet réel.

    Sinon, pour Eclipse et l’autocomplétion SQL, il existe une technique pour l’avoir sur les fichier “.sql”. Ce n’est pas parfait mais c’est déjà mieux que rien du tout. Je pensais écrire un article à ce sujet sur mon blog. Je reviendrais vers toi à ce moment là si ça t’intéresse.


    Jabberwock

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

By submitting this form, you accept the Mollom privacy policy.