Con ya unos años de experiencia a nuestros lomos, uno puede pensar que ya nada le va a sorprender. Vamos que, como decía Luis Aragonés, pensamos que tenemos el culo pelao y tal. Sin embargo, el desarrollo, la programación, tiene una capacidad casi infinita para la sorpresa. Esto lo cuento porque andaba este humilde escriba picando código PHP (que es lo que hago cuando no escribo en este ilustre blog) cuando recibí un shock: guarde los cambios, los subi, actualicé el navegador y, et voilá, ahí estaba el dinosaurio:
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
El refresco de cola de marca random que estaba bebiendo en ese momento salió disparado por mis orificios nasales hacia la pantalla y en un ataque de matiaspratsismo grité 'Pero, ¿esto qué es? ¿ESTO QUÉ ES?' (explicación a este exabrupto aquí). Si esto me hubiera ocurrido cuando allá por el año 2000 empezaba a dar mis primeros pasos en el mundo del desarrollo, me habría echado a llorar desconsoladamente y habría cambiado el teclado por la vara... pero estamos en 2013 y ya no es cuestión de cambiar de profesión a estas alturas, así que me puse a indagar cual Colombo.
Lo primero, como sonaba a hechizo harrypotteresco o a mensaje subliminal para unirse a los Marines americanos, fue irme al traductor de Google, a ver si esa funcionalidad de "detectar idioma" funciona de verdad o es una leyenda urbana. Al principio no tuve fortuna pero luego me di cuenta de que era mejor buscar Paamayim Nekdotayim y entonces... tampoco. Estaba a punto de tirar la toalla y convencerme a mi mismo de que se trataban de simples caracteres aleatorios paridos por un desarrollador juguetón cuando una búsqueda en profundidad trajo hasta mi la verdad absoluta: Paamayim Nekdotayim es dobles dos puntos en hebreo. ¿Un desarrollador isrealí o judío? ¿Una broma privada que terminó viendo la luz? Quizás nunca lo sepamos.
Pero no nos quedemos en la superficie del significado y vayamos a la esencia: es un error que aparece cuando PHP espera un operador de resolución de alcance (::), utilizado sobre todo en la herencia en POO, y se encuentra otra cosa en su lugar... o por lo menos eso dice la bibliografía que es la razón principal para que aparezca este error. Sin embargo en mi código era imposible que esta fuera la razón ya que en la línea que me indicaba el error no estaba intentando resolver un alcance ni de lejos. Así que vuelta a navegar por el proceloso mar de Internet y a estrujarme las meninges hasta que di con el catalizador de tan bizarra situación... <strong>¡una variable inicializada sin $!
O lo que viene siendo la típica chorrada que te hace perder un buen rato y que tu productividad decaiga pero que a mi me ha servido para este post y para preguntaros lo siguiente: ¿Cuál es el mensaje de error más raro o delirante que os habéis encontrado en un lenguaje de programación?
Imagen | Fotograma de 'Annie Hall' En Genbeta Dev | Lenguajes de programación cuya sintaxis no es en inglés