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 !