Uno de los temas que más de moda está en los últimos años, son los generadores de código de manera automática, que toman como entrada una descripción del diseño que se quiere construir y ellos realizan una implementación en el lenguaje que nosotros le indiquemos.
Tabla de contenidos
Introducción a los generadores de codigo
En un primer momento, los generadores de código nacen como una manera de agilizar el desarrollo, por ejemplo si siempre partimos de un caso en el que usamos 5 librerías y nuestro diseño es de cierta manera, para nosotros sería muy útil, poder disponer de esa plantilla ya creada y luego completar el contenido. Este proceso es muy importante si queremos diseñar un prototipo rápido, de lo que va a ser nuestro servicio y con el cual le podemos enseñar a un posible cliente, inversor o al propio equipo, cómo será lo que queremos montar.
Ese tipo de sistemas hasta hace poco los teníamos disponibles y nos añadían muchas facilidades, pero actualmente y utilizando una expresión muy típica de informática, hemos intentado “rizar el rizo” para conseguir que no sea una mera plantilla lo que vamos a utilizar, sino que nos pueda generar una versión sencilla, pero completa o casi completa de todo el sistema.
Tipos de generadores de codigo
Dentro de los generadores de código, desde mi punto de vista podemos distinguir dos tipos principales:
Generadores interactivos: este tipo de generadores son muy comunes actualmente y permiten, que con un simple sistema de arrastrar y configurar un par de parámetros del elemento, poder generar todo el código necesario para implementar esa funcionalidad. Un ejemplo de ello es el App Studio, el generador de Aplicaciones para Windows Phone que Microsoft pone a disposición de cualquier persona.
Generadores usando un lenguaje de modelado: este tipo de generadores son menos comunes pero son los más “potentes”, ya que usando una descripción del modelo que queremos crear en un lenguaje de modelado como UML, son capaces de crear un porcentaje bastante amplio del código. Un ejemplo de esto es Visual Paradigm, y una de sus ventajas es que permite generar código en diversos lenguajes como C++, Java y PHP.
Ventajas del uso de generadores de codigo.
Entre las ventajas que tienen, podemos destacar:
El código se genera de una manera transparente al usuario, así que puedes obtener un programa en C# sin saber ese lenguaje, por ejemplo.
Agiliza mucho el desarrollo de pequeños prototipos para hacer las demostraciones.
Los generadores interactivos suelen poseer como característica, que un usuarios sin saber programar en ningún lenguaje, pueda crear un programa más o menos complejo.
Inconvenientes de los generadores de codigo.
La parte negativa de esas herramientas que hoy comentamos es principalmente:
La calidad del código, llegados a este punto muchos programadores avanzados pueden cuestionar, cómo de bueno es el código que generan estas herramientas. Desde Somos Binarios afirmamos que un programador avanzado y entendido en ese lenguaje, va a poder hacer código mucho mejor optimizado del que genera la máquina, porque puede adaptar mucho mejor el proyecto al lenguaje, mientras que el generador esta pensado para que funcione en muchos proyectos muy distintos. Pero también es verdad, que un generador de código respecto a un usuario de nivel medio-bajo, posiblemente puede generar mejor código o por lo menos cometiendo un número sensiblemente inferior de errores.
Los generadores basados en lenguajes formales como UML, necesitan conocer UML y esto no es una cosa que se aprenda en un par de semanas, sino que necesita un duro y continuo trabajo para poder dominarlo. Así que algunos casos, puede ser más rentable aprender la nueva tecnología que aprender UML.
Generadores de codigo en el mercado.
Como siempre, intentamos darle un sentido eminentemente práctico a todas las entradas que escribimos, así que os dejamos algunas de las herramientas para generar código que conocemos y hemos usado:
Generadores interactivos, solo he usado App Studio, así que es el que os recomiendo, si otros habéis usado otros generadores y nos queréis informarnos, actualizaremos la entrada con ellos.
Generadores basados en UML he usado únicamente dos, Visual Paradigm que se usa mucho para hacer diagramas UML y permite generar el código una vez que los tienes hechos y Radarc un producto desarrollado por unos jóvenes españoles hace ya algunos años, que se instala como un plugin a Visual Studio y nos permite primero hacer el modelo o utilizar una plantilla ya definida y luego generar el código. Además este último producto tiene múltiples opciones de configuración y genera código nativo tanto para IOS como para Android y Windows Phone y para sistemas de escritorio Windows.
Comparte esto:
Jorge Durán
Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL y .Net backend developer en idealista.