J'evite de lire et de participer aux sujets marques "Debat", en general. Le rapport signal/bruit est trop bas...
Donald Knuth avait ecrit en 1974 un papier pour temperer les reactions au papier de Dijkstra (i.e. "pas de goto dans un programme, jamais"). Il listait les constructions ou goto peut etre remplace par autre chose afin d'ameliorer la lisibilite (et/ou l'efficacite) du code, et les constructions ou au contraire goto ameliore cette lisibilite.Moi ca me choque, je ne trouve pas ca legitime, et de plus quand on a mentionne que c'etait pour les "experimentes", on a donne des cas bien precis (et RARES)..
Dans ce papier il ecrit:
Je suis tout a fait d'accord avec cela. Le probleme de goto, c'est qu'il complique la comprehension du flux de logique d'un programme. Mais un goto error; est completement limpide. Il signifie: "je ne peux pas continuer, je saute a l'endroit ou je vais faire le menage et retourner un code d'erreur".Sometimes it is necessary to exit from several levels of control, cutting across code that may even have been written by other programmers; and the most graceful way to do this is a direct approach with a go to or its equivalent. Then the intermediate levels of the program can be written under the assumption that nothing will go wrong.
Partager