miércoles, 8 de agosto de 2007

El lenguaje más elegante del mundo

Ideas.

Siempre me había llamado la atención un evento de la década de los 90’s. El tan sonado –en aquella época- nuevo estándar para el lenguaje C, el cual se tuvo que esperar por 10 años, y para cuando llegó, ¡no se notaba la diferencia comparado con el anterior!. La mayoría de los cambios fueron internos. Nunca me detuve a ver con detenimiento tal proceso, hasta ahora que me he propuesto leer de nuevo el ciclo completo de C, C89, C99, C++, Visual C++.

En su libro sobre C, Schildt (2001: 249) menciona el motivo de “tan sutil” cambio: “fue un proceso controlado y cuidadoso que refleja el hecho de que varios pilotos experimentados llevaban los mandos”:

"Puede que la principal cuestión que acompaña al lanzamiento de un nuevo estándar de lenguaje sea el aspecto de la compatibilidad con su predecesor. ¿Hará la nueva especificación que los programas antiguos queden obsoletos? ¿Se han alterado las construcciones importantes? ¿Tendré que cambiar mi forma de escribir código? Las respuestas a este tipo de preguntas a menudo determinan el grado de aceptación del nuevo estándar y, a largo plazo, la viabilidad del propio lenguaje. Afortunadamente la creación de C99 fue un proceso controlado y cuidadoso que refleja el hecho de que varios pilotos experimentados llevaban los mandos. Por decirlo de una forma sencilla: si gustaba C [el C89] tal como era, la versión de C definida por C99 también gustará. Lo que muchos programadores consideran como el lenguaje de programación más elegante del mundo, ¡todavía sigue estando ahí!"


Con lo anterior en mente, es tangible el costo de lograr el aumento de potencia (ampliaciones y añadidos), de la mano con la compatibilidad y portabilidad.

Torito! ¿Qué romeritos significa "el lenguaje mas elegante del mundo"?


Actualización. Como producto de las austeras vacaciones que han terminado, tengo un comentario práctico sobre los cambios de un sistema:

En el 2001 ya no actualicé una librería que escribí para manipulación de tablas DBF, la cual funcionaba pero nunca optimice. Su desarrollo es trivial, para nada difícil o complicado. El problema fue que me complique la vida implementando funciones que pensé serían de utilidad en el futuro, tales como la verificación de sintaxis del contenido de los registros de una tabla a partir de patrones y descuide el motor DBF.

Pues bien, con mi nuevo proyecto de un lenguaje DBF 2 KML, necesitaba un motor DBF optimizado. Sabiendo ahora lo que se espera exactamente de tal motor –y que no tenía claro antes del 2000, y menos cuando lo empecé en 1993-, lo reescribí desde cero eliminando las capas de abstracción.

¡Y que bonito es lo sencillo! Schildt tiene razón, se necesita experiencia para no complicar las cosas sin necesidad.

_____
del libro que actualmente leo:
Schildt, H. 2001. C Manual de referencia. Osborne McGraw-Hill. 709 pp.

[entrada publicada originalmente el 08-08-2007 23:38 en Yahoo! 360]