La notación húngara

Yo Quiero Programar #YQP

La nomenclatura para programadores que fue creada por Microsoft, aunque hoy en día la compañía la rechaza, continúa siendo utilizada de manera incorrecta en la industria. A pesar de la evolución de las mejores prácticas y las recomendaciones actuales, algunos desarrolladores persisten en el uso inadecuado de esta nomenclatura, a menudo debido a la familiaridad arraigada o a la resistencia al cambio.

Seleccionar un nombre para una variable durante el proceso de programación puede resultar sencillo, pero optar por uno realmente efectivo puede ser un desafío. El nombre no solo debe ser descriptivo, es decir, capaz de comunicar claramente la función que cumple la variable, sino también comprensible para otros desarrolladores que podrían revisar el código en el futuro.

Por eso, con el objetivo de simplificar la tarea de nombrar variables, los desarrolladores suelen adoptar alguna convención, un conjunto más o menos establecido de criterios para determinar cómo organizar y estructurar los “nombres y apellidos” de una variable, incluso decidiendo cuándo utilizar mayúsculas y minúsculas. Entre las numerosas convenciones disponibles, se destaca una conocida como ‘la notación húngara’.

¿Qué entendemos por notación húngara?

Tomemos como ejemplo las variantes ‘codigoProducto’, ‘CodigoProducto’, ‘codigo_producto’, ‘codigo.producto’ y ‘nCodigoProducto’; de entre estas, sería la última la que seguiría la mencionada notación húngara. En este caso, se le agrega un prefijo en minúsculas al nombre en sí, indicando de manera específica el tipo de dato representado, siendo ‘n’ la representación de número.

En principio (más adelante profundizaremos en esto), la responsabilidad de su creación recae en Charles Simonyi, el creador de Bravo (el primer procesador de textos WYSIWYG), de Multiplan (predecesor directo de Microsoft Excel), de MS Word (en su versión para MS-DOS) y, más tarde, de Microsoft Office. De hecho, Simonyi ya había plasmado su concepto mucho antes de ganar renombre en el ámbito del desarrollo de software, específicamente en su tesis doctoral de 1976 titulada “MetaProgramming: A Software Production Method”.

De todas formas, la contribución significativa de Simonyi al desarrollo de Office llevó a que esta convención (llamada ‘notación húngara’ por sus colegas de Microsoft debido a la nacionalidad húngara de Simonyi, sin estrujarse mucho las meninges) se convirtiera en el estándar para la redacción de software desarrollado por Microsoft y para cualquier programa creado en ciertos lenguajes, como Visual Basic (también de Microsoft).

La Distorsión

No obstante, en las ‘Convenciones generales de nomenclatura’ oficiales del framework .NET, ahora (y desde hace ya 14 años), se incluye de manera explícita la siguiente frase: NO utilice la notación húngara.

Se encuentra justo debajo de “No utilice guiones bajos, guiones ni ningún carácter no alfanumérico” y justo encima de “Evite el uso de identificadores que entren en conflicto con palabras clave de lenguajes de programación”. No deja mucho espacio para la interpretación: Microsoft ahora rechaza esta nomenclatura.

Por lo general, se argumenta que la razón que llevó a Simonyi a respaldar esta notación radica en que, dado que en ese momento no existían entornos de desarrollo integrados (IDEs) con tecnología IntelliSense u otras similares, la forma más rápida de verificar el tipo de variable en cuestión era observar el prefijo de su nombre.

La Notación correcta

No obstante, para entender verdaderamente el surgimiento y declive de la notación húngara, es esencial reconocer que, de hecho, existen dos variantes de esta notación, y la utilizada por Simonyi ni siquiera coincide con la más popular entre los programadores.

Simonyi realmente proponía emplear lo que hoy en día conocemos como “notación húngara para aplicaciones” (o Apps Hungarian), donde el prefijo especificaba el propósito de la variable. Ejemplos de esto incluirían el uso del prefijo “lbl” para una etiqueta (‘label’) en la interfaz o el uso de “ix” para indicar el índice de una matriz.

Joel Spolsky explica en su web:

“Apps Hungarian era extremadamente valioso, especialmente en los días de la programación en C donde el compilador no proporcionaba un sistema de tipos muy útil. Pero entonces algo malo sucedió: nadie parece saber por qué o cómo, pero parece que los escritores de documentación en el equipo de Windows inventaron inadvertidamente lo que se conoció como Systems Hungarian”

La confusión se origina en una interpretación incorrecta del lenguaje, aunque no del lenguaje de programación, sino del inglés en sí. Simonyi, en lugar de emplear ‘kind’ (tipo, clase, categoría, especie, etc.), utilizó el término mucho más restrictivo ‘type’, que tiene connotaciones más específicas en el ámbito informático anglosajón.

Conclusiones

Aunque la explicación ‘oficial’ del nombre de esta notación hace referencia a la nacionalidad de su autor, circula por las redes otra versión que no excluye la explicación oficial y, de hecho, tiene mucho sentido.

La notación húngara designa una variable con un nombre específico asociado a una categoría más amplia (el tipo de dato), situando esta última al inicio del nombre (strTexto1, strTexto2, etc.), de manera análoga a colocar el apellido de una persona al comienzo de su nombre completo.

Esta práctica, común en Extremo Oriente (piensa en la dinastía de los ‘Kim’ en Corea del Norte: Kim Jong-il, Kim Il-sung, etc.), resulta peculiar en Europa, salvo en un pequeño y lingüísticamente singular país: Hungría. De hecho, el nombre de nacimiento de Charles Simonyi es, en realidad, ‘Simonyi Károly’.

0 0 votos
Valora la Publicación
Suscribirse
Notificarme de
guest
0 Comentarios
Feedback en línea
Ver todos los Comentarios