Según la consultora IDC, de aquí a 2023 se desarrollarán e implementarán más de 500 millones de aplicaciones, tantas como en los 40 años previos. Dado que el número de desarrolladores no ha experimentado un crecimiento similar ni por asomo, responder a esta creciente demanda pasa inevitablemente por dar las herramientas a usuarios menos avanzados para que sean capaces de crear sus propias aplicaciones.
Eso, claro, exige minimizar la importancia de la codificación a la hora de desarrollarlas. Y ahí es donde entran dos conceptos en auge en los últimos años y que, según un reciente informe de Research and Markets, dentro de 9 años podrían estar generando unos ingresos de 187.000 millones de dólares, frente a los 10.900 millones que generaban en 2019…
Dichos conceptos son ‘no-code’ y ‘low-code’, y nos los encontraremos mencionadas de forma conjunta en múltiples fuentes porque, sencillamente, no siempre está clara la frontera entre ambos.
“La programación no va de escribir, sino de pensar”
(Chris Wanstrath, CEO de GitHub)
Tanto las soluciones low-code como las no-code ofrecen todo lo necesario para crear una aplicación de manera rápida y relativamente sencilla, normalmente contando con un entorno de desarrollo de naturaleza fundamentalmente visual (por ejemplo, mediante sistemas de arrastrar y soltar bloques, como en los sistemas de aprendizaje de programación para los más pequeños).
Sin embargo, existen diferencias entre las mismas.
- Low-Code: Requiere de ciertos conocimientos previos de programación ‘tradicional’. Como su nombre indica (‘bajo código’ en español), siguen requiriendo codificación, si bien esta es ocasional y/o con una sintaxis muy sencilla. La pretensión de este enfoque radica en acelerar el desarrollo y el despligue de cada aplicación permitiendo que los programadores centren sus esfuerzos en ese 10% de la misma que la hace diferente de otras similares, y que es la porción de la misma que le aporta valor al cliente.
- No-Code: Por el contrario, la programación no-code está pensada para su uso por parte de usuarios empresariales o por los llamados ‘desarrolladores ciudadanos’; esto es, por personas que no conocen (ni necesitan conocer) ningún lenguaje de programación ‘tradicional’ para poder desarrollar una herramienta.
Un ejemplo y algunos inconvenientes
Un ejemplo de esta clase de herramientas lo constituye la plataforma Power Apps, de Microsoft, que recientemente ha anunciado la integración de inteligencia artificial en la misma para poder ‘codificar’ dando instrucciones en lenguaje natural que posteriormente son traducidas a código de programación por la plataforma. Así, instrucciones como
“encuentra productos cuyo nombre incluya ‘para niños'”
se convierten en
“Filter (‘BC Orders’ Left (‘Product Name’, 4) =”para niños”)”
en su lenguaje propio Power Fx, que ya de por sí constituye un ejemplo de programación simplificada dirigida a usuarios empresariales.
La mayoría de estas soluciones se centran en crear aplicaciones con fines y funcionamiento muy concreto, con poco margen para la personalización y, sobre todo, para la optimización. Además, tanto low-code como no-code sufren de otra desventaja: los potenciales problemas de seguridad derivados del hecho de que las empresas que implementan una aplicación desconozcan ‘las tripas’.
Un cambio no tan revolucionario
Y la misma existencia de estas ‘tripas’ también son un recordatorio de que low-code y no-code no han desembarcado en el mercado para expulsar del mismo a los programadores tradicionales: estos seguirán siendo necesarios para programar las herramientas que permiten crear aplicaciones a los ‘programadores ciudadanos’.
Por otro lado, si lo pensamos bien, hace ya décadas que las herramientas no-code y low-code tienen un papel preponderante en nuestro día a día como usuarios informáticos, sólo que no las hemos llamado así hasta ahora porque no competían con los lenguajes de programación, sino con los de marcado.
Lo que Power Apps es a las aplicaciones corporativas, los CMS lo llevan siendo desde hace años para las webs: todo va de hacer accesible la tecnología a quien no sabe programar.
Así, sin ir más lejos, los gestores de contenidos web como WordPress, Drupal, Blospot o Wix serían —según el caso— herramientas de low-code o no-code con respecto a la tradicional programación web (HTML+CSS+Javascript+PHP): un ejemplo de ‘democratización’ en la creación de ‘aplicaciones web’, ahora al alcance de los no-programadores.
Y, por otro lado, ¿qué son —sino soluciones no-code— los procesadores de texto WYSIWYG con respecto a tecnologías como LaTeX/PostScript, aún vigentes pero relegadas a su uso por usuarios expertos, a la hora de crear documentos dotados de maquetación y elementos gráficos?