Puedes estar seguro que una tecnología está de moda cuando ves que todas las grandes empresas tecnológicas (las Big Five: Facebook, Amazon, Apple, Microsoft, Google) invierten y desarrollan sus propias soluciones para ella.
Y esto es exactamente lo que está pasando con el desarrollo de software dirigido por modelos, es decir el modelado de software a alto nivel más el uso de herramientas de generación de código que transforman ese modelo en la aplicación ejecutable. Esto es lo que hoy en día se conoce también como low-code o no-code, ya que el objetivo es minimizar la cantidad de código a escribir. Aunque funciona sobre todo para software empresarial (por decirlo así, más repetitivo y fácil de automatizar) también vimos ya cómo se podía usar para crear aplicaciones de Inteligencia Artificial sin programar.
Herramientas de generación de código ha habido muchas. La novedad es que ahora están llegando cada vez más al gran público de la mano de empresas tan populares como Microsoft, Google, Amazon, … que hasta ahora no habían invertido en este mercado. Veamos qué ofrece cada una de las Big Five en este mercado.
No-code / low code de Microsoft
PowerApps es la solución no-code de Microsoft, dirigida a todos aquellos usuarios “business” que buscan crear aplicaciones simples sobre fuentes de datos internas con algunas integraciones de otros servicios (mucho mejor, o como mínimo, mucho más fácil, si estos otros servicios también son de Microsoft). Como ellos dicen, puedes “empezar con tu modelo de datos y procesos de negocio para generar automáticamente aplicaciones inmersivas y responsive que pueden ejecutarse en cualquier dispositivo. Utiliza un sistema de drag&drop para personalizar las entidades empresariales y adaptar la experiencia del usuario a su perfil específico”.
En cierto modo, PowerApps es la continuación de una larga tradición de creación de aplicaciones “caseras” que ha existido siempre gracias a la popularidad de las aplicaciones ofimáticas de Microsoft. Hubo una época que todo personal de administración era experto en customizar y crear sus “apaños” con Excel y, sobre todo, Microsoft Access. Pero si hasta yo hago un uso indebido de las aplicaciones de Microsoft para modelar.
Pero, por supuesto, siempre puedes ampliarlas con código personalizado “ampliando las capacidades de la app con Azure Functions y conectores personalizados a sistemas propios o locales”.
La solución no-code de Google
App Sheet es la versión PowerApps de Google. Con App Sheet puedes integrar fácilmente una variedad de herramientas y servicios de Google (Gmail, Sheets, …) incluyendo aplicaciones basadas en datos guardados en la Google Cloud SQL. Los diseñadores disponen de plantillas, diseño de interfaz de usuario tipo drag & drop y modelado de datos declarativo para acelerar el desarrollo de aplicaciones. También es fácil integrar tu app con servicios de terceros a través de integraciones que ya formen parte de Google Workspace
App Sheet es el principal producto de Google en este ámbito desde que Google anunció el cierre de App Maker, su anterior producto. AppSheet fue de hecho comprada por Google hace un par de años.
La revolución low-code en casa de Amazon
Amazon era un caso raro. Con todos los servicios que ofrece nada les sería más útil que una manera fácil de combinarlos y orquestarlos con algun producto de modelado low-code. Y éste no era el caso la primera vez que miramos (en 2019). ¡Las cosas han cambiado mucho desde entonces!. Ahora Amazon no tiene ya una, sino dos ofertas en este espacio.
Para empezar, tenemos su solución no-code: Honeycode. Al igual que las alternativas de Microsoft y Google, ayuda a crear aplicaciones personalizadas (basadas en datos) sin necesidad de programar: “Las aplicaciones Honeycode se construyen en cuatro pasos: Organiza tus datos en tablas. Crea aplicaciones con el App Builder. Utiliza automatizaciones para sustituir los pasos manuales de tu proceso. Comparta sus aplicaciones con su equipo”. Como siempre, también hay una API que puedes utilizar para crear tus extensiones e integraciones personalizadas.
Después tenemos Amplify Studio, una interfaz visual que permite a los desarrolladores “crear y distribuir fácilmente aplicaciones web y móviles completas en cuestión de horas. Con Amplify Studio, se puede construir rápidamente un backend de la aplicación, crear componentes React para la interfaz de usuario (UI) y conectarla al backend en clics”. Siguiendo un enfoque low-code, el resultado de este modelado y transformación es un conjunto de ficheros de código fuente que luego puedes gestionar a tu antojo. Me pareció especialmente interesante que incluso son capaces de conectarse a Figma para generar una interfaz basada en componentes React a partir de diseños Figma.
E incluso hay un tercer producto, esta vez especializado en aplicaciones de Machine Learning: Amazon Sagemaker (otras herramientas similares). Sagemaker “ofrece herramientas low code para cada paso del ciclo de vida de ML, para que puedas preparar tus datos y construir, entrenar e implantar modelos de alta calidad más rápidamente”.
Apple – SwiftUI
Better Apps. Less code. Mejores apps, menos código. Así es como Apple define SwiftUI. Con SwiftUI puedes crear interfaces de usuario para cualquier dispositivo Apple usando una sintaxis puramente declarativa, componentes drag&drop y visualización de los cambios en tiempo real.
Esta herramienta es más modesta que las de Google y Microsoft ya que se centra sólo en la parte de la interfaz pero muestra como ninguna empresa puede escaparse a esta tendencia a la democratización del desarrollo de software.
Facebook es una empresa de unos pocos productos concretos. No tiene sentido para Facebook invertir en un entorno de modelado para construir aplicaciones externas. En cambio, sí que como respuesta a sus propias necesidades en el campo del desarrollo de aplicaciones móviles, han creado su propio framework multi-plataforma para ser más eficientes en la creación y mantenimiento de su app. El framework, seguro que todos lo conocéis, no es otro que React Native . Con él, Facebook consigue proporcionar versiones “nativas” de sus apps para los distintos dispositivos móviles.
¡Y aún hay más!
Hasta aquí hemos hablado de las big 5 pero hay muchas otras grandes empresas que están invirtiendo, y mucho, en este tipo de herramientas. Por ejemplo, Oracle ha sido un jugador importante en este campo como anzuelo para conseguir clientes para sus bases de datos y el ecosistema Oracle alrededor de las mismas (Oracle Designer para Oracle Forms sería un buen ejemplo, más recientemente también han lanzado un Visual Builder for mobile apps para usuarios menos técnicos). SAP también ha lanzado una herramienta low-code para la automatización de procesos: SAP Ruum, que supone su entrada en el mundo RPA.
Si lo piensas, tiene mucho sentido que todas estas empresas inviertan en herramientas low-code / no-code. Para ellas, es sobre todo una forma de llegar a un público más amplio al que atraer y ayudar a consumir sus servicios e infraestructura. Básicamente, su reflexión es: cuanta más gente yo ayude a construir el software, más gente me pagará para ejecutar ese software. Esta forma de delegar el beneficio en la infraestructura de despliegue les ayuda a ofrecer un modelo de precios mucho más razonable que el de otras soluciones low-code. Los proveedores de herramientas low-code necesitan ganar dinero vendiendo sus productos y servicios principales, las FAAMG están más interesadas en hacer crecer su ecosistema general de usuarios a los que comercializar todos sus productos.
Si quiero hacer (algún dia) app para alexa, podría utilizar las herramientas de amazone?
Las herramientas que ofrece Amazon para crear Skills de Alexa son éstas: https://developer.amazon.com/en-US/docs/alexa/tools/ask-tools.html
Lo que pasa que ahora mismo no ofrece herramientas tipo lowcode para hacerlo sino que lo que ofrece son SDKs para facilitar la programación y despliegue de las skills.
Sí que tiene un lenguaje más visual (éste) pero sólo para la interfaz visual para las skills que tienen que mostrar información en dispositivos tipo Echo