¿Pueden los desarrolladores reducir el costo total de propiedad del software con IA?

¿Pueden los desarrolladores reducir el costo total de propiedad del software utilizando IA?

Han quedado atrás los días en que comprabas un cartucho de Nintendo y nunca actualizabas el software en él. El mundo ha cambiado y también lo ha hecho el software.

En lugar de vivir en su propia caja pequeña (impresionante) gris y negra, el software ahora vive en máquinas interconectadas. Tiene que reaccionar al cambio, tiene que adaptarse por diferentes razones. Ya sea una actualización de seguridad frente a un nuevo ataque o una actualización de funciones para mantenerse al día en este ecosistema cambiante. El software tiene que actualizarse, tiene que mantenerse. El código tiene que ser reescrito, las dependencias tienen que ser actualizadas, las aplicaciones tienen que ser redeployadas.

Esto no es gratuito. Existe un costo continuo para mantenerlo desplegado y siga proporcionando valor. Y cuanto más código tengas que mantener, mayor será el costo, por eso a menudo se elimina código. Ahora la pregunta es: ¿Por qué eliminarías código que proporcionó valor? ¿Dónde está el valor en el código?

Evolución del Código y el Ecosistema de Desarrollo

Para entender el valor del código, necesitamos hablar de la abstracción. La mayoría de los desarrolladores no codifican con 0 y 1, o incluso de 0 a f (algunos todavía lo hacen). En su lugar, los lenguajes de programación han evolucionado para permitir a los desarrolladores usar palabras reales en lugar de 0 y 1. El hardware ha evolucionado para abstraer en silicio lo que los desarrolladores tendrían que haber escrito. Los lenguajes de programación han evolucionado con el tiempo, y siguen evolucionando hacia niveles más altos de abstracción para facilitar la vida de los desarrolladores. Pasamos de lenguajes de máquina de bajo nivel (lenguaje de primera generación o 1GL) a ensamblador (segunda generación o 2GL) a lenguajes de alto nivel más abstraídos (3GL) como C o Java a lenguajes más específicos de dominio (4GL) como R, SQL o PL/SQL a lenguajes basados en lógica/restricciones (5GL) como Lisp, OPS5 o Mercury. La idea es que cada generación abstrae más complejidad del desarrollador. Los lenguajes de quinta generación (5GL) se basan en la IA para crear solucionadores basados en problemas y condiciones establecidas.

Los ecosistemas de desarrollo han evolucionado al mismo ritmo que los lenguajes de programación. Los desarrolladores no comienzan desde cero al iniciar un nuevo proyecto. Utilizan bibliotecas, dependencias, bases de datos, plataformas de datos, código bajo/nulo. Utilizan y se relacionan con el software existente. Cualquier cosa que abstraiga el código, cualquier cosa que signifique que al final, sigan proporcionando el mismo nivel de características con menos código escrito.

Reduciendo el costo total de propiedad (TCO) y mejorando el mantenimiento

Comenzar desde cero sería prohibitivamente caro. Siempre recuerdo esta historia de la tostadora. Thomas Thwaites decidió crear una tostadora desde cero sin ninguna de nuestras abstracciones existentes. Hizo todo él mismo, desde extraer mineral hasta fundirlo y hacer todo lo demás necesario para construir una tostadora. Al final, la tostadora no funcionó y costó una cantidad absurda de tiempo y dinero. Se necesita toda una civilización para construir una tostadora. El software es igual (aunque tal vez no estemos en ese punto todavía). Si quieres proporcionar valor, utilizas abstracciones. Menos código escrito significa menos código que mantener, lo que resulta en menos gastos para mantenerlo, lo que significa un menor TCO.

El trabajo de un desarrollador es escribir código “heredado”. Si tienes código heredado que aún se ejecuta en algún lugar, felicidades, has proporcionado y sigues proporcionando valor. Una de las mejores formas de hacerlo es elegir sabiamente tu ecosistema de herramientas y dependencias o tus abstracciones. Utilizar una plataforma de datos en la nube moderna que admita varios tipos de cargas de trabajo y siga proponiendo nuevos es una apuesta segura. Porque cambiar de base de datos en el camino es costoso, no se trata tanto de mover los datos; se trata de reescribir el código y mantener cosas nuevas. Y todos sabemos ahora que cuanto más código escribes, mayor es el costo de mantenimiento.

Impacto de la IA en el desarrollo de software

¿Qué tiene que ver esto con la IA? Ha habido mucha emoción por los modelos de lenguaje grandes (LLMs) y hemos visto aparecer nuevas herramientas y prometer escribir código por ti. Si bien esto puede reducir el costo inicial del desarrollo de software, ¿es esto realmente lo que los desarrolladores/organizaciones/equipos quieren? ¿Cuál es el costo de tener más código escrito que puede o no hacer exactamente lo que pedimos y que no ha sido escrito por nadie en el equipo? ¿Qué tan desafiante sería mantener esto cuando podría haber sido abstracto mediante la herramienta adecuada, la biblioteca adecuada? ¿Qué tan caro se volverá eso?

Ten en cuenta que la IA generativa de código es una generadora de deuda técnica para 3GL, por ahora. Esto puede cambiar en el futuro a medida que se vuelva más precisa y mejore en el uso de las abstracciones existentes y los ecosistemas circundantes. Pero en este momento, no está generando un valor añadido; es todo lo contrario. Tienes tantas formas de escribir código Scala como desarrolladores Scala (con 3GL, estarías generando mucha “cola” o código de boilerplate, código que ayuda a interconectar las abstracciones que estás usando, o incluso que reemplaza lo que podría/debería haber sido otra abstracción, otra dependencia).

En este momento, es más interesante mirar las existentes 5GL o utilizar la IA generativa para 4GL, especialmente las que están vinculadas a restricciones de dominio, como SQL. SQL es una gran opción para la IA generativa porque la sintaxis es más sencilla. SQL es SQL. No necesitas mantener el código SQL tanto como lo harías con 3GL. Y al generar código SQL, el valor es directamente valor de dominio, valor de negocio. Ese es el aspecto más importante. SQL es el punto intermedio entre 3GL y 5GL. Todavía es un lenguaje de programación como 3GL. Aún puedes expresar lo que deseas en lugar de los problemas y restricciones que tienes como lo harías con 5GL. Hay una razón por la cual cada repositorio de datos termina utilizando SQL. Y por qué SQL sigue siendo actualizado con nuevas características, como estamos haciendo en Couchbase.

Conclusión

Si estás buscando reducir tu TCO, elige las abstracciones correctas. Y si estás buscando que la IA generativa reduzca tu TCO escribiendo código por ti, piénsalo dos veces y asegúrate de utilizarla con 4GL.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Los exámenes no supervisados en línea proporcionan evaluaciones válidas

Jason Chan y Dahwi Ahn de la Universidad de Iowa State encontraron que las calificaciones en línea y no supervisadas ...

Inteligencia Artificial

Investigadores del MIT presentan LILO un marco neuro-simbólico para aprender bibliotecas interpretables para la síntesis de programas

Los grandes modelos de lenguaje (LLMs) se están volviendo cada vez más expertos en programación en varios contextos, ...

Inteligencia Artificial

¿Dónde ocurre la IA?

¿Hacia qué sector deberían dirigirse los investigadores en ciernes? ¿La academia o la industria?

Inteligencia Artificial

El avance de la inteligencia artificial de IBM traducir COBOL a Java ahora es fácil

El mundo de la tecnología está en constante evolución, y IBM lidera la carga con una innovadora solución de IA que po...

Inteligencia Artificial

¿Pueden los robots cuadrúpedos de bajo costo dominar el parkour? Revelando un revolucionario sistema de aprendizaje para el movimiento ágil de robots

La búsqueda de hacer que los robots realicen tareas físicas complejas, como navegar por entornos desafiantes, ha sido...