Bitácora de fernand0 Cambiando de aires

Informática: ¿programas o herramientas?

Alfarería

Vivimos tiempos interesantes (¿cuándo hemos dejado de vivirlos?). Ahora, gracias a los distintos servicios de IA, se empieza a detectar una tendencia muy llamativa: los programas para uno solo o la informática verdaderamente «personal». Claro que esto tiene sus matices: aunque se suele decir que cualquiera sin conocimientos puede crear lo que sea, la realidad es que siguen haciendo falta ciertas habilidades para sacar partido a estas tecnologías y obtener herramientas confiables. Sin embargo, no cabe duda de que se ha abierto el campo a una nueva ola de potenciales creadores de software.

Por eso me gustó leer Malleable software. Restoring user agency in a world of locked-down apps. Reconozcámoslo: tradicionalmente, una de las barreras para informatizar las ideas de los usuarios pasaba por el departamento de informática. En el mejor de los casos, implicaba conseguir presupuesto y a alguien dispuesto a llevar nuestro proyecto adelante; en el peor, intentar que el informático asignado priorizara nuestra solicitud para añadir la funcionalidad que se nos había ocurrido.

Esto se traduce en que no tenemos programas personales, sino aplicaciones concebidas porque alguien consiguió vendérselas a un número suficiente de usuarios para que fuera rentable. Programas que vienen dados de una manera concreta: cerrados e intocables.

The original promise of personal computing was a new kind of clay—a malleable material that users could reshape at will. Instead, we got appliances: built far away, sealed, unchangeable.

Sin embargo, esta nueva generación de herramientas nos abre la puerta a una forma distinta de hacer las cosas: los usuarios podrían fabricarse sus propios programas y adaptarlos a sus necesidades. El miedo y la dificultad para modificar el software desaparecerían porque ahora resulta mucho más fácil y cómodo. Es lo que el autor llama «programas maleables».

In this essay, we envision malleable software: tools that users can reshape with minimal friction to suit their unique needs. Modification becomes routine, not exceptional. Adaptation happens at the point of use, not through engineering teams at distant corporations.

Pasaríamos, por tanto, al estilo de la web 2.0, a poder crear sistemas informáticos que facilitan e invitan a los usuarios a convertirse en creadores (o, al menos, co-creadores).

What we need instead are computing systems that invite every user to gradually become a creator.

Como un artesano, un cocinero o muchos otros profesionales, uno va construyendo a lo largo del tiempo su propia caja de herramientas, adaptadas a su forma de trabajar.

Over the years, a home cook gradually assembles a combination of knives, cutting boards, and pots and pans, finding the ones that work best for them.

En el mundo de la informática nos encontramos con que la oferta comercial es muy rígida: podemos hacer un montón de cosas, pero siempre que nos adaptemos a las herramientas comerciales a nuestro alcance (si es que tenemos opción de elegir).

These days, we spend more and more of our time in environments built from code, not atoms. We’ve gained many capabilities in this shift—we can collaborate instantly across continents and search thousands of files in an instant. But we’re also losing something important: the ability to adapt our environments and make them our own.

Pero esa misma rigidez genera sus propios problemas: usuarios insatisfechos con la cantidad de trabajo burocrático que exige el sistema informático para dejarnos trabajar (rellenar formularios, cumplir requisitos…). Como recordatorio: Muchos usuarios odian a sus ordenadores.

The rigidity of software isn’t just a minor inconvenience. It can seriously impede people doing important work.

Y tenemos que reconocer que, normalmente, los usuarios no son vistos como una parte central del sistema ni como co-creadores (a veces por culpa de la perspectiva técnica y otras porque los propios usuarios no se implican).

... the tools and infrastructure we use to deploy software treat users as passive recipients rather than active co-creators.

Así que la oportunidad está clara: los sistemas maleables podrían basarse en un ecosistema donde cada persona interesada pueda adaptar las herramientas a sus necesidades.

We call this idea malleable software—a software ecosystem where anyone can adapt their tools to their needs with minimal friction.

El ensayo repasa las opciones tradicionales del usuario (configuración, complementos o plugins, modding…), pero nos saltaremos esa parte.

También aborda el software libre (seguro que a más de uno le ha venido a la mente al leer esto): siempre ha sido posible utilizar programas cuyo código está a nuestra disposición para modificarlo y redistribuirlo. Pero, claro, leer y modificar código exige conocimientos técnicos y un esfuerzo considerable.

Modifying a serious open source codebase usually requires significant expertise and effort.

Un recordatorio de hace años: Jornadas Software Libre: los periodistas, cuando Montserrat Boix nos hablaba justamente de eso. Elegían software libre porque les permitía realizar pequeños cambios que adaptaban el programa a sus gustos (algo tan sencillo como cambiar «usuario» por «usuaria», por ejemplo).

Ahora llega la pregunta clave: ¿nos ayudará la IA a cambiar las cosas?

Finally, it’s worth addressing a hot topic of the moment. Will AI tools automatically make malleable software a reality?

Sabemos que hoy es posible, con ayuda de un sistema de IA, convertir nuestras ideas en un programa ejecutable.

Today, large language models offer a new approach: to take fuzzy ideas expressed in natural language and automatically turn them into code.

Esto parece prometedor, pero hay que ser realistas: el código generado por IA no resuelve todos los problemas por sí solo.

But at the same time, AI code generation alone does not address all the barriers to malleability. Even if we presume that every computer user could perfectly write and edit code, that still leaves open some big questions.

¿Es posible adaptar los programas que ya tenemos en lugar de generar aplicaciones aisladas e independientes? ¿Podrán estas herramientas interactuar con los datos que ya teníamos centralizados?

How can users tweak the existing tools they’ve installed, rather than just making new siloed applications? How can AI-generated tools compose with one another to build up larger workflows over shared data?

Tampoco tendría sentido que todo el mundo invierta tiempo en programar sus propias herramientas desde cero: sería una pérdida de tiempo cuando las soluciones comerciales ya cubren buena parte de nuestras necesidades con solo pequeños ajustes.

Malleable software does not imply everybody creating all of their own tools from scratch. That would be a waste of time, since many off-the-shelf tools are already pretty close to serving our needs, with only minor tweaks needed.

Un enfoque más sensato pasa por utilizar el software existente creado por otros, pero teniendo la libertad de modificarlo cuando descubramos que no se adapta del todo a lo que necesitamos.

A more sensible approach is to start out using existing software tools built by other people or companies, but to have the option of modifying these tools as you discover ways that they don’t meet your needs.

El texto cita el caso de las hojas de cálculo (una de las herramientas favoritas de muchos usuarios, incluso para tareas que deberían hacerse con otro software): se puede empezar simplemente consultando datos o editando celdas de entrada; luego, cambiar el formato o añadir etiquetas, y con el tiempo, modificar fórmulas e incluir nuevas estructuras.

When someone sends you a complex spreadsheet, you can start by just viewing it, or editing a cell marked as an input. Next you might try changing some formatting or add some labels. As you get deeper into using the spreadsheet, you might start tweaking formulas or adding your own new cells.

Es decir, ofrecen un conjunto de herramientas integradas que podemos utilizar a nuestro ritmo, junto con una estética que invita a experimentar y adaptar.

Spreadsheets show us a couple useful qualities for achieving a gentle slope. First, spreadsheets have an in-place toolchain: everyone using a spreadsheet is running the full editor. When you want to dive deeper into modifying a spreadsheet, there’s no need to install or open a separate development environment. Also, spreadsheets often have a scrappy aesthetic. It can feel safer to change a spreadsheet, compared to the pixel-perfect polish of a professionally designed application.

Aunque propone más ejemplos, al avanzar revela el patrón común: sistemas adaptables que incluyen editores con programabilidad opcional.

... follow a similar pattern: a media editor with optional programmability.

Por lo tanto, lo que necesitamos son herramientas y no solo aplicaciones. La diferencia es similar a la que hay entre un cortador de aguacates y un cuchillo: con el cuchillo podemos cortar el aguacate, pero también laminar una pechuga, picar cebolla o chafar un diente de ajo.

A knife can handle all the steps of slicing an avocado, and much more: it can slice a chicken breast, dice an onion, or smash a garlic clove.

Muchas aplicaciones son como esos cortadores especializados: hacen pocas cosas de forma sencilla y eficiente, pero por ese motivo a menudo echamos en falta ciertas funciones… o nos sobran otras.

You may have come across situations where an app is missing some functionality that’s important to you, while simultaneously including extra bits you don’t need.

En la última parte aborda la gestión de datos, la presentación e incluso algunas herramientas concretas, pero el texto se extendería demasiado y seguro que quien tenga interés ya estará consultando el ensayo original.

Creo que volveremos a hablar de esto más adelante.