Précédent   Forum du club des développeurs et IT Pro > Général Développement > Débats sur le développement - Le Best Of
Débats sur le développement - Le Best Of Décideurs : Le meilleur des débats sur les choix de technologies pour le développement. Ce forum est réservé aux professionnels.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 14h11   #1
Idelways
Expert Confirmé Sénior
 
Avatar de Idelways
 
Homme Ihssen Idelways
Développeur Ruby on Rails / iOS
Inscription : juin 2010
Messages : 1 390
Détails du profil
Informations personnelles :
Nom : Homme Ihssen Idelways

Informations professionnelles :
Activité : Développeur Ruby on Rails / iOS

Informations forums :
Inscription : juin 2010
Messages : 1 390
Points : 69 178
Points : 69 178
Par défaut 17 créateurs de langages de programmation disent ne pas utiliser de débogueurs interactifs

17 créateurs de langages de programmation disent ne pas utiliser de débogueurs interactifs
Et vous, comment déboguez-vous ?



« Masterminds of Programming » est un livre à succès qui regroupe un ensemble d'interviews exclusives avec les créateurs de 17 langages de programmation. Parmi eux, les très populaires Bjarne Stroustrup (C++), James Gosling (Java) ou encore Guido van Rossum, le créateur du langage Python, qui vient par ailleurs d'être sacré langage de l'année 2010 par Tiobe.

Les questions posées à ces créateurs portent sur des thèmes variés du monde de la programmation allant de la conception à la concurrence en passant par le débogage... C'est ce dernier point, pourtant ingrat, qui a interpellé un blogueur et développeur Python à la lecture du livre.

Chris McDonough a en effet constaté que tous ces créateurs affirment déboguer en relisant le code ou en insérant de simples instructions "print". La plupart d'entre eux nient, en somme, utiliser un débogueur interactif.

McDonough, qui avoue humblement ne pas faire le poids devant ces gourous du développement, s'étonne tout de même qu'ils n'utilisent pas les débogueurs interactifs, pourtant pratiques et qui lui « sauvent la mise à chaque fois ». Il affirme même que de ne pas les avoir serait pour lui « terrible ».

Une explication possible, d'après McDonough, serait que ces esprits supérieurs de la programmation ont plus de "stack space" dans leur cerveau qui peuvent contenir plus de code que ceux des programmeurs qui utilisent les débogueurs.

L'autre explication, diront les mauvais esprits, est que ces maitres du développement prennent soin de leur image de développeurs hors-normes.

Il y a certainement un peu des deux.




Et vous ?

Comment expliquez-vous que ces « masterminds » disent ne pas utiliser des débogueurs interactifs ?
Les utilisez-vous ou déboguez-vous, vous aussi, « à la main » ?

Source : le blog de Chris McDonough
Idelways est déconnecté   Envoyer un message privé Réponse avec citation 52
Vieux 21/01/2011, 14h26   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 423
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 423
Points : 10 815
Points : 10 815
je fais les deux, parfois en même temps

notamment je n'utilise jamais les breakpoints conditionnels j'utilise plutôt un test dans le code

Code :
1
2
3
  if Condition then
    ShowMessage('Ici'); // break point sur cette ligne
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 22
Vieux 21/01/2011, 14h33   #3
Scalap
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 12
Points : 10
Points : 10
Je suis développeur C++/Qt sous LInux et effectivement dans ma boite on code avec vi (gvim pour moi) et nous n'utilisons pas de debugger.
Les printf( qDebug() avec Qt ) sont énormément utilisés
Très rarement, même vraiment très très rarement, je lance un gdb.

Au début cela était étrange de ne pas en utiliser. Surtout que je venais du monde Windows et sous IDE (notamment Visual studio).
Le break point a cette époque était vraiment un ami. Mais bon ! loin des yeux loin du cœur.
Scalap est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/01/2011, 14h40   #4
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 963
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 963
Points : 18 158
Points : 18 158
Citation:
Envoyé par Idelways Voir le message
Chris McDonough a en effet constaté que tous ces créateurs affirment déboguer en relisant le code ou en insérant de simples instructions "print". La plupart d'entre eux nient, en somme, utiliser un débogueur interactif.
déjà le niveau moyen des personnes dont il parle est particulièrement élevé, et ils ne se "contentent" pas de savoir utiliser la langage, mais en comprennent les subtilités en terme de sémantique opérationnelle et modèle-mémoire... par ailleurs, ils ont certainement des méthodologies de développement ad-hoc qui intègrent une analyse très poussée des raffinements "sûres", voire de l'analyse statique. du coup il y a certainement moins de bugs déjà dans leur premier jet
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 62
Vieux 21/01/2011, 14h56   #5
chaplin
Membre Expert
 
Avatar de chaplin
 
Inscription : août 2006
Messages : 1 146
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 146
Points : 1 345
Points : 1 345
Comment expliquez-vous que ces « masterminds » disent ne pas utiliser des débogueurs interactifs ?
- Parce qu'ils ont beaucoup de pratique.

Les utilisez-vous ou déboguez-vous, vous aussi, « à la main » ?
- Oui, quand on a pas le compilateur sous la main et qu'il faut expliquer soit à son collaborateur, soit au prestataire où il s'est planté.
chaplin est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 21/01/2011, 15h07   #6
el_slapper
Expert Confirmé Sénior
 
Inscription : décembre 2007
Messages : 2 545
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 2 545
Points : 6 168
Points : 6 168
Je programme en COBOL et en VBA. En VBA, j'utilise abondamment le debuggeur. En COBOL, je n'en ai pas, je mets des DISPLAY(équivalent du print) partout. Donc j'alterne entre les deux

Eh bien ça se vaut, à mon sens. Juste, il faut avoir les outils qui vont bien. COBOL sous Z/OS, j'ai déjà vu des débuggeurs, ils sont lourds, délicats à utiliser, alors qu'on peut faire des DISPLAY massifs qui permettent de suivre l'intégralité de l'éxécution d'un coup d'oeil. VBA, c'est l'inverse; le débuggeur permet d'avoir une vision rapide et efficace de la situation, alors que les "traces"(j'ai même oublié comment on fait tellement j'ai trouvé ça faible) sont illisibles.

Ca donne aussi une différence de manière d'appréhender : dans une trace, on a d'un coup l'execution complète, avec tout l'historique. Dans un débuggeur, on vit le moment ou se produit le bug, et on est concentré dessus. Cette différence de philosophie explique, AMHA, pourquoi certaines préfèrent telle ou telle approche.
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 21/01/2011, 15h25   #7
Haseo86
Membre habitué
 
Inscription : novembre 2008
Messages : 85
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 85
Points : 122
Points : 122
Personnellement je code (ou plutôt j'ai codé :p) principalement en C++, Java et C#, et je n'ai jamais utilisé de déboggeur.

Sans doute la meilleure raison à cela est que je n'ai jamais eu à entreprendre d'énormes projets, et j'ai toujours pu trouver rapidement mes erreurs "à la main".
Haseo86 est déconnecté   Envoyer un message privé Réponse avec citation 24
Vieux 21/01/2011, 15h58   #8
MokuJin
Candidat au titre de Membre du Club
 
ZergMan MokuJin
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : ZergMan MokuJin

Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 12
Points : 12
Par défaut Le debuggeur, un bonheur

J'ai codé en PHP nous notepad (sans debuggeur donc) et quand j'ai pu avoir un debuggeur digne de ce nom ça a été un vrai bonheur.
J'ai vraiment eu l'impression d'aller plus vite dans mon développement.

Depuis je fait du c# sous visual studio et sans débuggeur ce ne serais tout bonnement pas possible.

J'ai un ami qui fait du delphi, et qui a un niveau nettement supérieur au mien, lui il est plutot sans debuggeur, mais il a toujours fait comme ça.

Je pense sincèrement que ce n'est qu'une question d'habitude et de maitrise.

Citation:
Envoyé par gorgonite
ils ont certainement des méthodologies de développement ad-hoc qui intègrent une analyse très poussée des raffinements "sûres", voire de l'analyse statique. du coup il y a certainement moins de bugs déjà dans leur premier jet
Je suis carrément d'accord avec toi.
MokuJin est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 21/01/2011, 16h02   #9
martopioche
Membre confirmé
 
Inscription : décembre 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 139
Points : 245
Points : 245
D'un autre coté, il me semble que c'est Martin Fowler qui qualifiait de temps perdu le temps passé sur le débuggeur. J'utilise très rarement le débuggeur en Java et Python, plus souvent en C++. Mais finalement dans tous les cas, c'est du fait d'une méconnaissance de ce qui se passe. Cette méconnaissance est soit due à mon ignorance de la techno (C++ par exemple), soit à de la reprise de code spaghetti. Si Bjarne Stroustrup parlait de C++, James Gosling de Java et Guido van Rossum de Python ou C, je présume que leur maîtrise de leur tachno est bien suffisante.
martopioche est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 21/01/2011, 16h03   #10
Fabllot
Membre expérimenté
 
Inscription : mai 2006
Messages : 506
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 506
Points : 582
Points : 582
Allez, je saute à pieds joints dans la mare !

Et bien, moi franchement, je préfère largement débugger avec un bon débuggeur, intégré à un ide. Je pense particulièrement à Visual Studio !

Et je m'explique :

J'ai fait pas mal de C il y a quelques années en débuggant au printf, puis suis passé au C++/Qt intégré à Visual et là j'ai redécouvert la programmation. Les débuggeur et breakpoints permettent un gain de temps considérable sur le débuggage.

Je travail aujourd'hui sur des plateformes type Bada (avec eclipse) où le débuggueur est lamentable, et fait régulièrement du PHP (là c'est pire)... Et je peux vous dire que je regrette énormément un débuggeur digne de ce nom !
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 54
Vieux 21/01/2011, 16h08   #11
abriotde
Membre habitué
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 146
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2007
Messages : 146
Points : 146
Points : 146
Personellement même si je suis pas un grand programmeur je n'utilise quasiment pas les débogueur car en général ils ne sont pas installé. Pour les utiliser il faut un IDE complet et méticuleusement soigné. Deplus dans 90% des cas on se dit ah oui c'est vrai j'ai pas traité ce cas en relisant le code alors que le déboggeur nous plonge trop dans le cambouis en empêchant de prendre de la hauteur. Le println complète assez bien. Après le débogueur c'est vrai que c'est partique quand c'est au point. (En javascript ils sortent à peine, pour les serveurs d'application web, ils sont inexploitables...) En Java c'est utile, en C l'appli gdb me permet de savoir ou ça plante pour le HTML vive firebug. Mais dans tous les cas (même avec un déboggeur) il arrive q'un println soit plus rapide.
abriotde est déconnecté   Envoyer un message privé Réponse avec citation 23
Vieux 21/01/2011, 16h53   #12
zarathoustroy
 
Inscription : février 2006
Messages : 21
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 21
Points : -9
Points : -9
Par défaut et les logs alors?

Bonjour,

Pour ma part, j'utilise le moins possible les débuggers. Simplement parce qu'une fois l'application déployée, ce n'est plus possible de les utiliser. Dans ces cas là, ce sont les logs qui me sauvent. Des logs pertinents (log4j ou similaire) et une relecture du code permettent la plupart du temps de comprendre d'où vient le problème.

Un bug en phase de développement, franchement ce n'est pas très grave et il n'y a pas d'urgence à le corriger... Un bug sur une appli déployé peut avoir des conséquences dramatiques... Et reproduire le bug avec un débugger peut s'avérer extrèmement long et complexe (avec pendant ce temps précieux un utilisateur (très) énervé).

Zarathoustroy
zarathoustroy est déconnecté   Envoyer un message privé Réponse avec citation 28
Vieux 21/01/2011, 16h58   #13
noOneIsInnocent
Membre Expert
 
Avatar de noOneIsInnocent
 
Homme
Inscription : mai 2002
Messages : 928
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2002
Messages : 928
Points : 1 028
Points : 1 028
Envoyer un message via MSN à noOneIsInnocent
J'avoue que j'ai aussi du mal avec les débuggers. Je préfère les fichiers de logs et avoir une vue d'ensemble de la cinématique
noOneIsInnocent est déconnecté   Envoyer un message privé Réponse avec citation 22
Vieux 21/01/2011, 17h49   #14
TheDrev
Membre confirmé
 
Avatar de TheDrev
 
Inscription : novembre 2006
Messages : 305
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2006
Messages : 305
Points : 212
Points : 212
je n'utilisait pas de debiggeur jusqu'a l'année dernière, la raison principale est que mes cheres professeurs n'en ont meme pas prononcer le mot pendant mes etudes.
Avec des langages type python.perl.ruby on peut a la limite s'en passer, mais pour trouver d'ou viens un plantage au runtime quand vous programmer en C, il faut plus que des prints
__________________
all your base are belong to us.
TheDrev est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 21/01/2011, 17h53   #15
spidermario
Membre émérite
 
Étudiant
Inscription : septembre 2006
Messages : 510
Détails du profil
Informations personnelles :
Âge : 19

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 510
Points : 905
Points : 905
Avec un langage tel que Haskell et des implémentations comme GHC, le besoin d’utiliser un débogueur est considérablement diminué.

En cas de problème : "ghci youpi.hs", et voilà le module chargé dans la boucle intéractive où vous pouvez tester chaque élément du programme isolément (avec auto-complétion des symboles disponibles ).

Vous pouvez ensuite apporter des modifications au programme dans votre éditeur externe et entrer ":reload", et vos modifications sont prises en compte. Vous pouvez alors tester à nouveau.
spidermario est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 21/01/2011, 17h55   #16
Fabllot
Membre expérimenté
 
Inscription : mai 2006
Messages : 506
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 506
Points : 582
Points : 582
Citation:
Envoyé par zarathoustroy Voir le message
Un bug en phase de développement, franchement ce n'est pas très grave et il n'y a pas d'urgence à le corriger...
Ouah ! Celle là, je la garde dans mes annales et la punaise sur mon bureau !!!
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 123
Vieux 21/01/2011, 18h28   #17
jblecanard
Membre Expert
 
Jean-Bernard
Inscription : mars 2007
Messages : 1 001
Détails du profil
Informations personnelles :
Nom : Jean-Bernard
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2007
Messages : 1 001
Points : 1 628
Points : 1 628
Je pense qu'on est d'accord pour centrer le débat sur la phase de développement. Dire qu'on n'utilise pas les débuggueurs parce qu'on ne peut plus s'en servir une fois déployé n'est pas très malin : c'est comme dire je n'achète pas de caisse à outils pour mon garage parce que quand je roule avec ma caisse, si je tombe en panne, je ne peux pas m'en servir -_-. Utiliser un débuggueur ne veut pas dire qu'on se prive de fichiers de logs parce qu'on en a un. L'utilisation n'est pas la même.

Citation:
Envoyé par spidermario Voir le message
En cas de problème : "ghci youpi.hs", et voilà le module chargé dans la boucle intéractive où vous pouvez tester chaque élément du programme isolément (avec auto-complétion des symboles disponibles ).:
Pour moi, c'est un débuggueur. Avec une interface peu commune, certes, mais débuggueur quand même.

J'utilise intensivement les débuggueurs et ils me sont très utile.
  • L'argument "c'est à cause de la méconnaissance de blabla" n'est pas valable à mes yeux. Quand on découvre un framework et/ou le code de ses collègues, code pas toujours documenté vu le contexte et/ou bugué, un débugueur est extrêmement utile.
  • Quand le programme est long à compiler et à se lancer, là ou un printf ou équivalent demande une récompilation, le débuggueur n'en demande pas. Il est utile.
  • Lorsqu'il y a des centaines de millier de lignes de code, la pile d'appel est énorme, que le code passe par des callback, une couche composant, etc, et qu'un segfault sort de nulle part, le débuggueur s'arrête dessus. Il est utile.

Le contexte de programmation de ces messieurs est précis et nous ne le connaissons pas. Que développent-ils ? Dans quel contexte ? Et puis il faut se replacer dans notre cadre. Ils n'ont pas besoin de débuggueurs ? Tant mieux pour eux. Moi, ils me font gagner un temps énorme,comparés à l'autre méthode (dont j'ai usé pendant longtemps). Je n'ai pas de raison de m'en priver.

Je pense que ces mecs là n'utilisent pas de débuggueurs pour deux raisons:
  • Ils ont une méthode qui leur convient et qui fonctionne (à défaut d'être potentiellement plus lente). Pourquoi changer ?
  • Ce genre de type veut savoir comment tout marche précisément. Un débuggueur, c'est compliqué, ça dépend de l'IDE, de la plateforme et ça dénature les optimisations. Donc caca.
jblecanard est déconnecté   Envoyer un message privé Réponse avec citation 121
Vieux 21/01/2011, 19h23   #18
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 599
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 599
Points : 6 116
Points : 6 116
Envoyer un message via Skype™ à rawsrc
Bonsoir,

Fabllot :
Citation:
Je travail aujourd'hui sur des plateformes type Bada (avec eclipse) où le débuggueur est lamentable, et fait régulièrement du PHP (là c'est pire)... Et je peux vous dire que je regrette énormément un débuggeur digne de ce nom !
Pour le PHP je peux t'assurer avoir essayé un paquet d'IDE avec ou sans debug, je me suis fixé sur PHPEd de Nusphere à cause d'ailleurs du debugger intégré. C'est le panard une fois bien configuré.
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 12
Vieux 21/01/2011, 20h39   #19
Terry-Slipknot
Membre du Club
 
Inscription : mai 2010
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 29
Points : 44
Points : 44
Personnellement, je debug mes programmes, selon les cas avec gdb ou avec des print.
J'utilise plus les print que gdb car on arrive plus rapidement a voir l'endroit qui pose problème.
Terry-Slipknot est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/01/2011, 21h00   #20
Kelevra
Candidat au titre de Membre du Club
 
Homme Thomas Bardet
Développeur COBOL
Inscription : juillet 2010
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Thomas Bardet
Localisation : France

Informations professionnelles :
Activité : Développeur COBOL
Secteur : Finance

Informations forums :
Inscription : juillet 2010
Messages : 8
Points : 14
Points : 14
Quand je code en COBOL, avec IBM PCOM, il n'y a pas de débuggeur !
Il faut placer des DISPLAY, aux points clé de l'application ou du module.

Par contre quand je code en C#, le débuggeur de VS est toujours le bienvenu.

Si le débuggeur est là pourquoi ne pas l'utiliser ?

Quand il n'y en pas, on se débrouille autrement !

Kelevra est déconnecté   Envoyer un message privé Réponse avec citation 41
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h12.


 
 
 
 
Partenaires

Hébergement Web