17 créateurs de langages de programmation disent ne pas utiliser de débogueurs
Comment déboguez-vous ?

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


 Discussion forum

Le , par Idelways, Expert Confirmé Sénior
« 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


 Poster une réponse

Avatar de Paul TOTH Paul TOTH
Expert Confirmé Sénior
le 21/01/2011 14:26
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
Avatar de Scalap Scalap
Candidat au titre de Membre du Club
le 21/01/2011 14:33
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.
Avatar de gorgonite gorgonite
Rédacteur/Modérateur
le 21/01/2011 14:40
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
Avatar de chaplin chaplin
Membre Expert
le 21/01/2011 14:56
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é.
Avatar de el_slapper el_slapper
Expert Confirmé Sénior
le 21/01/2011 15:07
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.
Avatar de Haseo86 Haseo86
Membre actif
le 21/01/2011 15:25
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".
Avatar de MokuJin MokuJin
Candidat au titre de Membre du Club
le 21/01/2011 15:58
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.
Avatar de martopioche martopioche
Membre éclairé
le 21/01/2011 16:02
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.
Avatar de Fabllot Fabllot
Membre expérimenté
le 21/01/2011 16:03
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 !
Avatar de abriotde abriotde
Membre confirmé
le 21/01/2011 16:08
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.
Offres d'emploi IT
Ingénieurs d'études expérimentés HTML5 - CSS3
CDI
COOPTALIS - Nord Pas-de-Calais - Lille (59000)
Parue le 24/03/2014
Assistant(e) Ingénieur pour développement web
CDD
Consortium Couperin - Ile de France - Paris (75005)
Parue le 27/03/2014
Développeur IOS (H/F)
CDI
Paris Incubateurs - Ile de France - Paris
Parue le 21/03/2014

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

PlanetHoster
Ikoula