lunes, 16 de abril de 2012

Reses.

El avance de la tecnología hoy es un hecho irrefutable. Si bien muchos insisten en el ya cansino asunto de que “antes se vivía mejor”, y son miembros del colectivo RES (Resistentes al Cambio), o en la pared del salón principal de su lar exhiben un afiche con la frase “negar el presente”, ya les es casi imposible hacer la vista gorda a dichos cambios.
 
Sin embargo, la duda existencial está instalada en el inconsciente colectivo: “¿Vale lo que cuesta?
 
Toda “novedad” lleva dos mochilas en la espalda. Una de cosas buenas. Y otra de cosas malas.
 
Uno de los actores principales en este proceso de avance es la “cybercriatura”.
Nuevo milenio, nuevo siglo, segunda mitad del siglo XX. Llegó y es millones. Y con ella, la “Filosofía Booleana” (no se confunda el lector, el Algebra de Boole es otro asunto que mucho más antiguo).
 
Por “Filosofía Booleana” definiremos la evolución de los lenguajes de programación y la ecuación costo-beneficio de todo el asunto.
 
Tres hitos fundamentales en esta evolución son:
•    P.C.
•    Windows.
•    Internet.

Antes del P. C. (Personal Computer o Computadora Personal), existían los “mainframes” o Computadoras Centrales. Esto significaba que existía sólo una Computadora Central, y diversas terminales “tontas”.  Se entiende por terminal tonta a una especie de “browser”, sin UCP. Dicho de otro modo, la UCP se encuentra solamente en la Computadora Central, y la información “va” y “viene”. 

Es decir, tiene un editor precario, y sirve para entrada y salida de datos. Pero la terminal tonta NO PROCESA los datos.

Después del P.C. todo cambió, una máquina “inteligente”, que tiene vida propia, sin depender de nadie. Cambios de sistemas operativos, cambios en los lenguajes de programación, cambios en la arquitectura de los sistemas. Cambios en el modo de procesamiento de los datos: antes todo proceso se corría en tiempo diferido (“batch”) y las instrucciones se almacenaban lo que se llama JCL (acrónimo de Job Control Language, Lenguaje de Control de Trabajos) es un conjunto de especificaciones de morfología y sintaxis requeridas para la redacción de instrucciones de ejecución de programas informáticos por parte del sistema operativo de un equipo informático. Este lenguaje se usaba en los Ordenadores Centrales (Mainframes) y era específico para cada sistema operativo. Las instrucciones (también llamadas "pasos" o "sentencias") del JCL eran declaraciones u órdenes con las que se indicaba al sistema operativo qué tareas debía realizar, en qué secuencia habían de ejecutarse, etc. 
MVS (Multiple Virtual Storage, Múltiple Almacén Virtual en inglés) fue el sistema operativo más usado en los modelos de mainframes System/370 y System/390 de IBM.
 
A medida transcurría el proceso evolutivo, los procesos comenzaron a ejecutarse en tiempo real (ON LINE). Esto implicó un gran cambio “filosófico-informático”. 
Una vez instalado el P.C. no se dependía de “nadie” para ejecutar un programa. Surgió y fue muy popular el DOS, una familia de sistemas operativos para PC,  que utilizaban los procesadores Intel 8086 y 8088, de 16 bits, siendo el primer sistema operativo popular para esta plataforma. Contaba con una interfaz de línea de comandos en modo texto o alfanumérico, vía su propio intérprete de órdenes, (command.com). El DOS carece por completo de interfaz gráfica, y no utiliza el ratón (“mouse”).
 
Con el advenimiento de Windows, surgieron las interfaces gráficas, se incorporó el uso del ratón, y esto significó un hito fundamental. Ya no eran los computadores aparatos aburridísimos con pantallas con fondo negro, ahora se podía ver imágenes, un antes y un después. Acompañando a este boom, cambió la arquitectura de las herramientas de programación. Surgieron los lenguajes orientados a eventos y objetos, denominados también “Lenguajes Visuales”.
 
A nivel de almacenamiento de datos, también se dio una gran evolución. Desde los archivos “planos” o secuenciales, o MSAM, se pasó a los indexados, (algo así como buscar en el índice de un libro para ir directamente a la página nro. Tal, en vez de leer el libro desde la primer página buscando el tema. Luego surgieron las Bases de Datos, primero jerárquicas (ej ADABAS), para luego dar paso a las relacionales, las que se usan hoy.
 
Acompañando este fenómeno, se tuvo que tener especial cuidado en la organización de los datos, por lo que surgió la “Normalización”.
 
El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
 
Las bases de datos relacionales se normalizan para:
•    Evitar la redundancia de los datos.
•    Evitar problemas de actualización de los datos en las tablas.
•    Proteger la integridad de los datos.
 
El proceso evolutivo continuaba y continuaba. Fue así que (en pos de facilitar la tarea del desarrollador) algunas funciones fueron automatizadas y de tener que ser programadas “a pedal”, pasaron a ser “transparentes”.
 
Surgieron los Generadores y (con orgullo) en nuestro país GENEXUS.
 
Con GENEXUS, surgió la Filosofía Genexus, o el “pensar en genexus”. Muchos profesionales no pudieron adaptarse a “pensar en genexus”, puesto que implica un cambio total de mentalidad.
 
Pensar en genexus” implica descartar todo lo aprendido y aprehendido, para concebir el modelo de datos de un modo completamente diferente. Ej, ya no pensamos en las  tablas y en las relaciones, sino que subimos un nivel y concebimos el objeto denominado “transacción”, para el cual hay que “borrar” el vocablo normalización.
 
Decididamente, y según opinaba David Hume, somos “animales de costumbres”. El debate que se instala es: ¿Cuál es el costo/beneficio de cambiar la “filosofía programación”?
 
¿Es en realidad Genexus la Octava Maravilla? – NO.
 
Si ya hay que borrar todo lo anteriormente aprendido y aprehendido para no incurrir en el error, puesto que es lo más ineficiente del mundo usar Genexus “mal”, significa violar sus normas, puesto que un error en una definición implica un impacto NEGATIVO enorme en el modelo generado.
 
Y sin hablar de los costos de cada licencia (por equipo), pasando por los “upgrades” (cambios de versiones), y todos los “bugs” (o parches) por lanzar versiones sin tener estudiado completamente el impacto.
Lo cierto es que por un lado parecería ser que todo es “mucho más fácil” que antes, pero: ¿Lo es?
 
Personalmente entiendo que no.
Puesto que con un lenguaje visual (cualquiera), sé en todo momento qué estoy haciendo y cómo solucionar cualquier problema. (Porque Genexus termina generando un código de un leguaje, en definitiva, no es un lenguaje en sí mismo, sino que es un generador de lenguajes).
 
Esto sin entrar en costos, y sin entrar en que una vez que uno penetra en la “filosofía genexus”, se casa con ella para siempre.
 
Sin embargo, tampoco desmerezco esta herramienta. Pero lo importante es saber cuándo nos conviene, y cuando no.
 
Toda “novedad” lleva dos mochilas en la espalda. Una de cosas buenas. Y otra de cosas malas. Lo importante es tomar lo justo de cada una.
 
Anna Donner Rybak © 2012
Related Posts Plugin for WordPress, Blogger...