El final del software genérico

Estándar

La ingeniería de software durante décadas giró alrededor de la idea de que escribir código bueno es caro, por eso hay que escribirlo una vez y que sirva para el mayor número de casos posibles. Debido a ello la mayor parte de nuestro trabajo se centró en frameworks genéricos, librerías de propósito general y arquitecturas pensadas para cargas de trabajo variadas. La optimización fina, especializada, sólo podía ser pagada en proyectos que tengan el presupuesto para pagarle a un especialista en optimización de rendimiento, por periodos cortos.

Estamos viviendo el momento en que esa ecuación de costos se está rompiendo, Dan Luu lo planteaba hace poco en un artículo sobre programación asistida por IA: las tareas de optimización que antes exigían días o semanas de una persona experta ahora se resuelven en minutos, simplemente describiendo el problema a un agente, dando como resultado que el costo de optimizar disminuya en varios órdenes de magnitud, cambiando el criterio a aplicar para decidir qué conviene construir/desarrollar ahora.

La observación central del artículo, que Luu atribuye a Marc Brooker, es la siguiente: en vez de escribir software genérico y esperar que tenga un rendimiento razonablemente bien en todos los casos, ahora tiene más sentido escribir software dinámico, especializado y ajustado a una carga de trabajo particular; es la misma lógica que usaba la escena demo en los 90’s, cuando los programadores exprimían las máquinas de la época porque conocían exactamente el hardware sobre el que ejecutaban lo que programaban. La diferencia es que antes, ese nivel de especialización casi artesanal (en el sentido de que esos demos eran piezas únicas, con detalles irrepetibles) estaba reservada a esos programadores virtuosos «hardcore programmers», pero hoy es una opción disponible para cualquiera que sepa pedirla.

Entonces se plantea un cambio en el tipo de código conviene escribir, si por ejemplo «tunear» un motor de búsqueda para una carga de trabajo específica ahora toma una tarde en lugar de un mes, ya no tenemos por qué conformarnos con la solución general que sirve para todos los casos, «más o menos bien», se puede pedir la versión que sirve para tu caso específico, «bien». Por eso es que las empresas que operan a escala y que pueden pagar tokens para permitirse optimizar sus soluciones para las cargas de trabajo reales de sus clientes, estan evolucionando hacia un software cada vez más a medida y cada vez menos genérico.

El propio Luu delimita con cuidado la idea, porque la IA todavía es mala diseñando experimentos abiertos sin guía humana adecuada, el sobreajuste (overfitting) sigue siendo un riesgo real si no hay buena validación, y los problemas que requieren juicio y experiencia, no solo velocidad, siguen necesitando intervención humana (Human In The Loop), pero aún así, el trabajo que antes era escaso y costoso ahora es mucho más barato y rápido; si antes era la excepción, ahora es la regla por default.

Si quieren leer el artículo original de Dan Luu, está acá: danluu.com/perf-opt.

Y como les mencioné la escena demo, si quieren revivir la nostalgia de los 90’s, no se pueden perder Second Reality de Future Crew, uno de los demos más icónicos de la historia: Future Crew – Second Reality (1993) [60fps].

Saludos!

Deja una respuesta