IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

17 créateurs de langages de programmation disent ne pas utiliser de débogueurs interactifs


Sujet :

Débats sur le développement - Le Best Of

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 138
    Points : 120
    Points
    120
    Par défaut
    Il me semble que s'ils ne développent pas avec un débogueur, c'est :
    -soit parce qu'ils font de très petit programme,
    -soit parce qu'ils ne programme plus,
    -soit parce que leur programme n'a que très peu de bug et plus de nouveauté (donc ils ne programment plus vraiement),
    -soit parce qu'ils ne savent pas se servir d'un débogueur,
    -soit parce qu'ils sont fermés dans leur esprit, et ne veulent pas progresser en utilisant un outils complexe. Ils ont un blocage purement idéologique.

    J'ai bien peur qu'ils sont dans le dernier cas.

    A titre personne, j'aime bien utiliser un débogueur, et cela m'aide beaucoup. Je trouve le débogueur d'éclipse très bon, y compris pour déboguer des servlets. Des fois, j'utilise traces (log4j ou printf) (par exemple pour trouver la partie qui est trop lente), d'autre fois un débogueur (un point d'arrêt conditionnel permet par exemple de suivre le déroulement du programme a partir de la 10.000 itération d'une boucle), d'autre fois, je fais de la relecture de code (très utile pour vérifier si tous les chemins sont correctes et qu'il n'y a pas un bug très subtile dans un cas très particulier). Et il y a d'autre outils de débogage (recherche de memory leak, etc...)

    En informatique, il faut être ouvert à tout. Si une technologie est meilleur dans certains cas qu'une autre, il faut s'il mettre.

    Mais je reconnais que sous linux, gdb seul, est très évolué, mais aussi très austère.

  2. #22
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par tulipebleu Voir le message
    -soit parce qu'ils sont fermés dans leur esprit, et ne veulent pas progresser en utilisant un outils complexe. Ils ont un blocage purement idéologique.

    J'ai bien peur qu'ils sont dans le dernier cas.
    ...
    En informatique, il faut être ouvert à tout. Si une technologie est meilleur dans certains cas qu'une autre, il faut s'il mettre.

    cela montre surtout que tu n'as pas la moindre idée du contenu d'un article de Myers publié en 79.

    avant de parler de blocage idéologique de la part juste de "sommités" de l'informatique, essaies plutôt de demander ce qui pourrait les conforter dans l'absence de nécessité réelle d'avoir recours à ce genre d'outils
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #23
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 928
    Points
    928
    Par défaut
    Citation Envoyé par tulipebleu Voir le message
    Il me semble que s'ils ne développent pas avec un débogueur, c'est :
    ...
    -soit parce qu'ils sont fermés dans leur esprit, et ne veulent pas progresser en utilisant un outils complexe. Ils ont un blocage purement idéologique.
    Effectivement, ne trouver comme seul explication à la question "pourquoi ne fait-il pas comme moi" que "c'est parce qu'il est fermé dans son esprit", c'est une bonne preuve d'ouverture du tiens ! Surtout face à des gens qui font évoluer l'informatique en créant de petits langages, comme C++ par exemple...

  4. #24
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    Je ne sais pas en quoi consiste la vie de tous les jours de ces grands esprits, mais ça doit sans doute être assez différent du quotidien des développeurs plus communs (doués et moins doués). Je ne pense pas qu'ils passent énormément de temps à lire le code de "qualité industrielle" écrit par d'autres ou bien soit forcés d'utiliser le nième framework en carton développé en interne (non documenté, encore jamais utilisé sur d'autres projets, etc.). Après tout, pour moi, un débuggeur sert avant tout à comprendre le fonctionnement d'un code incompréhensible et / ou qu'on ne connaît pas ; il ne sert pas à en écrire du correct. Pour ça, des types comme Donald Knuth préfèrent un crayon, du papier et un coin tranquille pour bosser au calme. Il a même arrêté d'utiliser l'email pour éviter de perdre son temps avec des problématiques trop superficielles.

  5. #25
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Bonjour à tous!
    Il me semble qu'on devrait distinguer deux cas:
    1. Le programme qu'on est en train de développer se plante; en général, on a plus ou moins une idée d'où se trouve le problème, et il suffit de semer quelques "Write" dans la région concernée, et on localise assez vite l'erreur.
    2. On doit tester l'ensemble d'un programme; le plus efficace consiste à examiner les résultats qu'il nous donne, par exemple en résolvant le problème inverse. Si ces résultats sont corrects, tant mieux. Sinon, on revient au cas 1.

    Donc, pour conclure, un débogueur ne me semble pas être une solution efficace.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  6. #26
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    Je code en C/C++ et j'utilise rarement de debugger. Si mon programme ne fait pas ce que je veux, je regarde ca a la main ou au printf. Si mon programme plante, je fait juste un coup de valgrind pour localiser le plantage et ensuite printf. Je pense qu'on a pas besoin de debbuger si on connait parfaitement son programme ce qui a mon avis est le cas de ces developpeurs.

    (desole pour les accents : clavier qwerty).
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  7. #27
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    cela montre surtout que tu n'as pas la moindre idée du contenu d'un article de Myers publié en 79.
    Tu m'excuseras, mais moi j'avais un an en 1979
    Et l'informatique est un champ tellement vaste, qu'on est pas tous supposés avoir lus les écrits de Myers, il y a déjà bien assez à lire pour devenir un programmeur moyen.

    Toujours est il que refuser d'utiliser un debugger (en admettant qu'il soit de qualité correcte) c'est se priver de l'outil adéquat.

    Mon ex-femme a bien réussit à monter un meuble avec une Mag-Light en guise de marteau, toutefois elle serait la première à reconnaitre que ça aurait été plus pratique avec un marteau (je vous rassure, c'est pas parce qu'elle a massacré ma Mag-Light qu'on a divorcé ).
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  8. #28
    Membre averti Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Points : 390
    Points
    390
    Par défaut
    Faut que je regarde ce que c'est un debugger. En informatique on fait toujours des découvertes.

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 406
    Points : 380
    Points
    380
    Par défaut
    Le débogage sous visual studio est vraiment pas mal: le pas à pas permet tout bêtement d'éviter de mettre l'équivalent de je ne sais combien de prints partout (c'est ce que je faisais avec le C).

  10. #30
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par zakaria84 Voir le message
    Le débogage sous visual studio est vraiment pas mal: le pas à pas permet tout bêtement d'éviter de mettre l'équivalent de je ne sais combien de prints partout (c'est ce que je faisais avec le C).
    Pour moi, les énormes avantages du debugger de VS sont :
    - la fenêtre Espion (Watch) : permet d'examiner chaque objet en détail, y compris ses membres privés
    - la possibilité de "sauter" des instructions ou de revenir en arrière arbitrairement
    - le "edit and continue" : permet de modifier le code à la volée sans avoir à recompiler. Super pratique quand on réalise qu'on a fait une erreur alors que le programme est déjà en train de tourner (malheureusement ça ne fonctionne pas dans tous les cas, par exemple ça ne marche pas dans un type ou une méthode générique, ni quand il y a des méthodes anonymes dans la méthode en cours)

    En tous cas je pourrais difficilement envisager de me passer d'un debugger... Je l'ai fait quand je codais en C sous Solaris (encore qu'il m'arrivait occasionnellement de lancer un gdb), et quand je faisais du PHP, mais c'était vraiment pénible...

  11. #31
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Etudiant en BTS IRIS (informatique réseaux pour l'industrie), je n'utilise pas le débogueur intégré de NetBeans car depuis son installation il ne fonctionne pas sur ma machine. Du coup j'ai pris l'habitude de déboguer en printf et cout.

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par maxime1452 Voir le message
    Etudiant en BTS IRIS (informatique réseaux pour l'industrie), je n'utilise pas le débogueur intégré de NetBeans car depuis son installation il ne fonctionne pas sur ma machine. Du coup j'ai pris l'habitude de déboguer en printf et cout.
    Je programme depuis des années avec le langage Java sous l'IDE NetBeans et le débogueur fournit est très utile pour localiser l'erreur dans le déroulement d'un programme, puisque dés fois même avec des Printf ca ne suffit pas a appréhender l'erreur.

  13. #33
    Membre actif Avatar de ratomms
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2009
    Messages : 163
    Points : 253
    Points
    253
    Par défaut
    Je debug mon programme avec printf.

  14. #34
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pour un code fait par eux pourquoi pas.
    Mais pour un code fait par quelqu'un d'autre, cela me surprend.

    Après c'est une habitude.
    Les avantages que je vois à la méthode printf c'est
    • obligation à bien connaitre et comprendre l'ensemble du code (et donc à bien réfléchir sur ce que tu veux vérifier).
    • possibilité de faire un débogage en release.
    • plus proche de l’exécution réelle du programme.


    Après avoir fait les deux dans le monde professionnel, je préfère largement un débogueur +ide et quelques printf quand le debuggeur ne m'aide pas. L'utilisation du debuggeur simplifie beaucoup de chose et parfois permet de chercher et comprendre un bug en tâtonnant. Mais son utilisation borne le fonctionnement de l’exécution (la zone mémoire est différente, les pointeurs n'ont pas la même valeur, certaine valeur non initialisé ne change pas entre deux exécution, ...). Ce qui fait passer à côté de certain bug.

    Pour résumer, je trouve que les deux se complète.

  15. #35
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Je garde un souvenir ému de Turbo Pascal 3.0 où, en cas de division par zero, par exemple, le curseur venait toujours se placer sous le / correspondant.
    Je n'ai rien vu depuis d'aussi efficace.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  16. #36
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    Citation Envoyé par Idelways Voir le message
    [B][SIZE="4"] Comment expliquez-vous que ces « masterminds » disent ne pas utiliser des débogueurs interactifs ?
    Parce qu'ils font du TDD ?

    Le développement dirigé par les tests unitaires réduit drastiquement le besoin d'avoir recours au debugger. Le cycle incrémental red/green/refactor et les indications données par l'outil d'exécution de tests unitaires deviennent le debugging.

    Dans un récent podcast, Kent Beck, créateur d'eXtreme Programming, parle d'un gourou de la programmation de compilateur qu'il admire beaucoup (j'ai oublié son nom) et qui mentionne un ratio de lignes de tests souvent égal à 10x le nombre de lignes de code pour les programmes complexes comme les compilateurs.

  17. #37
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    en tous cas, par rapport à la question initiale, j'ai déjà répondu moultes foi, et en général je n'utilise pas de debuggeurs..

    Un bon print suffit..

    Les rares fois où ça devient utile c'est pour localiser dans une grosse appli asynchrone ...

    Et par exemple mettre un breakpoint et faire du pas à pas quand on ne sait pas trop où ça coince...

    Sinon, c'est en général plus rapide d'inclure 2 ou 3 print...



    Et quelqu'un a fait une remarque par rapport aux codes venant de l'extérieur.. Mais c'est exactement pareil.. D'une part, avant de l'inclure, on le regarde (enfin , moi c'est ce ue je fait). Si ça plante, et si c'est dans cette partie du code, des print sont aussi rapides et faciles que des aller-retour avec la souris pour cliquer sur des "show value", "next", etc etc..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  18. #38
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par yan Voir le message
    Pour un code fait par eux pourquoi pas.
    Mais pour un code fait par quelqu'un d'autre, cela me surprend.
    Je suis d'accord et je pense que justement, vu leur poste, on évite de les faire bosser avec des développeurs "moyens", donc ils sont constamment environnés par du code dont ils sont l'auteur dans la plus grande proportion.

    Citation Envoyé par 6-MarViN Voir le message
    Si mon programme plante, je fait juste un coup de valgrind pour localiser le plantage et ensuite printf.
    Ca revient exactement au même que d'utiliser un débuggeur pour le faire ^^ A ceci près que ça doit être beaucoup plus long à exécuter... mais je suppose seulement, j'ai peu d'expérience avec valgrind.
    Find me on github

  19. #39
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Perso, je corrige 10 fois plus vite 90% des bugs que je rencontre (les miens ou ceux des autres) grâce à un coup de débogueur, ou comprend un code 10 fois plus vite. Et encore je ne fais que du pas à pas, visu de la call-stack et des variables. Certains déboguer permet de revenir en arrière, modifier le code pendant le débogage ou même appeler une fonction sur une instance.

    D’expérience, je n'ai rencontré encore personne qui débogué correctement juste au printf. A chaque fois que j'ai rencontré des personnes qui ne savaient débugger qu'avec du printf , j'ai corrigé leurs codes en lançant 2-3fois le débogueur sur leurs bout de code que je ne connaissais pas alors que cela faisait 0.5j, 1j ou + qu'ils n'y arrivaient pas... Et ce n'était pas que des débutants. Quand je rencontre une personne qui n'utilise jamais de débogueur, j'ai toujours une première impression mauvaise... J'ai toujours l'impression que cela ne sert qu'à gonfler leur égo ou compenser leur manque en développement... Pourtant, j'essaie de ne pas généraliser. Mais dans le monde des SSII, je n'ai pas encore rencontré quelqu'un qui pouvais me faire penser autrement.
    En générale leurs codes sont tellement pollués par ces printf qu'il devient illisible. Un code avec une ligne sur trois en commentaire car c'est un printf de debug, ça pique les yeux.

    Bien sure, chaqu'un ses expériences. Heureusement tout le monde n'est pas dans mon cas. Mais je trouve dommage de délaisser totalement les débogueurs car c'est pour moi l'outils le plus important d'un développeur.

    Par contre, il ne faut pas en abuser. Tous comme il ne faut pas abuser des printf.

  20. #40
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par yan Voir le message
    Quand je rencontre une personne qui n'utilise jamais de débogueur, j'ai toujours une première impression mauvaise... J'ai toujours l'impression que cela ne sert qu'à gonfler leur égo ou compenser leur manque en développement... Pourtant, j'essaie de ne pas généraliser.
    ben tu diras ça aux personnes dont il est question dans le post initial... je me demande s'ils en riront
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/12/2015, 12h48
  2. [Questions]Le langage de programmation Binaire existe t-il ?
    Par Nasky dans le forum Langages de programmation
    Réponses: 30
    Dernier message: 16/11/2012, 09h09
  3. Réponses: 0
    Dernier message: 21/01/2011, 14h11
  4. Quel langage pour programme ne nécessitant pas d'install ?
    Par burnedsoul dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 09/03/2006, 19h23
  5. Nombre de langage de programmation total
    Par Adrael dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 22/07/2003, 00h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo