@ agnasg

Yo recomiendo paciencia

09-01-2013 7:56 AM

Yo no leo a Linus Torvals (el creador de linux) con frecuencia. Me parece un nazi de la programación (hablando de nazis). Recuerdo (pero no encontré la discusión) la respuesta que le dio a alguien que le preguntaba por qué no había programado git usando C++. Su respuesta fue algo como “… tú estás lleno de bullshit” ( la palabra en inglés para denominar el discurso cuya sustancia se puede reducir a gramíneas, o simple paja). Quizás porque yo también a veces tengo esas reacciones. Llegó a mis manos este artículo sobre el uso de apuntadores. Linus dice que detesta cuando ve que alguien programa la eliminación de un nodo de una lista enlazada simple (o single linked list) utilizando una variable para guardar el apuntador al nodo anterior. Algo así como esto:

[cce width=”620″]
if (prev)
prev->next = entry->next;
else
list_head = entry->next;
[/cce]
Honestamente yo he hecho eso toda la vida. Pero no por la razón que Linus dice (“no saben usar apuntadores”), sino porque de esa forma el código queda mucho más claro y fácil de entender para alguien que tenga que revisarlo, incluyendo a mi mismo mucho tiempo después.Sin embargo, esta vez, el punto de Linus es válido. Además resulta más elegante así. Pero este “error” está mucho más generalizado de lo que Linus supone. Estuve buscando en mi repositorio de código fuente (creo que tengo 3 gb de código fuente de todo tipo (juegos, herramientas, aplicaciones en general), y no encontré un solo sitio donde se utilice el doble direccionamiento. Todos utilizan la variable para guardar el anterior. Interesante… Linus debe estar irritado todo el tiempo… Artículo.