sábado, 5 de mayo de 2007

Ojo a los Lenguajes Dinámicos

Las características dinámicas de los lenguajes de programación no son nuevas, y las experiencias al respecto se han acumulando en los últimos años. ¿Qué hace que un lenguaje de programación sea dinámico?.

Desde mi experiencia cotidiana en la elaboración de software, lo primero que asumo con un lenguaje de programación orientado a objeto y dinámico es que todo lo obvio sea implícito, y lo implícito es un comportamiento claro y evidente en la ejecución de la aplicación sin la necesidad de haber escrito código al respecto. Sin embargo si necesito alterar ese comportamiento “por default”, estaré en plena capacidad de redefinir tal comportamiento sobre la base y estructura impuesta por el entorno de programación.

El conjunto de características dinámicas es un importante valor agregado a un lenguaje orientado a objeto.

Quienes diseñan lo dinámico analizan y atrapan los mecanismos cognocitivos de nosotros los programadores, un factor común de ese análisis (¿o psicoanálisis?) da como resultado un conjunto de elementos que pueden ser dinamicos. Por ejemplo, si millones de programadores están dedicados a elaborar aplicaciones con soporte de base de datos, entonces la lógica de los movimientos transaccionales debería ser la parte implícita. En forma concreta el lenguaje proveerá un Registro Activo dinámicamente generado y que representará un registro específico de una tabla en la base de datos. La ventaja de un registro activo, es que esconderá el proceso de recuperar, actualizar y guardar información de la base de datos en comandos como load, update, delete y save, sin que el programador tenga que incrustar sentencias con el popular SQL (el ceviche mixto Java/SQL, C#/SQL o VB/SQL expresado como una exagerada mezcla de sentencias SQL en el código del programa, es un plato pecaminoso y marca con la sentencia de muerte a muchos sistemas de software, y por ser ceviche es el plato favorito de los programadores locales y consta en el menú de carreras universitarias rápidas).

La primera ventaja para el programador es menos líneas de código, pero el reto es conocer más conceptos, las ventajas dinámicas están asociadas íntimamente con las características orientadas a objeto, en definitiva un perfil profesional alto del programador. Para la economía de la organización todo esto supone pagar menos por mantenimiento de software, mejor adaptabilidad y mayor tiempo de vida útil de sus aplicaciones de software.

En esta ocasión he evitado una definición formal para Lenguaje Dinámico, la wikipedia acusa tales definiciones de ambiguas pero nos da un interesante listado de características que se merecen un rápido análisis histórico.

Desde mi perspectiva de programador en plataformas Java y .Net tengo mi propia selección de lenguajes dinámicos, ¿cuales y porqué? lo expondré en los próximos días.

miércoles, 2 de mayo de 2007

Elcomercio.com le da la bienvenida a sus usuarios a este espacio de opinión.