Citation:
Envoyé par
spidetra
@eulbobo: Dans la doc d'IntelliJ tu as un guide de migration pour les utilisateurs venant d'Eclipse. Je ne l'avais pas lu et il est plutôt bien fait. Tu y trouveras des réponses à tes questions.
Je l'ai déjà lue et parcourue, mais en fait, je me dis qu'un outil devrait être assez intuitif pour ne pas avoir besoin d'un guide de migration. Pour moi c'est le test ergonomique : est-ce que j'arrive à faire fonctionner les éléments principaux juste avec l'interface de base sans avoir à rechercher !
Et pour ça, c'est vrai que IJ a un truc très sympa : pouvoir faire un ctrl+shift+A pour rechercher tout et n'importe quoi (presque trop même), dont les paramètres interne du genre SUPPRIMER CE PUTAIN DE SPELLCHECK (je ne comprends pas pourquoi cette fonctionnalité existe). IJ permet de le faire de n'importe où sans avoir à chercher. C'est bien ! C'est agréable !
Mais c'est pas un truc qu'on fait tous les jours : on le fait une fois quand on paramètre son environnement. J'ai toujours tendance à voir les fonctionnalités qui me sont les plus utiles (et l'autocomplétion de base dans mars est meilleure que celle d'IJ aujourd'hui : les résultats sont les mêmes, mais on a aussi le rappel des paramètres et ça, ça n'a pas de prix quand on a une méthode a 12 paramètres qui a été codé par un gros porc)
Citation:
#Feature 1:
En tant que développeur, j'ai besoin d'un IDE qui se fasse oublier. Je veux pouvoir coder et me concentrer sans être interrompu par l'IDE. ...
Aujourd'hui, j'ai de plus en plus de mal à les supporter.
Je suis comme toi ! Je déteste être interrompu... Ou que la machine se mette à mouliner pour rien (merci les validateurs automatiques qui valident TOUS les projets à chaque rebuild... Je désactive systématiquement... quel que soit l'IDE)
Heureusement, chaque notification peut être cachée avec le always run in background qui te permet de travailler sans te faire interrompre !
Citation:
#Feature 2:
En tant que développeur, les problèmes de synchronisation de l'IDE avec son environnement ne m'intéresse pas: workspace is out-of-sync, maven is out of date.
OK. Eclipse, tu sais que tu es désynchronisé, alors fait ce que tu dois faire: fait un refresh des fichiers qui doivent être mis à jour, met à jour les projets Maven qui doivent être mis-à-jour.
Fait ce que tu veux, mais fait le en silence, en tâche de fond et sans me perturber. Cela ne m'intéresse pas.
Préviens-moi juste si tu dois rafraîchir un fichier qui est ouvert.
Pour ce point, je ne suis pas d'accord du tout !
Pourquoi?
workspace is out of sync : ça veut dire que tu as des éléments externes à ton IDE qui touchent tes fichiers. POURQUOI?
Le fait que la config maven doive être mise à jour, c'est généralement quand des paramètres liés au classpath ou aux fondamentaux du projet qui sont changés (du genre un changement de JDK) : ça n'arrive pas tous les jours
PAR CONTRE : j'aime maîtriser mon environnement et choisir quand les choses doivent être faites !
Je veux choisir quand je veux sauvegarder, quand je veux compiler, quand je veux rafraîchir une vue... Mais bon, je fais du web, donc avec la compilation automatique, à chaque sauvegarde ça redémarre mon tomcat (et c'est pas nécessairement quelque chose que je VEUX)
J'aime le contrôle de mon environnement et savoir ce qui s'y passe.
Avec IJ, un truc qui me dérange, c'est le fait de ne pas sauvegarder.... Je comprends la logique, je comprends la philosophie et elle est pas con : quand tu changes un truc, ben voilà c'est changé... Mais j'aime cette idée de la "validation" par le développeur... Ces minis étapes dans le développement... Ce rythme qui s'acquiert... Je code, je sauvegarde, je code, je sauvegarde... Autant d'étapes qui sont des validation intellectuelles des concepts.
Dans mon mode de fonctionnement, quand je sauvegarde mon fichier, c'est que ce que j'ai fait me va. C'est que j'ai fait une étape. C'est que je vais passer au point suivant. Avec IJ, c'est con, mais CA ME MANQUE. Je veux mon ctrl+s. Je veux mon gros bouton "Ready to go". Je veux qu'un mécanisme dans ma tête me dise "on passe à la suite".
Citation:
#Feature 3:
En tant que développeur, la notion de workspace ne m'intéresse pas.
J'aimerais pouvoir définir mes settings:
- au niveau de mon IDE pour tout mes projets
- surcharger des settings au niveau de chaque projet si j'en ai besoin.
Je n'ai pas envie de devoir configurer l'encodage UTF-8 chaque fois que je change de workspace.
J'ai découvert la notion de workspace dans un cadre particulier : le développement de plusieurs applications différentes sur différentes configurations...
Projets JDK 1.4, 1.5, 1.6
Tomcat 4, 5, 6
Projets Maven ou pas
Projets Flex
Projets Swing
Projets Struts
Projets Struts2
Projets JSF
Projets UTF-8 ou ISO-8859-1
Ben mine de rien, quand tu dois en gérer plusieurs en même temps, c'est bien d'avoir un "espace de travail" dans lequel la configuration soit déjà la bonne, et qui soit spécifique à ce que tu veux faire.
La plupart du temps, on a un projet sur une techno donc effectivement, pas besoin d'avoir 28 configuration différentes. Mais dès que tu interviens sur des domaines différents, ça devient très utile, aussi bien pour la rapidité à lancer un nouveau projet qu'au niveau organisationnel pour savoir facilement quel projet tourne sur quoi avec quels paramètres !
Donc pas "besoin", mais pratique organisationnellement (même si on peut s'organiser autrement)
Citation:
#Feature 4:
En tant que développeur j'aimerais pouvoir récupérer mes settings chaque fois que je migre ma version d'Eclipse.
Pièce jointe 191289
(attention, jeu de mot en anglais)
Citation:
#Feature 5:
En tant que développeur, je n'ai pas besoin de la notion de perspective.
Là je suis d'accord et pas d'accord.
J'aime la notion de perspectives qui te permettent de "voir" ton projet différement. C'est juste une question de répartition des éléments, mais quand je code, je n'ai pas besoin d'avoir une fenêtre avec les valeurs de débug, les points d'arrêts et la stacktrace : j'ai besoin de me concentrer sur mon code donc ma fenêtre de code doit être la plus grande possible
Par contre, dès que je débug, j'ai besoin d'autres informations... Le code devient moins important, j'ai besoin de pouvoir lire facilement les valeurs portées par mes objets et variables. J'ai besoin de voir le stack, la mémoire, les points d'arrêts, les outils de navigation dans le code (step over, step out, etc)... Tout un tas de trucs qui ne feraient que m'encombrer dans la vue "code" normale.
IJ a pris le parti de gérer les deux en même temps, mais le résultat c'est moins de lisibilité (question de goût, je suis sûr qu'on s'y fait).
Tiens, tant qu'on y est : il y a un truc que je ne comprends pas.
Dans Eclipse, l'IDE génère des fichiers pour chaque projet qui lui servent à s'y retrouver dans la configuration. Les répertoires dans .settings, les fichiers .classpath et .project
IJ fait la même chose avec ses propres fichiers (les .iml et le répertoire .idea)
Par contre : Eclipse MASQUE ces fichiers qui lui sont propres tandis que IJ les affiche... Pourquoi? Pourquoi ne pas les masquer?
Exemple en image avec un même projet IJ et eclipse :
Pièce jointe 191293
D'ailleurs, en y regardant de plus près, deux nouveaux trucs que je trouve gênant :
La configuration de mon projet est en JDK 1.7 et IJ me met le compilateur 1.8 (les deux sont configurés), et l'autocompletion me propose des trucs incorrects (du genre le forEach ou streams sur une collection)... Et la compilation maven fonctionne ce qui veut dire que mon paramétrage pour demander une compilation source et target 1.7, il s'en ballec et force la compilation en 1.8 parce que c'est un putain de paramétrage projet par défaut...
Mon paramétrage projet, normalement, c'est le pom.xml, pas des paramètres de définition de la JDK ailleurs !
Citation:
2 projets maven => S'il y a deux projets, on ne doit pas avoir à bosser simultanément sur les deux mais sur l'un puis l'autre
Dans un monde idéal oui... Je ne vis pas dans un monde idéal.
Surtout quand on se rend compte de bug d'un côté, puis d'un autre et qu'on doit sans arrêter jongler de l'un à l'autre... Ou qu'on doit les faire évoluer en parallèle
Citation:
Et l'autocomplétion de IJ est vraiment, vraiment plus puissante que celle d'Eclipse!
Essaie par exemple de taper "iter" et Ctrl+espace après avoir déclaré un tableau.
Ce n'est pas de l'autocomplétion, mais de l'assistance de code ça.
L'auto complétion, c'est quand l'IDE te propose la suite de ce que tu es en train de taper, pas quand l'IDE te propose de "générer du code"
C'est pratique cela dit, mais j'ai un doute sur le "gain de temps" généré (je tape vite)
Et je viens de vérifier, Eclipse te permet de faire la même chose en commençant à taper for... Et il te propose différents types de boucles (dont le foreach mais qui n'est pas toujours une bonne solution)