miércoles, 28 de diciembre de 2016

GeneXus M

Hace unos pocos días pude ver la presentación "Evolución de la arquitectura de GeneXus", por Germán Asiz, en el GX26, y me he quedado bastante contento por el camino que se está tomando, pues se trata de definiciones que dan inicio a una época totalmente nueva en GX, con unas posibilidades muy atractivas.

El caballito de batalla de esta nueva etapa va a ser, cómo no, una nueva versión de GeneXus, que entre otras cosas recoge un antiguo anhelo de cierto tipo de usuarios (me incluyo) y casi una "exigencia" de las nuevas generaciones: que el IDE se pueda instalar en cualquier sistema operativo.
Tal cual. Yo me apuntaré con alguna distribución Linux.


El nuevo IDE, GeneXus M, va a ser gratuito, liviano y Open Source -ya hicieron un prototipo basado en Atom- con todas las posibilidades de colaboración que eso lleva y con lo que se están sentando las bases para el advenimiento de una diversidad de iniciativas y herramientas que serán desarrolladas por la gente de GeneXus y también por terceros (si me quedara algo de tiempo para disfrutar este tipo de cosas, yo mismo trabajaría en algún proyecto así, algo basado en Eclipse, por ejemplo). Puede que en el futuro veamos, además de la evolución del clásico IDE de GX, otros exclusivos para determinadas plataformas o dispositivos.

Pongo énfasis en lo del IDE porque es lo que siempre nos entusiasma, no?. Pero claramente la cosa va mucho más allá, porque se sostiene en cambios a nivel de arquitectura de GeneXus que implican un desacople de componentes del GX que conocemos hoy -que es algo así como un solo bloque- y esos componentes en la nueva organización van a posibilitar nuevas formas de desarrollar y colaborar.
Va a ser interesante ver cómo vamos a trabajar con la capa de servicios de GeneXus (GXServices). Y cómo vamos a pagar por usarla. Porque este nuevo escenario también plantea la necesidad de revisar cuestiones de licenciamiento y de estrategia de llegada a muchos más desarrolladores, clientes y partners.

En toda esta historia hay algo que a mí me gustaría ver y no sé si realmente estará en planes de alguien. Se trata de un "desacople" un tanto particular: que la generación de la UI/UX esté por separado en generadores especializados y que, de paso, también sea posible que terceros desarrollen esos generadores. Es decir, por ejemplo, que podamos usar el generador Java tradicional de GX complementado con un generador de UI (Desktop, Mobile, Web o lo que sea) desarrollado por Simplifica o Dvelop. O con alguno que pueda desarrollar cada uno en sus "tiempos libres".


 Work With generado con el pattern wuiServices y template Angle

Esta idea me quedó dando vueltas de mi experiencia desarrollando wuiServices, un pattern WW muy sencillo que en vez de Webpanels generaba directamente Html y Javascript. Pues estando en eso te das cuenta de que si estás generando esos fuentes, ese código, tal vez lo que deberías estar desarrollando es un generador y no un pattern. 

Un generador de UI debiera trabajar a partir de un input desde el editor de formularios del IDE GeneXus, aunque también podría ser desde otro tipo de editor en una herramienta desarrollada por terceros. La salida de estos generadores serían "Vistas" naturalmente ajenas a la implementación de las lógicas de negocio o de acceso a datos, pero integradas totalmente a la solución desarrollada.
Una cuestión complicada de esto podría ser la generación de código de eventos, pero podría darse casos en que simplemente vamos a querer escribir eventos del lado cliente por nuestra cuenta y serían nativos del generador.

Me gusta pensar que esa separación de generador backend y generador UI podría dar paso a una buena oferta de soluciones y con ello una mejora interesante de la competitividad de GeneXus.

Esto pinta bien, me gustaría participar de cosas así y además tengo un buen presentimiento con el 2017: de seguro va a ser mejor que el 2016.

salu2!!!

1 comentario:

  1. Buen Articulo, Si podriamos generar el frontend solamente con lo que es el HTML5(Css+JS) desde el IDE de Genexus podriamos hacer por ejemplo Progresives Web Apps Integrando nuestro codigo frontend con Firebase (Backend Como Servicio) y asi consumir servicios de terceros en este caso firebase nos Armará las BBDD/PushNotification/TrabajarOffLine entre otras tantos servicios... Hoy por hoy no se si existe un SDK hacia firebase y tampoco tiene sentido como esta planteado Gx, ya que nos estan vendiendo los Generadores del Codigo Backend. No se Si GXaaS Será algo asi como Firebase? A esperar se dijo. Saludos

    ResponderEliminar