Suma que multiplica. Espacio libre para discutir y analizar la cotidianidad

No Code y la progresiva automatización de la programación

No Code y la progresiva automatización de la programación
Por Enrique Dans*

Un equipo de investigadores del MIT y de Intel han desarrollado un algoritmo capaz de crear algoritmos. Y antes de que algunos empiecen a fantasear con la ciencia-ficción que ven en las películas y con esa Skynet que acaba con la humanidad, dejemos claro que de lo que hablamos, en realidad, es de la posibilidad de que una máquina sea capaz de automatizar las tareas de programación, de manera que un programador pueda automatizar múltiples tareas tediosas o repetitivas o, llevándolo a su límite, que cualquier persona sea capaz de programar simplemente describiendo las tareas que desea que ese programa lleve a cabo.

Para lograrlo, se utiliza mediante un sistema de similitud de código inferido por máquina (MISIM), un motor automatizado diseñado para aprender lo que una pieza de software pretende hacer, estudiando la estructura del código y analizando las diferencias sintácticas de otros códigos con comportamiento similar. Una idea, la de los ordenadores capaces de programarse a sí mismos a partir de unas instrucciones dadas en lenguaje natural, que lleva tiempo apuntándose como una posibilidad y que, de hecho, se ha puesto ya en práctica en varias iniciativas del tipo No-code development platforms, o NCDPs, y a todo un movimiento encuadrado en la denominación No Code.

Cada vez más compañías, particularmente startups con la capacidad de diseñar sus sistemas desde cero, ponen en marcha sus actividades mediante el desarrollo de estructuras basadas en código escrito por terceros o tomado de repositorios y plataformas, que es ensamblado en piezas para obtener la funcionalidad deseada. Algunos afirman que la pandemia de coronavirus y el incremento del trabajo distribuido se han convertido también en un incentivo para la adopción de este tipo de plataformas y herramientas. El pasado mes de junio, Amazon lanzó su plataforma Honeycode, que permite diseñar y construir aplicaciones a partir del ensamblaje de módulos de diversos tipos. En el mismo sentido, Salesforce ofrece Lightning App Builder, Google tiene App Maker, Microsoft ofrece Flow y Power Apps, o podríamos considerar herramientas de construcción de páginas como WordPress, de automatización de tareas como IFTTT, o muchas más.

¿Son las plataformas de tipo low code o no code el futuro? En realidad, plataformas de ese tipo siempre han estado, a ciertos niveles, entre nosotros. En su momento, mis primeras páginas web las construí, como mucha gente, con herramientas visuales como FrontPage o Dreamweaver que no requerían prácticamente ningún conocimiento de programación, y que en muchos sentidos, me enseñaron a entender mucho más sobre lo que había detrás de una página web o sobre los comandos que soportaban determinadas funcionalidades.

Para muchos, la idea de poner herramientas de este tipo en manos de usuarios incapaces de revisar el código que generan resulta poco sostenible, y terminaría por dar lugar a sistemas tipo Frankenstein con piezas muy difíciles de mantener, de evolucionar o de actualizar, además de suponer potencialmente más problemas de seguridad derivados tanto del escaso conocimiento de sus responsables, como de la posibilidades de aparición de vulnerabilidades derivadas de la propia plataforma, que podrían ser explotadas en todas las aplicaciones construidas a partir de ellas.

Otros afirman que ese tipo de herramientas servirán para asistir a los desarrolladores en la construcción y mantenimiento de sistemas en entornos cada vez más complejos y más difíciles de dominar por una sola persona, y que el papel y las responsabilidades de los que hoy son programadores se elevarán en consecuencia hacia tareas de supervisión y de otros tipos.

De un modo u otro, hablamos de poner la posibilidad de diseñar y construir sistemas en manos de muchísimas más personas, con todo lo que ello podría llegar a tener en términos de potencial de disrupción, y todo indica que, en función de la evolución de la tecnología, la idea de describir una funcionalidad en palabras o mediante diagramas a una máquina para que construya a partir de esa descripción el código necesario será algo que termine siendo posible, una simple cuestión de tiempo. De ahí a que eso signifique que los actuales programadores se vayan al paro, o que de verdad cualquiera pueda construir un sistema con una complejidad elevada simplemente mediante menús y clics, va todo un salto conceptual que, por el momento, no me parece en absoluto sencillo ni realista.

Puedes leer el artículo original aquí.

*Texto íntegro e imágenes, publicados gracias a licencias Creative Commons

Las opiniones expresadas son sólo responsabilidad de sus autores y son completamente independientes de la postura y la línea editorial de Entremás.mx.