Suite à un article lu ce matin (Applying the Linus Torvalds “Good Taste” Coding Requirement), je me suis demandé si les “nouveaux” langages de programmation (ex: Ruby, Python, etc …) ne nous transforme pas en codeur de mauvais goût.
je reprend le code que Linux Torvalds considère comme “not good taste”:
remove_list_entry(entry)
{
prev = NULL;
walk = head;
//Walk the list
while (walk != entry){
prev = walk;
walk = walkt->next;
}
// Remove the entry by updating the head
// or the previous entry
if (!prev)
head = entry->next;
else
prev->next = entry->next;
}
La critique de Linux porte sur le dernier if qui est laid mais nécessaire.
et le code “good taste”
remove_list_entry(entry)
{
// The "indeirect" pointer points to the *address*
// of the thing we'll update
indirect = &head;
// Walkt the list, looking fot the thing that points
// to the entry we want to remove
while ((*indirect) != entry)
indirect = &(*indirect)->next;
// ... and just remove it
*indirect = entry-next;
}
Même si le premier code peut être amélioré, ce qui m’a le plus “choqué” en voyant le “Good Taste Code” c’est ma réaction:
“Ah oui, les pointers ça existent”
et je me demande combien de fois je dois faire du code de mauvais goût car les “nouveaux” langages m’habitue à style de programmation qui est le leur.
Ps: autre exemple les return, je ne les utilisais que rarement, maintenant j’ai fait plein car je n’ai pas toujours les pointeurs. Et quand j’ai les pointeurs, je fais un return par habitude.