Quelles sont les difficultés pour passer de Eclipse à IntelliJ ?
Venez partager votre expérience sur le forum Java

Le , par eulbobo, Membre chevronné
Bonjour à tous,

Petite présentation du contexte : je bosse depuis plus de 10 ans avec Eclipse dans différentes versions sans trop me poser de questions sur ce qui se fait à côté. J'ai essuyé pas mal de plâtres, d'erreurs, de trucs étranges, mais aujourd'hui, je maîtrise l'outil.

Je fais majoritairement du Java orienté Web avec des framework du genre Struts (1 ou 2), Spring, Hibernate, sur des serveurs d'application comme tomcat (ok, que sur tomcat), avec une intégration Maven.

J'ai aussi pris l'habitude de ne pas utiliser les outils de SCM intégrés à Eclipse pour préférer des outils dédiés à cette fonction (comme TortoiseSvn quand j'utilisais SVN) suite à quelques déconvenues quand on était plusieurs à travailler sur un même projet (et paf le conflit).

Je vais commencer sous peu une nouvelle mission dans laquelle on m'a annoncé que la politique de la boîte était d'utiliser IntelliJ. Le développement va être majoritairement du microservice, donc du pur java (pas d'UI du tout ! )

Et j'ai essayé... J'ai téléchargé la version Ultimate (parce qu'il y a un essai), j'ai essayé de l'utiliser, de récupérer mes projets, de les faire tourner (avec la blague du "comment on fait pour démarrer le serveur ?", mais je pense que quelqu'un venant d'IntelliJ sur Eclipse aurait le même problème), et franchement j'ai du mal...
J'ai du mal à plusieurs niveaux :
  • je trouve l'UI moche (mais bon, les goûts et les couleurs...)
  • je trouve qu'on a moins d'informations quand on code : pas de tooltip indiquant la javadoc d'une méthode quand on passe dessus (il y aurait une option ?), pas de rappel des noms et types quand on remplit les paramètres d'une fonction, pas de façon simple et rapide d'atteindre une méthode dans une classe précise (ctrl+O dans Eclipse)
  • pas d'affichage des warnings à la compilation : on sait qu'il y en a 3... OK, merci... Ils sont où?
  • pas d'affichage des warnings au fil de l'eau : il faut compiler pour qu'ils s'affichent
  • pas de raccourci pour faire de l'import automatique (ctrl+shift+o dans Eclipse : ça les classe, ça vire ceux qui ne servent à rien, et ça importe ceux qui manquent en te demandant quand il y a un doute)
  • j'ai l'impression que ça veut gérer toutes les technos existantes (alors que... je n'en ai pas besoin)
  • j'ai l'impression que ça ne les gère pas si bien que ça (prise en charge struts, un champ hidden nommé method qui correspond à mon paramètre de dispatch action : ça me met une erreur parce que le champ n'existe pas dans mon Form... ET POURTANT ÇA MARCHE !)
  • l'affichage des erreurs se fait en changeant la couleur plutôt qu'en soulignant le problème : il y a déjà plein de codes couleur partout, le fait que ça soit rouge je ne trouve pas ça spécialement parlant. Surtout que ces erreurs dans la vue projet apparaissent bien soulignés en rouge ! (donc une hérésie de design avec deux formes graphiques différentes pour signifier la même chose)
  • Si vous avez plusieurs projets maven DIFFÉRENTS et que vous avez besoin de travailler sur les deux en même temps... Ben il faut systématiquement lancer un maven install sur le projet initial pour en bénéficier sur l'autre. C'est con, mais c'est lourd quand on développe souvent plusieurs choses en même temps, surtout si la dépendance est longue à créer parce qu'elle doit générer plein de codes source et faire plein de tests... Quand les projets sont ouverts en même temps dans Eclipse, les dépendances sont gérées en direct sans avoir besoin de faire install à chaque modification
  • Pas de goals prédéfinis dans Maven : obligé à CHAQUE PROJET d'aller ajouter les commandes mvn compile, mvn install, mvn package, mvn clean...
  • J'ai sous le nez un projet qui compile parfaitement avec Maven mais pour lequel IntelliJ me dit "Je trouve pas ton interface" (qui est pourtant correctement intégrée au ClassPath via un Jar contenant l'interface, et qui apparaît pourtant correctement dans les External Librairies)


(oui, j'ai remis à jour le projet 12 fois, et fait clean aussi)

Bref, pour faire court, je le sens pas...

Du coup, je suis allé voir ce qu'Internet en disait en recherchant "Intellij VS Eclipse", et je tombe SYSTÉMATIQUEMENT sur des posts qui disent "IntelliJ c'est meilleur à tous les niveaux"... OK... sauf que
  • la plupart des posts datent d'avant 2015 (donc avant la version actuelle de Eclipse : mars)
  • il n'y a pas beaucoup d'arguments à part "c'est mieux"...
  • la plupart des points "négatifs" notés dans Eclipse sont faux (genre la mauvaise autocomplétion, la mauvaise intégration Maven...)
  • la plupart des points "positifs" notés dans IntelliJ existent aussi de base dans Eclipse (surtout si on utilise Maven... On ajoute un projet maven et hop, rien d'autre à faire... Dans IntelliJ, quand vous voulez importer un projet Maven, il faut lui dire que c'est un projet Maven... Le fichier pom.xml n'a pas l'air de l'inspirer)


Du coup je me tourne vers vous aujourd'hui, vous qui avez manipulé deux versions récentes des deux environnements de développement.
  • Lequel préférez-vous ?
  • Pourquoi ?
  • Comment l'utilisez-vous et pour quoi faire ?
  • Qu'est-ce qui vous manque dans votre IDE préféré qui existe dans l'autre ?


Merci !


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Robin56 Robin56 - Responsable Java https://www.developpez.com
le 21/10/2015 à 23:12
Je ne vais pas être d'une grande aide à ta question mais je soulève l'intérêt de celle-ci !

Je suis habitué depuis plusieurs années à Eclipse. J'entends aussi des personnes prêcher pour IntelliJ mais qui ont souvent un discours "fanboy". J'aimerais aussi avoir un avis objectif là dessus.
Avatar de Mickael_Istria Mickael_Istria - Membre chevronné https://www.developpez.com
le 26/10/2015 à 19:18
Salut,
Merci de partager cet avis personnel qui se veut objectif, ça fait plaisir! Car comme tu l'as remarqué, il y a eu beaucoup de dogmatisme de la part des utilisateurs d'IntelliJ ces derniers temps et c'en était devenu difficile de dire du bien d'Eclipse sans que les fanboyz et fangirlz d'IntelliJ viennent dire "bouh, c'est nul" Ca confirme aussi ce que j'ai entendu ailleurs, Eclipse Mars a relevé la barre si bien que maintenant IntelliJ n'est pas vraiment beaucoup mieux qu'Eclipse pour le devs Java. Les 2 se valent bien, et ce n'est plus qu'une affaire de préférences et d'habitudes.
Imposer un IDE, surtout un qui est payant, est une mauvaise idée. Si tu as l'occasion de faire redécouvrir Eclipse IDE là où tu fais ta mission et qu'ils en sont satisfaits, tu leur feras économiser quelques milliers d'euros!
Ceci dit, pour Mars, Eclipse reste faible sur le JavaScript, et là, WebStorm se démarque. On peut espérer qu'Eclipse va aussi rebondir à ce sujet bientôt, en tout cas il y a vraiment des efforts en cours pour le JS. Si bien que dans le cadre de microservices, il est probable que tu te heurtes à ce problème et que WebStorm soit mieux pour toi. En espérant que ça ne dure que jusqu'à la release de Neon en juin 2016
Avatar de Mickael Baron Mickael Baron - Responsable Java https://www.developpez.com
le 26/10/2015 à 20:42
Salut,

Je ne prendrai pas de parti puisque je n'ai jamais fait l'effort d'utiliser IntelliJ pour voir comment c'était.

En tout cas, il serait intéressant que tu reviennes nous faire part de ton expérience dans quelques mois. Et pourquoi pas écrire un article sur le sujet.

Mickael
Avatar de eulbobo eulbobo - Membre chevronné https://www.developpez.com
le 27/10/2015 à 10:09
Citation Envoyé par Mickael Baron  Voir le message
En tout cas, il serait intéressant que tu reviennes nous faire part de ton expérience dans quelques mois. Et pourquoi pas écrire un article sur le sujet.

Je ferai ça si j'ai réussi à m'y mettre et si je n'ai pas convaincu l'équipe de retourner à Eclipse
Avatar de spidetra spidetra - Membre confirmé https://www.developpez.com
le 27/10/2015 à 12:14
Salut eulbobo,
On doit avoir un profil assez similaire. J'utilise Eclipse de puis 2006 de manière intensive.
Avec en plus utilisation intensive de l'éco-système Eclipse : développement Eclipse RCP, EMF, GMF, Xtext, etc...

Mes premiers essais avec Intellij, on été similaire au tiens : "Mais, c'est quoi cette grosse bip ! Il est infâme cet IDE".

Un jour je m'y suis mis sérieusement et je ne le regrette pas.
On ne peut pas comparer deux IDEs feature/feature. Il faut tester et voir si l'IDE nous convient ou pas.

Pour chacun des uses cases que tu décrit dans ton post initial il existe un shorcut dans IntelliJ.

Juste un exemple: pas de javadoc sur un MouseOver. C'est normal la philosophie d'IntelliJ c'est justement de réduire l'utilisation de la souris.
Quand je me suis formé à IntelliJ, je me suis forcé à enlever la souris pour me servir au maximum du clavier et des raccourcis.

Si tu veux la javadoc : Ctrl+Q. Et si tu veux vraiment utiliser la souris : Ctrl+MouseOver.

Tes remarques sur les warnings sont bizarres, je trouve au contraire que IntelliJ est beaucoup plus performant sur ce point:

Eclipse:
Code : Sélectionner tout
1
2
3
4
5
 
    public static void main( String[] args ) throws IOException 
    { 
        Files.newBufferedReader(null); 
    }


IntelliJ
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
 
    public static void main( String[] args ) throws IOException { 
        Path path = getPath(); 
        final BufferedReader bufferedReader = Files.newBufferedReader(path); 
 
 
    } 
 
    public static Path getPath() { 
        return null; 
    }
Aucun warning dans le code Eclipse.
IntelliJ te signale que path est peut-être null, et que ce paramètre ne doit pas être null. Au passage il m'a aussi suggérer de créer la variable et de la mettre final.

Sur Maven on a vraiment deux ressentis différents. L'intégration de Maven dans Eclipse me fait vraiment pêter les plombs.

Sur mes projets, hors Eclipse RCP, j'utilise systématiquement IntelliJ. Quand je ne suis pas seul sur le projet, les membres de mon équipe ont le choix entre Eclipse & IntelliJ.

Je ne force jamais personne à passer sous IntelliJ. J'ai trouvé un petit test pour les convaincre:
- sur un projet Maven rajouter des dépendances.

- Sous Eclipse le développeur va cliquer sur l'onglet dependencies, cliquer sur Add, renseigner la fenêtre pop-up, etc.
- Sous IntelliJ : dep+ tab -> et hop à moi la rapidité de l'auto-complétion. Pour info, l'utilisation de l'auto-complétion dans Eclipse oblige aussi à passer par le fenêtre PopUp.

Si le développeur dit : "Ha oui, quand même!". Il est prêt à tester IntelliJ. S'il préfère le mode formulaire, il vaut mieux qu'il continu avec Eclipse.

Je prends systématiquement cet exemple car il illustre bien la différence de philosophie entre les 2 IDEs.
- Dans Eclipse on a des formulaires structurés qui nous assistent.
- Dans IntelliJ, l'auto-complétion est plus efficace.

La première fois que j'ai voulu éditer un fichier Maven dans InteliJ, je me suis dit: "Mais ils sont trop null, ils ne sont même pas capable de faire un éditeur structuré !".

En terme de productivité, plus ça allait et moins je supportais Eclipse. Un jour où j'ai perdu une après-midi avec Eclipse, j'ai finit par lever la tête et choisir un autre IDE.
Le portage de l'Android Studio sous IntelliJ m'a convaincu de persévérer.

Courage pour ta future mission et tiens nous au courant de ton évolution.
Avatar de eulbobo eulbobo - Membre chevronné https://www.developpez.com
le 27/10/2015 à 14:17
Cool, un converti qui vient nous présenter son point de vue
Merci !

Pour Maven, je suis biaisé, je n'utilise pas les système d'assistants : je fais mon pom moi-même à la main
Et il y a moyen de faire des recherches dans les artefacts existants qui sont référencés soit dans ton repository local, soit dans ton repository d'entreprise... Soit si tu es un grand malade dans l'index du repo M2Central.
Mais je préfère toujours faire ça à la main :p (et de toute façon, ce qui compte c'est que ça fonctionne en ligne de commande)

En tout cas, tes exemples prouvent un point : la philosophie des deux IDE n'est effectivement pas la même, et ils ne vont pas tester et vérifier les mêmes choses. Pareil pour l'utilisation de la souris : je ne l'utilise que peu, mais des fois, ça va plus vite de passer à la souris plutôt que de replacer ton curseur au bon endroit ! Et quitte, si tu as la main sur la souris, c'est pas mal d'avoir des potentiels plutôt que de te faire repasser la main sur le clavier.
Et oui, il y a des raccourcis claviers (dont certains qui sont très visiblement des trolls, du genre le ctrl+d qui efface une ligne sur Eclipse et qui la duplique dans IntelliJ), et je me doute qu'il faut s'y habituer pour bien gérer l'outil (mais sachant que j'ai des manques à ce niveau, je ne le prends pas en compte)

Par contre, tu parles de "formulaires qui nous assistent" dans Eclipse : tu as des exemples? Parce que personnellement, je n'en utilise pas ou ça fait longtemps que je n'en ai pas utilisés (ils n'étaient pas spécialement performants ou fournissant un gain de temps ou d'efficacité)

Pour l'autocomplétion Eclipse, la version Mars est vraiment balèze... Un grand pas en avant par rapport à ce qui existait avant.

Et oui, de ce que j'en ai compris, IntelliJ a effectivement l'air d'avoir un train d'avance pour le dev Android... Mais je n'en fais pas...
La mission commence le 2 novembre, on verra ce qui se passe ! (je tiendrai un journal et on verra si un jour un virage se prend et où je dirais "En fait c'est super bien"... J'aurai des arguments si ça arrive ^^)
Avatar de Mickael Baron Mickael Baron - Responsable Java https://www.developpez.com
le 27/10/2015 à 14:25
@spidetra

Au final si j'ai bien compris IntelliJ ce n'est pas fait pour les développeurs occasionnels ? Parce que connaître les raccourcis clavier c'est vraiment dur à faire passer que les personnes ne font pas du code toute la journée.

Mickael
Avatar de spidetra spidetra - Membre confirmé https://www.developpez.com
le 27/10/2015 à 14:34
Citation Envoyé par Mickael Baron  Voir le message
@spidetra

Au final si j'ai bien compris IntelliJ ce n'est pas fait pour les développeurs occasionnels ? Parce que connaître les raccourcis clavier c'est vraiment dur à faire passer que les personnes ne font pas du code toute la journée.

Mickael

Tu peux toujours te passer des raccourcis clavier et travailler avec la souris, comme dans Eclipse.
Je trouve qu'on est plus productif sans souris, c'est une préférence personnelle.

Là on ne parle pas de développeurs occasionnels. On doit tous passer plus de huit par jours avec notre IDE. A ce niveau on doit connaître les settings et les raccourcis de notre outil de travail.
Les utilisateurs d'Eclipse qui ne désirent pas apprendre les raccourcis d'IntelliJ peuvent tjrs choisir de mapper les raccourcis sur ceux d'Eclipse.
Avatar de Robin56 Robin56 - Responsable Java https://www.developpez.com
le 27/10/2015 à 14:40
Citation Envoyé par spidetra  Voir le message
Là on ne parle pas de développeurs occasionnels. On doit tous passer plus de huit par jours avec notre IDE. A ce niveau on doit connaître les settings et les raccourcis de notre outil de travail.

Pas forcément je dirais. Personnellement, je ne suis plus dans la case de celui qui est sur son IDE full time (loin de là). Donc en gros, lorsque j'en ai besoin c'est pour un POC ou pour aller tester quelque chose pouvant être mis en place rapidement. Donc je ne fais pas du code toute la journée mais je souhaite rapidement faire ce que je souhaite.
Avatar de Mickael_Istria Mickael_Istria - Membre chevronné https://www.developpez.com
le 27/10/2015 à 15:00
Citation Envoyé par spidetra  Voir le message
Là on ne parle pas de développeurs occasionnels. On doit tous passer plus de huit par jours avec notre IDE.

Comme Robin56, je suis mitigé sur ce point de vue. Au final, un dev ne passe pas sa journée sur un IDE, il y a beaucoup de temps passé en apprentissage/veille, du temps en "architecture" où on avance un sujet sans être prêt à coder, du temps d'intéraction avec l'équipe ou les utilisateurs, le temps de tests... J'ai de plus en plus de mal à croire au mythe du développeur à temps plein sur son IDE. Si vous connaissez des études à ce sujet, je suis preneur!
Offres d'emploi IT
Développeur e-commerce expérimenté H/F Bordeaux
Smile - Aquitaine - Bordeaux (33000)
Tech Lead PHP H/F Lyon
Smile - Rhône Alpes - Lyon (69000)
Développeur Front et Back Python / Django
Pilot Systems - Ile de France - Paris

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Eclipse : Mickael Baron - Robin56 -