Tecnología

El pensamiento computacional es la nueva programación

Khalaf nos recuerda que los humanos siempre hemos deseado comunicarnos con las computadoras con la misma naturalidad con la que lo hacemos entre nosotros.

Un sándwich de mantequilla de maní y mermelada de uva sobre una tabla de cortar de madera Getty

La IA se ha expandido enormemente. Sabemos que la IA generativa ya se ha vuelto omnipresente. Aumenta, asiste e incluso reemplaza lo que hacemos. El director ejecutivo de la compañía GPU, Jensen Huang, declaró a principios de este año que «el inglés es el nuevo lenguaje de programación» y herramientas como Codex y Claude Code generan aplicaciones y resuelven problemas de GitHub. Con la creciente prevalencia de las aplicaciones digitales, algunos creen que el valor de las habilidades de programación podría estar desapareciendo.

Entonces, ¿la codificación y la escritura en vibración son ahora el estándar de facto… y la codificación en sí está muerta y enterrada?

La Dra. Rania Khalaf es directora de IA en WSO2, empresa de desarrollo de aplicaciones y gestión de identidades y accesos. Khalaf nos recuerda que los humanos siempre hemos deseado comunicarnos con las computadoras con la misma naturalidad con la que lo hacemos entre nosotros. Desde las tarjetas perforadas hasta los indicadores de DOS, las interfaces gráficas de usuario y el ratón, cree que hemos avanzado mucho. Pero desde que el mundo tuvo su momento ChatGPT, incluso Alexa y Siri se sienten anticuadas. Por otro lado, la programación de computadoras ha evolucionado del ensamblador a los lenguajes de alto nivel… y ahora a la «codificación por vibración».

La codificación del futuro es híbrida

 A primera vista, parece que nos enfrentamos a una disyuntiva: usar lenguaje natural o código tradicional para crear aplicaciones digitales. Sugerir que la programación está muerta atrae clientes, pero es engañoso”, declaró Khalaf ante la prensa y analistas en un simposio de programación. “El futuro es, de hecho, híbrido: una fusión de codificación simbólica y determinista con lenguaje descriptivo y no determinista. Debemos enseñar y aprender ambos, desde los fundamentos de la computación, las construcciones de codificación y la arquitectura de sistemas, junto con una comprensión clara del lenguaje y de cómo guiar sistemas generativos”.

Luego, lanza lo que podría ser la frase clave de esta discusión: «La incitación por sí sola es frágil», una conclusión que quizás muchos no han considerado. Pero ¿cómo se valida esta sugerencia?

La ingeniería de indicaciones surgió como una forma, basada puramente en lenguaje natural, de inducir a los sistemas a exhibir el comportamiento requerido. McKinsey la denomina la práctica de diseñar entradas para herramientas de IA que produzcan resultados óptimos. IBM afirma que la ingeniería de indicaciones es crucial porque influye directamente en la calidad, la relevancia y la precisión de los resultados de la IA generativa. «Una indicación bien elaborada ayuda a garantizar que la IA comprenda la intención del usuario y produzca respuestas significativas, minimizando la necesidad de un posprocesamiento exhaustivo», señala Vrunda Gadesha, promotora de IA en IBM.

Khalaf dice que la ingeniería rápida ya está siendo reemplazada por el concepto más amplio de “ ingeniería de contexto ”, que requiere una comprensión más profunda de la programación porque afecta a los subsistemas, herramientas y fuentes externas en juego.

Enfoques como DSPy combinan la codificación determinista con las indicaciones, permitiendo a los usuarios crear canales programáticos optimizables en torno a los bloques de construcción de las indicaciones. Nuestro trabajo en Programación Natural introduce expresiones y funciones naturales en un lenguaje de programación de propósito general, lo que permite elegir entre lenguaje natural o código en diferentes partes del programa, según lo que mejor se adapte a la lógica que se desea expresar —explicó Khalaf—.

Ella cree que el nivel de abstracción se está elevando de nuevo. La lógica de los programas ahora es una combinación de código, lenguaje natural y, eventualmente, imágenes y audio.

Esta evolución proporciona una herramienta adicional. Si creciste en una cultura multilingüe, es como cuando buscas la frase en el idioma que mejor expresa tu intención… lo mismo puede hacerse con la programación. Por lo tanto, es evidente que la programación se está convirtiendo en un proceso colaborativo entre humanos y máquinas, lo que resulta en artefactos multilingües que combinan prosa y código.

Lecciones de mantequilla de maní y mermelada

Una vez guié a un grupo de estudiantes en una escuela de Nueva York en el famoso ejercicio del sándwich de mantequilla de cacahuete y mermelada, que se viralizó en este video de YouTube . Los participantes escriben una serie de instrucciones que, al seguirlas al pie de la letra, deberían dar como resultado un sándwich de mantequilla de cacahuete y mermelada comestible. Es más difícil de lo que parece, y muestra la brecha entre la intención y la ejecución, dijo Khalaf.

Ella hace referencia a Edsger Dijsktra, uno de los fundadores de la informática moderna, quien escribió lamentando “ la locura de la programación en lenguaje natural ”, afirmando que “cuando todo está dicho y contado, la ‘naturalidad’ con la que usamos nuestras lenguas nativas se reduce a la facilidad con la que podemos usarlas para hacer declaraciones cuyo sinsentido no es obvio”.

“Imagina expresar un algoritmo o una prueba con palabras en lugar de matemáticas (o código). Es tedioso. Por eso, los programadores pueden mostrarse reacios a escribir ciertas tareas en el lenguaje natural utilizado para generar código y prefieren escribirlo ellos mismos. Por otro lado, los modelos de IA generativa funcionan mucho mejor en ciertas tareas con una mínima intervención”, aclaró Khalaf. “Por ejemplo, resumir un artículo, analizar la opinión en un texto o responder preguntas sobre un corpus que conocen. Escribir esa lógica desde cero en código es tedioso, y sería preferible usar un modelo de IA generativa. También puede ser preferible en situaciones donde el modelo puede generar todos los detalles necesarios a partir de una descripción de alto nivel y el desarrollador puede comprender, depurar y mantener el programa resultante. De nuevo, vemos que el futuro de los sistemas de programación es híbrido: una mezcla de código y prosa”.

La ilusión de la fluidez

A la luz de estas observaciones, quienes desarrollan programas a cualquier nivel ahora necesitarán comprender ambos y seguirán necesitando aprender a programar, pero es probable que cambie la forma en que aprenden y qué aprenden exactamente. Cuando creamos un programa sin tocar ni ver el código, creamos una ilusión de fluidez en nuestras mentes. Quizás podamos poner algo en marcha, pero sin comprender cómo funciona ni por qué hace lo que hace.

A la hora de cambiar algo, solucionar un problema o tomar decisiones sobre los sistemas subyacentes o las necesidades de calidad del servicio, Khalaf insiste en que el creador se encuentra en un punto muerto. La sugerencia es que los estudiantes con esa (falta de) comprensión pueden, de hecho, crear código más rápido, pero les cuesta avanzar en los siguientes pasos o explicar cómo se comportará su aplicación en determinadas situaciones.

Khalaf menciona una exposición en apoyo a la programación, realizada por autores de la Fundación Raspberry Pi, que explica que aprender a programar va más allá de la alfabetización informática, para proporcionar lo que ahora llaman «agencia digital», ayudando a las personas a moldear y participar en el mundo digital en lugar de simplemente dejarse influenciar por él. Cuando se estudia ingeniería de software, la formación en programación no solo abarca conceptos de codificación; también requiere comprender cómo descomponer un problema en sus componentes y cómo ser lo suficientemente específico para que la solución pueda implementarse.

Prosa y código combinados

“Creo que estas son habilidades para la vida que sustentan un sólido enfoque de pensamiento sistémico para la resolución de problemas. En resumen, el pensamiento computacional es más importante que la mera capacidad de programación”, afirmó Khalaf.  La IA será tan integral para el software como lo son hoy los datos y las API. El futuro ingeniero de software también será ingeniero de IA. Pero este puesto exige una combinación excepcional: fluidez tanto en prosa como en programación. Los desarrolladores con formación en STEM pueden tener dificultades para escribir; los graduados en humanidades pueden temerle a la programación. Para superar esto, las universidades están considerando currículos de informática dentro de los programas de humanidades”, concluyó Khalaf.

El desarrollo de aplicaciones de software está experimentando una clara transformación fundamental. El panorama se está ampliando, poniendo la creación al alcance de más personas. Los defensores y evangelistas de la tecnología creen que podemos estar seguros de una verdad inmediata: el futuro es híbrido, es decir, humanos que saben programar, escribir y colaborar con la tecnología.

Al igual que un sándwich de mantequilla de cacahuete y mermelada, el futuro del desarrollo de aplicaciones de software parece ser una amalgama de dos ingredientes muy atractivos. Ah… y antes de que preguntes, cremoso con uva, ¿no?

Preparación de sándwiches de mantequilla de maní y mermelada
Preparación de sándwiches de mantequilla de maní y mermelada, vista superior con espacio de copia
Getty

Artículos relacionados