Les IDE sont-ils dangereux pour les développeurs ?
Certains pensent qu'ils rendent incompétents

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Sur le même sujet
Le , par Cedric Chevalier, Chroniqueur Actualités
Les IDE (environnement de développement intégré) ont marqué un tournant décisif dans le domaine du développement logiciel. Ce sont des outils simples mais puissants, qui permettent aux développeurs d’augmenter de façon significative leur productivité.

Avec des fonctionnalités comme l’autocomplétion, permettant à un utilisateur de limiter la quantité d’informations saisies au clavier, le refactoring, ou encore le « Drag and drop » des composants (glisser/déposer) pour la création des interfaces utilisateurs et bien d’autres, les IDE offrent beaucoup de facilités, aussi bien aux amateurs qu’aux développeurs professionnels.

Actuellement sur le marché, il existe des IDE pour la plupart des langages de programmation. Eclipse, CodeBlock, Aptana, Netbeans, Xcode, ou encore Visual Studio constituent quelques bons exemples.

Cependant, malgré toutes les facilités que peuvent offrir les IDE, certains développeurs préfèrent le code à l’ancienne, c’est à dire armés d’un bon éditeur de texte et surtout de beaucoup d’ardeur au travail.

Que reprochent-ils aux IDE ? Ils évoquent souvent plusieurs raisons, entre autres le manque d’un bon IDE pour leur langage de programmation fétiche, et par dessus tout, la paresse engendrée par ces outils.

Pour eux, à force d’utiliser un IDE, on finit par oublier les rouages du langage de programmation. La chose est d’autant plus flagrante avec l’utilisation de la fonctionnalité de création des interfaces utilisateurs fournie par certains IDE. En effet, tout ce que doit faire le développeur c’est glisser/déposer des composants pour qu’ensuite l’IDE génère le code correspondant pour eux.

Source : billet de Matthew Mombrea

Et vous ?

Quelle méthode utilisez-vous pour le développement de vos applications ?

Êtes-vous d'accord avec ceux qui pensent que les IDE rendent incompétents ?


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


 Poster une réponse

Avatar de Neckara Neckara
http://www.developpez.com
Responsable Sécurité
le 26/02/2014 6:44
Bonjour,

Ils évoquent souvent plusieurs raisons entre autres, le manque d’un bon IDE pour leur langage de programmation fétiche.

En prenant n'importe quel bon IDE, en modifiant la chaîne de compilation et les paramètres d'exécution, il y a un moyen de l'adapter à leur langage de programmation fétiche. Si cet argument n'est pas un signe de paresse .

et par dessus tout la paresse engendrée par ces outils.

Le but est d'augmenter sa productivité, ce n'est pas de la paresse.
L'incompétence c'est bien de passer 2 heures à écrire un Makefile en ajoutant tous les fichiers un à un plutôt que de passer 10 secondes à importer des fichiers dans un projet ou d'écrire un Makefile "générique" (sans avoir nécessairement besoin d'un IDE d'ailleurs).
L'incompétence c'est passer plus de temps à faire une chose alors qu'on peut la faire plus rapidement avec toujours la même qualité.

Pour eux, à force d’utiliser un IDE, on finit par oublier les rouages du langage de programmation.

A part les IDE qui proposent une interface de création d'UI, je ne vois pas du tout en quoi les IDE feraient "oublier" les rouages du langage de programmation...

D'ailleurs, les personnes que connais qui n'utilisent vim au lieu d'un IDE l'ont en fait presque transformé en IDE en rajoutant l'auto-complétion, des commandes pour exécuter/déboguer, la gestion des fichiers du projet, etc.
Et de mon côté j'ai transformé mon IDE (QtCreator) en vim grâce à FakeVim .

D'ailleurs si ces personnes utilisent vim, c'est pour la rapidité qu'offrent toutes les commandes de vim qui permettent de se passer totalement de la souris.
Mais bon, un éditeur dans un IDE ça se change et ça se configure aussi.

Pour les IDE proposant une interface de création d'UI, selon le langage, on peut oublier des rouages mais pas tous les rouages.
Les rouages qu'on oublie, ce sont ceux dont on aura plus besoin, qu'on utilisera plus. Ce n'est donc pas signe d'incompétence.

La chose est d’autant plus flagrante avec l’utilisation de la fonctionnalité de création des interfaces utilisateurs fournit par certains IDE. En effet, tout ce que doit faire le développeur c’est glisser déposer des composants pour qu’ensuite l’IDE génère le code correspondant pour eux.

Si l'IDE peut le faire automatiquement et plus rapidement, tant mieux pour nous.
On peut ainsi discuter avec un non-informaticien de la disposition des éléments en lui montrant en temps réel et même lui déléguer cette tâche si l'interface est simple. C'est un gain non-négligeable.
Avatar de Paul TOTH Paul TOTH
http://www.developpez.com
Expert Confirmé Sénior
le 26/02/2014 7:19
il y a deux aspects dans cette remarque

1) l'amélioration de la saisie du code : code automatique, mise en évidence de bug potentiels, insertion automatique des méthodes, etc...

pour cette partie, depuis que j'utilise Android Studio pour développer pour Android et NetBeans pour PHP, je dois dire qu'il y a des fonctions très pratique, comme l'insertion automatique des import, l'insertion des méthodes d'une interface, etc...et aussi des choses casse-pied comme la gestion automatique des quotes qui est très souvent mal géré - notamment à cause de l'apostrophe.

mais de façon générale certains de ces ajouts sont précieux.

2) le développement RAD avec des composants visuels à la souris

là c'est un autre problème, il y a des IDE très stables et pratiques, et d'autres beaucoup moins...mais les uns comme les autres s'accompagne d'un framework qui pèse parfois lourd, voir très lourd sur de petits projets. Pour ceux-là je préfère parfois gérer tout ça à la main.

Maintenant si l'objectif premier est la productivité, les IDE (non bugués) sont un grain appréciable (les bugs provoquant l'effet inverse).
Avatar de gangsoleil gangsoleil
http://www.developpez.com
Modérateur
le 26/02/2014 9:38
Bonjour,

Ce n'est pas l'IDE qu'ils critiquent, mais la generation de code. Le fait qu'ils ne fassent pas la difference entre les deux est, a mon sens, assez inquietant.

Un IDE, c'est un editeur qui apporte des fonctionalites qui aident le developpeur a developper : suivre un appel de fonction, connaitre le type d'une variable, un peu d'auto-completion pour se rappeler que la fonction s'appelle nouveau_post_dans_developpez_com et non pas nouveau_post_dans_developpez_net, de la coloration syntaxique, une recherche dans le projet, ...
Tout ceci existe dans pleins d'editeurs, a commencer par vim et emacs, qui ne sont pas specialement decrié dans ce post (puisqu'ils finissent en citant notepad++ comme remplacant d'IDE).

Donc la question est : est-ce que la generation de code rend bete ?

Je ne sais pas si ca rend bete, mais est-ce que ca fait du mauvais code, la reponse est oui.
Avatar de BenoitM BenoitM
http://www.developpez.com
Expert Confirmé
le 26/02/2014 11:52
Citation Envoyé par gangsoleil  Voir le message
Je ne sais pas si ca rend bete, mais est-ce que ca fait du mauvais code, la reponse est oui.

Euh pour certaines choses j'ai plus confiance en un generateur de code qu'à un être humain

Perso les snippets marche très bien pour faire du code sans faire de faute d'ortographe, surtout quand l'humain fait un copier coller et oublie de changer le nom de la variable.
Avatar de _skip _skip
http://www.developpez.com
Expert Confirmé Sénior
le 26/02/2014 13:15
Citation Envoyé par Cedric Chevalier  Voir le message
Que reprochent-ils aux IDE ? Ils évoquent souvent plusieurs raisons entre autres, le manque d’un bon IDE pour leur langage de programmation fétiche, et par dessus tout la paresse engendrée par ces outils.

Il y a effectivement des langages pour lesquels le support IDE est excellent (java, c#) et d'autres langages moins célèbres ou à typage dynamique où les possibilités sont plus limitées.

Pour eux, à force d’utiliser un IDE, on finit par oublier les rouages du langage de programmation. La chose est d’autant plus flagrante avec l’utilisation de la fonctionnalité de création des interfaces utilisateurs fournie par certains IDE. En effet, tout ce que doit faire le développeur c’est glisser déposer des composants pour qu’ensuite l’IDE génère le code correspondant pour eux.

Une demi-vérité peu recevable à mon goût, je vois pas en quoi utiliser un outil plutôt qu'un autre t'empêche de savoir ce que tu fais? La création d'interface utilisateur avec un éditeur graphique c'est assez confortable, parfois ça se suffit complètement et on peut conserver le code généré, parfois on peut s'en servir pour du prototypage et reprendre le code à la main, le réorganiser, y incorporer son layout manager préféré, c'est ce que je faisais... Je connais aucun IDE qui "force" l'utilisateur à passer par son éditeur de GUI ou son générateur de je ne sais quoi pour accomplir un travail (sauf windev peut être mais c'est un cas différent).

Êtes-vous d'accord avec ceux qui pensent que les IDE rendent incompétents ?

Non en fait un IDE ça apporte beaucoup à la productivité, et sur des bases de code de plusieurs milliers de classe, sauf dans de rares cas où on déplore une absence d'outils de bonne qualité, faut être limite de mauvaise foi pour prétendre que ce n'est pas une aide appréciable. Pour beaucoup de ceux qui tiennent ces discours radicalement anti-IDE sur les blogs anglophones, j'ai l'impression que c'est une façon de se faire mousser genre "ouais moi j'ai pas besoin de ces trucs pour les tocards, je suis un vrai programmeur poilu moi monsieur, les ingénieurs aujourd'hui ils savent même pas faire ci, puis ça " (je caricature à peine tant l'arrogance est parfois flagrante).
En tout cas je veux bien accepter que le support d'un langage puisse être si approximatif que certains outils soient délaissés parce qu'on a l'impression qu'ils se mettent plus en travers du chemin qu'autre chose, mais se priver d'un outil qui rend de bons service juste pour des prétextes bidons, je sais pas si c'est de la vanité ou de la fierté mal placée.
Avatar de Cafeinoman Cafeinoman
http://www.developpez.com
Membre éclairé
le 26/02/2014 13:47
Un débutant qui ouvre une IDE n'y comprend rien, il ne faut pas l'oublier. Pour qu'une IDE permette un gain de productivité, il faut déjà avoir un minimum de connaissance...
Mais une fois qu'on à les connaissances requises, je ne vois pas l'intérêt de répéter sans cesse les mêmes taches "inutiles" (imports, réécriture des signatures de méthode d'une interface qu'on implémente,...). De plus une IDE permet souvent d'éviter les fautes "bêtes" (doigts qui glissent sur le clavier et change le nom d'une variable,...).

La génération de code, c'est autre chose... Pour ce qui n'ont jamais jeté un oeil au code d'une UI Swing généré par WindowsBuilder ou autre, essayez. On passe plus de temps à optimiser le code généré qu'on en aurait passé à l'écrire!

Je pense personnellement que la remarque sur la fainéantise et l'oubli de bon nombre de bases s'applique bien mieux aux frameworks qu'aux IDE... Combien de développeurs de nos jours commence directement à travailler avec des frameworks, en aillant par ailleurs une (très) mauvaise connaissance des principes sous-jacent...?
Avatar de Kearz Kearz
http://www.developpez.com
Membre Expert
le 26/02/2014 14:00
ça dépend, si un jour on vous dit: "Vous avez du temps. Donc pas de génération de code, pas de copier/coller. Prenez votre temps". Ok, ça pourrait le faire.
Après souvent c'est: "Faut faire ça pour hier et je m'en fout de la qualité du code.", je pense que la génération de code est bien meilleur que du copier/coller massif.

Après ne pas utiliser d'IDE pour l’auto-complétion, formatage, information sur les erreurs, c'est quoi? Du masochisme?
Avatar de BugFactory BugFactory
http://www.developpez.com
Membre chevronné
le 26/02/2014 14:07
Eclipse m'a rendu plus compétent.
Parfois, l’auto-complétion m'a suggéré des méthodes plus adaptées que celles que j'avais en tête. D'autre fois, je me pose une question sur le fonctionnement d'une API : clic, voilà son code source. L'IDE fait quelque chose de bizarre? Une recherche sur Internet plus tard, j'ai appris quelque chose. Plus important, le gain en productivité me donne le temps d'être curieux.
Si un développeur utilise un générateur sans jamais lire le code généré, utilise son IDE sans jamais se poser de questions, alors le problème n'est pas l'IDE, c'est son manque de curiosité.

En fait, dans cet article, on pourrait remplacer IDE par "n'importe quel outil qui vous facilite la vie". Vous utilisez une API réseau? Feignasse, vous devriez implémenter TCP vous même, sans ça vous n'y connaissez rien aux protocoles réseau. Vous allumez le chauffage? Encore un qui ne sait pas faire un feu de camp avec des silex... D'ailleurs arrêtez tout de suite de poster sur Developpez.com et écrivez des lettres à tous les inscrits, que vous porterez vous même bien sûr car pas question que la poste vous facilite le travail!
Avatar de gangsoleil gangsoleil
http://www.developpez.com
Modérateur
le 26/02/2014 14:08
Citation Envoyé par BenoitM  Voir le message
Perso les snippets marche très bien pour faire du code sans faire de faute d'ortographe, surtout quand l'humain fait un copier coller et oublie de changer le nom de la variable.

Du code sans faute d'orthographe ?? Je ne comprends pas ce que tu veux dire par là...

Lorsque je te parle de generation de code, je veux dire que tu prends une fenetre rectangulaire dans le menu, tu la mets a la taille par defaut que tu veux voir, puis tu prends un bouton rond dans le menu a gauche, tu le glisses dans ta fenetre en bas a gauche avec le texte "afficher l'image", un bouton carre a droite "afficher le lien dans wikipedia", tu fais trois trucs en plus, et hop, tu as un code qui affiche le contenu d'une base de donnee et te donne un lien automatique vers wikipedia.

Dans ce cas, si tu regardes le code généré, il est très souvent moche et si la fonctionalite est presente pour un affichage de 2 trucs, une utilisation "massive" par 4 utilisateurs te mets tout a genoux.

Oui, dans ce cas, la generation de code est a proscrire.
Avatar de Halarp27 Halarp27
http://www.developpez.com
Invité régulier
le 26/02/2014 14:09
Quelle méthode utilisez-vous pour le développement de vos applications ?

Pour ma part je n'en utilise plus maintenant après être passé sous Gnu/Linux. Je fait tout séparément.

Êtes-vous d'accord avec ceux qui pensent que les IDE rendent incompétents ?

Un peu oui, ils simplifient beacoup d'éléments. L'on devient fénéant à force de reposer sur l'autocomplétition par exemple.
Offres d'emploi IT
Developpeur informatique vba
CDI
ProRH - Ile de France - Mantes-la-Jolie (78200)
Parue le 24/07/2014
Développeur .net h/f
CDI
CRESCENDO BROTTEAUX - Rhône Alpes - Lyon (69000)
Parue le 07/08/2014
Développeur java h/f
CDI
BULL FR - Provence Alpes Côte d'Azur - Toulon (83200)
Parue le 31/07/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula