Thursday, May 29, 2008

Notacion Hungara

Desde que estoy programando, me he topado con diferentes estilos a la hora de darle nombre a los elementos de un programa.

El clasico "con una letra sobra" que se empleaba al poner nombres a las variables en basic, cuando programaba con mi C64.

La Camel Case que tanto me gusto que usaba en Java y C++.

Luego llego Vb6 y .Net. Lo primero que me choco fue el que los nombres de los metodos empezasen con mayusculas, como las clases. Pero, la verdad, eso era lo de menos.

Y fue en esos codigos legacy de "Visual Basic" cuando descubri a la grandiosa notación hungara. La idea es anteponer al nombre de la variable informacion sobre su tipo. Si es un miembro de una clase ponemos una m, un parametro de un procedimiento una a, si es un entero una i, un entero sin signo una ui... de esta forma potenciamos la expresividad de la variable por ejemplo:

private int migota; // contador de gotas que han caido en el vaso

Pero esta notación, casi perfecta, puede ser mejorada para albergar aun mas información, hacerla una notación dignos de machos. Asi es como he decidido emplear en mis proyectos la notación hungaro romana. Consiste, en caso de variables numericas, ademas de informar sobre su tipo, informar tambien sobre su rango. Y dado que los desgraciados que inventaron la semantica de los lenguajes no nos dejan emplear numeros en el comienzo de nuestros identificadores, emplearemos para ello numeros romanos.

En el ejemplo anterior, si en un vaso caben entre 0 y setecientas cuarenta y ocho mil ciento doce gotas, la variable quedaria como sigue (ojo al "hack" para solventar la ausencia de numero cero en romano):

private int zeratum_MMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMCXII_migota;

Con esta notación no solo aumentamos considerablemente la legibilidad de nuestor codigo si no además es altamente portable a otros marcos temporales como el medievo o la epoca dorada del imperio romano.

Espero que todos empeceis a emplear tan potente nomenclatura, o por lo menos la notacion hungara.

Solo para terminar:

Me cago en la notacion hungara y la madre que la pario.

Saturday, March 8, 2008

Homenajes al Primer Dungeon Master

Tras la lamentada muerte de Gary Gygax, han sido muchos los homenajes que han ido apareciendo en la red. Os dejo con algunos de ellos, especialmente emotivo el que le han hecho en "The Order of the Stick".

http://www.giantitp.com/comics/oots0536.html

http://xkcd.com/393/
http://betote.wordpress.com/2008/03/05/gary-gygax-dep/
http://kano.amrys.net/?p=136

Por mi parte ya tengo convocado a mi grupo de siempre para una partida de D&D basico, el de borras, con el que todo comenzo para nosotros. Como le gustaba al viejo DM: 3d6 y en orden!

Wednesday, March 5, 2008

Gary Gygax, descansa en paz

Gary Gygax, cocreador de Dungeons & Dragon, y uno de los padres de los juegos de Rol.

Se merece esta esquela en el blog ya que no puedo negar que ha sido una de las personas que mas han influido en mi adolescencia, y por tanto en la persona que ahora soy.

Mientras haya gente que nos reunamos, para matar dragones y tirar dados, seguiras con nosotros.

Que tu alma, este donde este, siga haciendo ruido con huesos de melocoton tras la pantalla.