Cuando pensamos en automatizar tareas mediante software, pensamos en un programa que haga de forma automática lo que debe hacer una persona, pero como informáticos estamos acostumbrados a hacer esto para otras personas ¿y nosotros qué?
Alguien tiene que analizar un fichero, nosotros le hacemos un parser, y le ahorramos tiempo. Alguien tiene que hacer una tarea repetitiva y nosotros le damos una herramienta que lo hace casi todo ahorrandole trabajo a la persona.
La idea de los lenguajes de 4ª generación es esa misma, pero con respecto a nosotros, es decir, muchas aplicaciones se parecen en muchas partes, ya no entre aplicaciones, sino dentro de una misma aplicación, estamos muy acostumbrados al famoso copy-paste, y ya no copiar código igual, sino similar. Esta tarea es muy repetitiva y genera cantidades ingentes de lineas de programación.
Un generador de código de 4ª Generación, nos puede ayudar a automatizar la tarea de programar, es decir, que programe la máquina. Nosotros lo que hacemos es un programa cuya salida es código fuente de otro programa, es este segundo programa el que da una solución a nuestros clientes. Parece algo extraño, pero aquellos profesionales que se dedican a programación web, están acostumbrados a implementar software cuya salida es HTML y javascript, esto al fin y al cabo, es lineas de código que se ejecutan en un navegador.
La idea es la misma, pero llevandola a nuestro software más cotidiano, si tengo 50 objetos diferentes y cada uno de ellos tiene una representación en BD, entonces seguramente tengamos que implementar 50 select, 50 deletes, 50 updates y 50 insert. Esto es muy repetitivo, así que es mejor crear un módulo en el que indicamos como se construye la select, update, delete e insert de un objeto en base a sus propiedades. De esta forma lo que conseguimos es implementar un solo objeto, pero más abstracto, al ejecutarlo nos genera el código para los 50 objetos, ahorrando mucho mucho tiempo.
Y por seguir en esta línea, estamos acostumbrados a crear una tabla en BD, y despues un objeto en nuestro código que representa a esa tabla, con los mismos campos, y si tenemos 50 tablas, eso se hace pesado. Pues volvemos a lo mismo, hacemos un módulo que tras ejecutarlo nos devuelva el código de esos 50 objetos.
Ya hay software comercial desde hace mucho tiempo que nos automatiza tareas de este estilo y podemos usarlas ahorrando mucho tiempo de programación.
Mi consejo es que os metais de lleno en esa forma de programar, ya que conseguires desarrollar software mucho más rápido, mucho más robusto (despues de muchos copy-pastes te puedes equivocar) y lo más importante, mucho más mantenible, ya que por ejemplo si hay que hacer cierta tarea adicional cuando se hace un insert, si no usamos 4GL tendríamos que modificar en 50 lugares, pero de esta forma, modificamos un solo sitio, generamos código, y ya está todo funcionando.
Ya son varios los proyectos que hemos enfocado desde este punto de vista y es genial cada vez que tienes que añadir un nuevo objeto a tu sistema, que en cuestion de segundos tienes el objeto y todos los mecanismos de acceso a datos.
Experimentadlo y entendereis lo que digo :)
Jose Carlos Calvo Tudela
Alguien tiene que analizar un fichero, nosotros le hacemos un parser, y le ahorramos tiempo. Alguien tiene que hacer una tarea repetitiva y nosotros le damos una herramienta que lo hace casi todo ahorrandole trabajo a la persona.
La idea de los lenguajes de 4ª generación es esa misma, pero con respecto a nosotros, es decir, muchas aplicaciones se parecen en muchas partes, ya no entre aplicaciones, sino dentro de una misma aplicación, estamos muy acostumbrados al famoso copy-paste, y ya no copiar código igual, sino similar. Esta tarea es muy repetitiva y genera cantidades ingentes de lineas de programación.
Un generador de código de 4ª Generación, nos puede ayudar a automatizar la tarea de programar, es decir, que programe la máquina. Nosotros lo que hacemos es un programa cuya salida es código fuente de otro programa, es este segundo programa el que da una solución a nuestros clientes. Parece algo extraño, pero aquellos profesionales que se dedican a programación web, están acostumbrados a implementar software cuya salida es HTML y javascript, esto al fin y al cabo, es lineas de código que se ejecutan en un navegador.
La idea es la misma, pero llevandola a nuestro software más cotidiano, si tengo 50 objetos diferentes y cada uno de ellos tiene una representación en BD, entonces seguramente tengamos que implementar 50 select, 50 deletes, 50 updates y 50 insert. Esto es muy repetitivo, así que es mejor crear un módulo en el que indicamos como se construye la select, update, delete e insert de un objeto en base a sus propiedades. De esta forma lo que conseguimos es implementar un solo objeto, pero más abstracto, al ejecutarlo nos genera el código para los 50 objetos, ahorrando mucho mucho tiempo.
Y por seguir en esta línea, estamos acostumbrados a crear una tabla en BD, y despues un objeto en nuestro código que representa a esa tabla, con los mismos campos, y si tenemos 50 tablas, eso se hace pesado. Pues volvemos a lo mismo, hacemos un módulo que tras ejecutarlo nos devuelva el código de esos 50 objetos.
Ya hay software comercial desde hace mucho tiempo que nos automatiza tareas de este estilo y podemos usarlas ahorrando mucho tiempo de programación.
Mi consejo es que os metais de lleno en esa forma de programar, ya que conseguires desarrollar software mucho más rápido, mucho más robusto (despues de muchos copy-pastes te puedes equivocar) y lo más importante, mucho más mantenible, ya que por ejemplo si hay que hacer cierta tarea adicional cuando se hace un insert, si no usamos 4GL tendríamos que modificar en 50 lugares, pero de esta forma, modificamos un solo sitio, generamos código, y ya está todo funcionando.
Ya son varios los proyectos que hemos enfocado desde este punto de vista y es genial cada vez que tienes que añadir un nuevo objeto a tu sistema, que en cuestion de segundos tienes el objeto y todos los mecanismos de acceso a datos.
Experimentadlo y entendereis lo que digo :)
Jose Carlos Calvo Tudela
No hay comentarios:
Publicar un comentario