@ agnasg

Un bug y Murphy juntos

06-12-2010 6:33 AM

Son una combinación letal. Este segmento de programa tiene una falla (un bug) que me hizo perder 16 horas de procesamiento (todo el fin de semana). La ley de Murphy en su esplendor:

$buscar = "texto";
$data = "este texto contiene la palabra que estoy buscando";
if (strpos($data, "contiene") !== false &&
strpos($data, "texto" !== false)) {
echo "Lo encontre";
} else {
echo "No lo encuentro";
}

Este segmento de programa PHP produce la siguiente salida:

No lo encuentro

Estuve 10 minutos tratando de descubrir por qué. La razón de que este es un bug invisible tiene que ver con el sistema de reconocimiento de patrones de nuestro cerebro: si algo incorrecto está en un sitio correcto, entonces nuestro cerebro concluye que debe estar bien. Eso, y además que PHP es un lenguaje interpretado y no nos advierte sobre las cosas sin sentido que estamos haciendo.