Herramientas de IA para codificación: Dificultades iniciales que reflejan revoluciones tecnológicas pasadas

Theregister

A mediados de 2025, el panorama de la IA en la codificación presenta una paradoja notable. Mientras el CEO de GitHub, la plataforma omnipresente para desarrolladores, proclama audazmente que la inteligencia artificial pronto manejará todas las tareas de codificación —y que esto es un desarrollo positivo—, la realidad para muchos programadores que utilizan las herramientas actuales de IA para codificación sugiere una historia diferente. En lugar de impulsar la eficiencia, estas herramientas a menudo disminuyen la productividad, incluso mientras fomentan una creencia errónea entre los usuarios de que están trabajando de manera más efectiva.

Esta desconexión entre las expectativas elevadas y el rendimiento a nivel de base plantea una pregunta fundamental: ¿puede una tecnología que inicialmente obstaculiza a sus usuarios transformarse eventualmente en un activo indispensable? La historia ofrece un paralelismo convincente, sugiriendo que tal cambio no solo es posible sino quizás inevitable. Para comprender esta trayectoria, uno podría remontarse setenta años al trabajo pionero de la Contralmirante Grace Hopper. En 1955, Hopper inició el desarrollo de FLOW-MATIC, el primer lenguaje de computadora de alto nivel diseñado para permitir el procesamiento de datos utilizando comandos similares al inglés en lugar de símbolos complejos. Esta innovación pronto allanó el camino para COBOL, un lenguaje que sigue siendo sorprendentemente prevalente hoy en día.

Hopper, una ex profesora de matemáticas, enfrentó una considerable resistencia a su visión. En 1955, solo unas 88 computadoras electrónicas estaban operativas en los Estados Unidos, lo que hacía que la capacidad computacional fuera un recurso extremadamente escaso y costoso. Era celosamente custodiada por una élite de matemáticos e ingenieros que consideraban que los ciclos de procesamiento y la memoria eran demasiado valiosos para ser “desperdiciados” en la traducción de palabras legibles por humanos a instrucciones de máquina. Veían como inconcebible acomodar a individuos que no quisieran o no pudieran aprender símbolos a nivel de máquina. Hopper, sin embargo, reconoció esta actitud como profundamente limitante, especialmente si la computación alguna vez iba a generalizarse. Su previsión resultó correcta; si bien las limitaciones de recursos inmediatas eran reales, el rápido avance de la tecnología rápidamente hizo que esa crítica específica quedara obsoleta.

Sin embargo, el tema subyacente de la limitación de recursos junto con el pensamiento arraigado persistió, surgiendo con cada salto tecnológico subsiguiente. A medida que las computadoras avanzaban hacia una adopción más amplia, los nuevos avances a menudo introducían sobrecargas de rendimiento iniciales que parecían favorecer las prácticas de programación antiguas optimizadas para la eficiencia bruta. Por ejemplo, el lenguaje de programación C, crucial para el software multiplataforma en las primeras minicomputadoras, fue inicialmente ridiculizado por los programadores de ensamblador como poco más que un “ensamblador de macros disfrazado”. De manera similar, durante la era naciente de las microcomputadoras, la introducción de la representación intermedia (IR) —donde un compilador primero genera un formato común que luego se traduce a código ejecutable a través de una máquina virtual— se encontró con escepticismo. Las primeras implementaciones de IR como el P-code de Pascal y el bytecode de Java eran notoriamente lentas, lo que llevó a chistes sobre el rendimiento indistinguible de un programa C bloqueado versus una aplicación Java en ejecución.

La supervivencia y eventual ubicuidad de Java se debieron en gran parte al crecimiento exponencial de la capacidad de procesamiento predicho por la Ley de Moore y el auge de las redes omnipresentes. Hoy en día, la IR es una piedra angular del desarrollo de software moderno, ejemplificada por tecnologías como LLVM, e incluso el propio C ahora funciona como una IR en compiladores para lenguajes como Nim y Eiffel. Esta abstracción en capas es fundamental para el mundo de la codificación interconectado, rico y potente que habitamos.

Esta progresión histórica demuestra que un aumento de la abstracción, aunque a menudo introduce obstáculos iniciales de rendimiento, en última instancia desbloquea una mayor complejidad y capacidad. De hecho, gran parte del código que se ejecuta en silicio en la TI convencional hoy en día nunca es directamente tocado o incluso visto por manos humanas; es generado y optimizado por máquinas, a menudo a través de múltiples transformaciones.

Esto nos lleva a la IA. Las herramientas actuales de inteligencia artificial en la codificación enfrentan un triple desafío: su propio nombre, la exageración que las acompaña y sus exigentes requisitos de recursos. La IA, en su esencia, sobresale en el análisis e inferencia de datos sofisticados; no es “inteligente” en el sentido humano, y etiquetarla como tal establece expectativas poco realistas. Si bien es altamente efectiva para tareas bien definidas y específicas, la IA a menudo se comercializa como una solución universal, lo que alimenta aún más el escepticismo y refuerza las actitudes arraigadas. La incomodidad actual proviene de las vastas demandas de recursos, particularmente para entrenar grandes modelos de IA, que a menudo están fuera del alcance de todos, excepto los mayores proveedores de la nube. Esto, junto con modelos de negocio cuestionables, crea un entorno donde el desarrollo de herramientas de IA para codificación verdaderamente efectivas es un desafío, convirtiéndolas en una bendición a medias en sus primeras etapas.

Sin embargo, esta situación está destinada a cambiar, siguiendo el patrón histórico. Como Grace Hopper tan claramente entendió, eliminar las barreras entre el pensamiento humano y la ejecución tecnológica acelera el progreso. La IA en la codificación está a punto de hacer precisamente eso. A medida que la tecnología madure y las restricciones de recursos se alivien, la contribución humana principal se desplazará hacia una previsión, diseño y una articulación más clara de los resultados deseados —disciplinas que actualmente a menudo están subdesarrolladas. Es un cambio que recuerda a un viejo chiste de programación: cuando las computadoras puedan programarse en inglés escrito, descubriremos que los programadores no saben escribir inglés. Con suerte, el implacable avance del progreso tecnológico hará que esa observación sea tan obsoleta como la resistencia inicial a los lenguajes de alto nivel.