• [^] # Re: GO TO goto hell !

    Posté par . En réponse à la dépêche Un petit tour et puis s'en va. Évalué à 10.

    Personnellement, j'ai commencé à programmer en BASIC et j'ai pris beaucoup de plaisir à le faire. Il m'a été donné d'écrire des programmes relativement conséquents (serveurs Minitel spécialisés). Et je faisait également un usage massif du goto, du on x goto et consors.

    Aujourd'hui je programme principalement en langage C, et je ne sens pas mutilé mentalement.

    Même si l'on peut largement débattre sur le sujet, je trouve que ce dernier est une guerre de chapelle aussi trollesque que le match Unix/Windows.

    Il ne m'est jamais venu à l'idée d'utiliser le goto en langage C, par contre, en assembleur, on trouve le JMP et ses dérivés à tout les coins de rues, car c'est précisément eux qui implémentent les itérations dans les différents blocs définis dans les langages de plus haut niveau. Le goto n'a donc pas disparu de ces langages, il est simplement masqué.

    La programmation structurée, comme la programmation orientée objet, n'est qu'un type parmi d'autres de représentation d'un problème en particulier.

    Le goto, lui, a une raison d'être dans certaines couches, et pas dans d'autre.

    Ce qui me gêne, c'est qu'aujourd'hui la plupart des professeurs inculquent à leurs élèves le fait qu'utiliser goto est un sacrilège, mais plus beaucoup de monde sait vraiment pourquoi. De fait, peu de gens sont encore capables de reconnaître les cas où il est indiqué.

    Quant à la lisibilité, c'est aussi une affaire de goût. Je n'ai jamais eu de problème pour naviguer dans mes sources Basic. Lorsque l'on passe du BASIC avec des lignes ultra-denses au langage C avec quasiment une instruction par ligne et un espace occupé majoritairement par le vide des indentations et par les accolades, c'est aussi pertubant que de faire le chemin inverse. Pourtant, le langage C est à mille lieues d'être un mauvais langage !

    Bref, je trouve ses arguments pas forcément sans fondement, mais peut-être un brin "unilatéral" (ce que laissait supposer, de toute façon, le corps de la news).

    Amitiés à tous.