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

C Discussion :

Que pensez vous du goto [Débat]


Sujet :

C

  1. #201
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    Oui c'est certain. Le langage d'assemblage est forcément la base de la programmation, mais ce qui est bien lorsque l'on construit des langages, ou que l'on apprend à s' en servir, c'est que justement on ne se soucie pas de ce qui se passe dans la machine. Le langage doit être utilisé de la manière qui a été prévue lorsqu'il a été conçu, sinon son intérêt s' en trouve grandement amoindri.

    Utiliser des sauts conditionnels en langage d'assemblage est obligatoire. Le C ne l'impose pas.

    Je suis très jeune me direz vous, mais j'ai un peu l'impression que le jump ou le goto, c'est pour les croûtes qui refusent de passer au langage de niveau un peu supérieur à l'assembleur [EDIT : ça n'engage que moi, quand je dis être très jeune, c'est parce que je crois que je ne suis peut être pas assez qualifié pour parler de manière aussi absolue et formelle )/]

    En même temps pour qui se refuse à la programmation procédurale ou fonctionnelle, il n'y a pas trop le choix. C'est surtout ça que je veux dire quand je dis
    Quel est l'intérêt d'un source de plus de 50 lignes qui contiendrait des Goto ?
    , car le C permet la compilation séparée et la factorisation des procédures appelées, ce qui est, il est vrai, une traduction directe du fait d'utiliser des Goto ou des jump XXX.

    Finalement, je pense que mettre des goto dans un code ne présente pas plus de difficultés pour le lecteur que le fait d'utiliser des noms de fonction non explicites, du genre , mais bon, ça reste peu lisible, c'est vrai. Tout comme relire un programme de 500 lignes de langage d'assemblage

  2. #202
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Mes dernières interventions sont peut etre de nature à le cacher, mais, en regle générale, je suis contre l'utilisation du goto...

    Ceci dit, je suis aussi contre la violence, mais il n'empeche que, si je suis aculé et que je n'ai pas d'autre choix, je frapperai aussi dur que possible mon agresseur

    Ce que je veux dire, c'est que *parfois* dans des cas bien précis, que tu ne rencontrera peut etre - avec un peu de chance - jamais dans ta vie de programmeur tu pourras te trouver dans une situation dans laquelle aucune autre solution ne représente une alternative valable...

    En toute chose l'ecces nuit, a-t-on l'habitude d'entendre... Hé bien, une trop grande rigidité par rapport au goto peut aussi nuire dans certaines situations.

    Je reconnais volontiers le fait qu'un programme parsemé de goto est surement l'indice de l'utilisation d'une mauvaise technique d'algorithmie et me bas généralement farouchement sur ce point.

    Et je reconnais que certaines "vieilles carcasses" sont souvent trop imbues de leur personne pour accepter de remettre leur méthode de conception en cause, quitte à faire un code illisible...

    Mais, une fois que l'on a écarté tous ces cas, et ils sont nombreux, dans lesquels l'usage du goto est néfaste, il reste quelques rares cas dans lesquels cela représente la "moins mauvaise solution", et ce, sans meme envisager le fait que tout sera réduit à une succession d'équivalent au goto une fois le langage machine créé...

    Un exemple fameux est, tout simplement, la gestion des erreurs lors de la tentative d'allocation dynamique de mémoire pour des tableaux à deux dimentions...

    il faut reconnaitre que, si l'on veut aller jusqu'au bout de la sécurité, on passe en erreur si
    • le nombre de lignes est inférieur ou égal à 0
    • le nombre de colones est inférieur ou égal à 0
    • l'allocation des lignes échoue
    • l'allocation des colones échoue
    Si, en plus, il s'agit de lire les informations dans un flux quelconque, il faut ajouter les problèmes potentiels d'ouverture et de gestion de flux...

    Et que chacun de ces cas nécessite un traitement particulier, et que la mise en oeuvre de ces traitements particuliers sans passer par des gotos est clairement de nature à rendre la conception beaucoup moins aisée...

    Hé bien, je comprendrai volontiers que quelqu'un préfere mettre quatre ou cinq goto, pointant vers trois ou quatre étiquettes plutot que de se casser la tete, en définitive, uniquement pour éviter l'utilisation du goto...

    Comme je l'ai signalé plus haut, il y a la regle générale ( a priori, on évite l'utilisation du goto), puis il y a les exeptions qui font que la regle générale n'est pas applicable...

    Maintenant, mon optique vient surement de mon passé professionnel - qui n'avait rien à voir avec l'informatique - qui m'a fait prendre conscience qu'on ne peut jamais etre sur de rien et qu'on se trouve régulièrement dans une situation "non prévue au manuel"...

    Dans ce cas, on est bien obligé de faire avec ce qu'on a sous la main ... et si c'est une solution peu appréciée, ben c'est toujours mieux que de faire sans, non
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #203
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par koala01
    Ce dont j'essaye de te faire prendre conscience, c'est que meme dans le cadre d'une simple structure de test "vrai/faux" du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(variable==value)
    {
        /* do something */
    }
    else
    {
        /* do something else */
    }
    cela fonctionnera sensiblement de la meme manière que le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(variable!= value)
        goto ELSE
    /* do something if false */
    goto ELSEEND
    ELSE:
        /* do something if true */
    ELSEEND:
    /* continuing */
    Pour avoir codé des centaines de if-else en assembleur (on me surnommais "le compilateur humain", je trouvais bizarre qu'il y ait 2 goto pour un if-else. En fait, il y a un saut conditionnel et un goto :

    En assembleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ; IF data = 0
    MOV  AX, data
    JNE xxx_else
    ; do something if true
     
    JMP xxx_endif
    ; ELSE
    xxx_else:
    ; do something if false
     
    ; ENDIF
    xxx_endif:
    Pas de Wi-Fi à la maison : CPL

  4. #204
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Personelement je n'utilise pas les gotos, mais c'et tout simplement parce que ca ne me vien pas a l'idée, sinon je n'y verrais pas d'inconvénient
    Je ne vois pas pourquoi tout le monde dit :
    "nyanyanya les gotos c'est nul " et ce genre de chose, je n'en voie pas l'utilitée c'est vrai mais si ca doit me servir un jour je n'hésiterais pas a m'en servir
    Mais aprés c'est mon avis ....
    Omnes Vulnerant Ultima Necat
    Bye

  5. #205
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Points : 171
    Points
    171
    Par défaut goto et structuré
    Bonjour,

    J'ai appris il y a longtemps une méthode de programmation structurée qui utilisait les goto, LCP (logique de construction de programme) de Warnier. Les programmes étaient en Cobol, et je crois qu'à l'époque on ne pouvait pas faire autrement.

    Les programmes étaient trés lisibles et la méthode faisait que deux programmeurs devaient arriver au même résultat. (La démarche s'appliquait essentiellement à des programmes faisant des listes il est vrai).

    Depuis j'utilise d'autres langages et je n'utilise plus les goto mais j'ai conservé la structuration des programmes héritée de cette méthode.

    Pour répondre aux ayatollas de la programmation, un programme avec des goto peut être mieux structuré qu'un programme avec des boucles qui utilise des sorties brutales.

    Cdt.

  6. #206
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Sans être ayatollah, il existe des références :

    http://fr.wikipedia.org/wiki/Goto

    En 1966, le théorème de Böhm et Jacopini a démontré que tout programme comportant des goto pouvait être transformé en programme n'utilisant que des branchements conditionnels (if, then, else) ou des boucles (while condition do instructions), éventuellement en dupliquant des portions de codes et/ou en utilisant des variables intermédiaires. Plus tard les deux auteurs ont montré que les branchements conditionnels pouvaient eux mêmes être remplacés par des boucles.
    http://julipedia.blogspot.com/2005/0...otos-in-c.html

    It is common knowledge that usages of the goto statement are potentially dangerous in any structured programming language, as their abuse can quickly make your code unreadable. This is why this construction is seldom explained to people learning how to program and their use is strongly discouraged.
    Par l'un des auteurs du C (Kernigan) :

    http://www.lysator.liu.se/c/bwk-tutor.html

    C is a computer language available on the GCOS and UNIX operating systems at Murray Hill and (in preliminary form) on OS/360 at Holmdel. C lets you write your programs clearly and simply it has decent control flow facilities so your code can be read straight down the page, without labels or GOTO's; it lets you write code that is compact without being too cryptic; it encourages modularity and good program organization; and it provides good data-structuring facilities.
    http://www.lysator.liu.se/c/bwk-tutor.html#goto

    Et pour voir ce que d'autres développeurs mondiaux en pensent, voilà un lien incluant un certain nombre d'autres posts sur le sujet, qui est clair :

    http://www.thescripts.com/forum/thread448817.html

    Et pour conclure, ayant codé plus de 5 millions de lignes de code en C, je n'ai jamais utilisé de goto...

    Mais je n'ai jamais fait d'embarqué.
    "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

  7. #207
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    Citation Envoyé par deadoralive

    Pour répondre aux ayatollas de la programmation, un programme avec des goto peut être mieux structuré qu'un programme avec des boucles qui utilise des sorties brutales.

    Cdt.
    bah oui mettre des gros dans n'importe quelle structure itérative, c'est vrai que c'est assez pourri comme structuration de code

  8. #208
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    Pour ma part j'ai toujours évité les GOTO dans mes codes pour une raison simple.

    En terme de maintenance de codes cela peut être dangereux ... un do.while, if.else, etc se remarque par les {} qui y sont rattachés, un goto peut effectuer des sauts un peu n'importe où dans le programme.

    Dans tous les cas chaque programmeur fait un peu ce qu'il veux de son code tant qu'il reste de son coté ... si on désire partager c'est autre chose il faut que ce soit clair, et sans risque(s).

    Pas le temps de développer plus ...

  9. #209
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Citation Envoyé par deadoralive
    Bonjour,

    J'ai appris il y a longtemps une méthode de programmation structurée qui utilisait les goto, LCP (logique de construction de programme) de Warnier. Les programmes étaient en Cobol, et je crois qu'à l'époque on ne pouvait pas faire autrement.
    Meme en cobol, il y a parfaitement moyen d'arriver à éviter l'utilisation des goto:

    Tu dispose des structures de test
    Code COBOL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if condition
     
    else
     
    end-if
    des structures de test à choix multiple
    Code COBOL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    evaluate variable
    {
        when valeur1
            instruction5
        when valeur2
            instruction6
        when valeur3
            instruction7
        when valeur4
            instruction8
    }
    des boucle "tant que"
    Code COBOL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    perform until test
        instruction
    end-perform
    des boucle "jusque"
    Code COBOL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    perform with test after until test
         instruction
    end-perform
    et des boucles incrémentales
    Code COBOL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Perform varying i from Var-I by 1 Until var-I <10
        Instruction 10
    End-perform
    Ces possibilités sont déjà offerte dans COBOL 85

    Non, définitivement, quel que soit le langage de programmation structurée envisagé, il y a parfaitement moyen d'éviter le goto...

    Mais comme je l'ai indiqué, il reste quelque rares fois, tous langages confondus, ou le goto peut s'avérer etre la solution la moins mauvaise, à défaut d'être la meilleure
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  10. #210
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Points : 171
    Points
    171
    Par défaut goto et structuré
    Bonsoir,

    Je n'ai jamais dit que ce n'était pas possible, c'était en cobol 74, je ne me souviens plus c'est tout.

    Le sens de ma réponse était seulement qu'un programme avec des goto pouvait être plus structuré qu'un programme sans. L'inverse est vrai aussi bien évidemment.

    Le fait de ne pas utiliser de goto n'est pas un gage en soi de bonne programmation.

    Cdt

  11. #211
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Citation Envoyé par deadoralive
    (snip-
    Le fait de ne pas utiliser de goto n'est pas un gage en soi de bonne programmation.

    Cdt
    Non, mais l'utilisation du goto à tout bout de champs est souvent signe d'une mauvaise manière de concevoir ce qui doit etre fait
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  12. #212
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Un autre article ici sur le sujet

  13. #213
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par souviron34
    Et pour conclure, ayant codé plus de 5 millions de lignes de code en C, je n'ai jamais utilisé de goto...

    Mais je n'ai jamais fait d'embarqué.
    Bah, j'ai programmé à peu près autant de lignes en embarqué, mais je n'ai quasiment jamais utilisé de goto. Je pratique la programmation structurée, ce qui est logique quand on utilise un L3G comme le C.

    Ca l'était un peu moins avec un L2G (assembleur 8051), mais je le faisais quand même : les règles d'utilisation des 'JMP' étaient strictement celles de l'implémentation de structures de code L3G.
    Pas de Wi-Fi à la maison : CPL

  14. #214
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Darwiz
    un goto peut effectuer des sauts un peu n'importe où dans le programme.
    Euh, non. Dans la fonction courante uniquement... On est pas en BASIC quand même...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void f (void)
    {
     label:;
     
    }
     
    int main (void)
    {
       goto label;
     
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `f':
    main.c:3: warning: label `label' defined but not used
    main.c: In function `main':
    main.c:9: error: label `label' used but not defined
    Process terminated with status 1 (0 minutes, 0 seconds)
    1 errors, 1 warnings
    Pour faire les sauts dont tu parles, il y a setjmp() / longjmp(), mais c'est déstiné à faire des commutations de contextes (multitâche coopératif, par exemple)...
    Pas de Wi-Fi à la maison : CPL

  15. #215
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Bah, j'ai programmé à peu près autant de lignes en embarqué, mais je n'ai quasiment jamais utilisé de goto. Je pratique la programmation structurée, ce qui est logique quand on utilise un L3G comme le C.

    Ca l'était un peu moins avec un L2G (assembleur 8051), mais je le faisais quand même : les règles d'utilisation des 'JMP' étaient strictement celles de l'implémentation de structures de code L3G.
    lol ok ma remarque était juste que comme je n'y connais rien, il semblait (d"après ce que j'ai pu lire ici sur les posts) que justement avec les jmp les goto étaient un truc utilisé là-dedans. Mais bon... ça va pas plus loin.. C'était pour éventuellement (??) apaiser les inconditionnels .

    Et comme nous sommes d'accord
    "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

  16. #216
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Voici un article du journal Dr Dobbs qui traite de l'utilisation du goto dans les systemes embarques pour traiter les erreurs :
    c'est ici (à lire aussi, cet article)

  17. #217
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Pour ceux que ca interesse, voici quelques libs dont le code source contient quelques cas concrets d'utilisation de goto :
    - glibc
    - freetype
    - gtk+
    - directfb

  18. #218
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    GTK+ utilise des gotos ?!!?!
    Eh bien si une telle librairie utilise des gotos cela ne doit pas être si néfaste qu'on le pense(bien que je ne le epnse pas personellement).
    Omnes Vulnerant Ultima Necat
    Bye

  19. #219
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Shugo78
    GTK+ utilise des gotos ?!!?!
    Eh bien si une telle librairie utilise des gotos cela ne doit pas être si néfaste qu'on le pense(bien que je ne le epnse pas personellement).
    C'est comme tout, ce qui est néfaste, c'est la mauvaise utilisation.

    De toutes façons, en la matière, seule l'expérience est déterminante. Si tu veux expérimenter le codage avec des goto, libre à toi. Si tu t'y retrouves et que les autres s'y retrouvent aussi, pas de problèmes.

    Mon expérience personnelle m'a montré :
    1. Que les goto rendaient facilement le code illisible et inmaintenable.
    2. Qu'il existe toujours une alternative à l'usage des goto

    C'est tout.

    Après, il semblerait que cette expérience soit partagée par la plupart des programmeurs professionnels, mais le choix t'appartient...
    Pas de Wi-Fi à la maison : CPL

  20. #220
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    ... Je suis sceptique. Le GOTO est vraiment une instruction très proche du langage d'assemblage, c'est bien pour que le C ne s'en serve pas.

    Encore une fois, j'ai du mal à savoir quand est ce que la programmation modulaire et procédurale, les branchements conditionnels et les structures itératives ne permettent pas de s'affranchir du GOTO, qui est vraiment une instruction bas niveau.

    J'aimerai dire que les GOTO X ne valent que si le LIBL X est visible à l'écran sans devoir faire du parsing, sinon ce n'est pas du jeu en tout cas c'est comme ça que je le conçois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que pensez-vous des générateurs de doc PHP ?
    Par Nonothehobbit dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 64
    Dernier message: 10/07/2007, 10h17
  2. Que pensez vous de filemaker
    Par thpopeye dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 14/06/2007, 15h20
  3. Que pensez vous du nouveau kernel 2.6 ?
    Par GLDavid dans le forum Administration système
    Réponses: 58
    Dernier message: 02/08/2004, 15h45
  4. [Débat] Que pensez-vous des langages à typage dynamique?
    Par Eusebius dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 16/06/2004, 12h12
  5. Que pensez vous du mariage ASP Flash?
    Par tyma dans le forum Flash
    Réponses: 4
    Dernier message: 09/07/2003, 15h00

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