Usé ChatGPT para escribir la misma rutina en estos diez lenguajes de programación oscuros

imagen9.jpg

Hace unas semanas, eché un vistazo a cómo usar ChatGPT para escribir la misma rutina en una docena de los lenguajes de programación más populares. Pero como entusiasta de los lenguajes de programación, me pregunté hasta qué punto llegaría ChatGPT. ¿Programaría en un lenguaje de la década de 1950? ¿Programaría en un lenguaje que utilizara su propio conjunto de caracteres? ¿Podría escribir código en uno de los lenguajes que escribieron su código?

También: Los mejores chatbots de IA: ChatGPT y alternativas para probar

Y así, me sumergí. He utilizado muchos de los lenguajes que estoy destacando aquí, así que daré un pequeño paseo por el recuerdo e incluiré algunas historias sobre mi experiencia con aquellos que he usado.

Aunque no he ejecutado el código en sí, he leído todos los programas generados. La mayoría parecen correctos y muestran los indicadores adecuados que nos dicen que el lenguaje presentado es el que solicité.

Te lo digo porque los encabezados en todas las capturas de pantalla están mal. La mayoría están listados como SQL. Por alguna razón, BAL se muestra como VBNet y Prolog se lista como Rust. ChatGPT no cometió este error la última vez, pero lo hizo hoy, para todos los lenguajes que se muestran aquí.

Y con eso, vamos a sumergirnos.

Fortran

Fortran (o FORTRAN, como se representaba en aquel entonces) significa Traducción de Fórmulas. Fue desarrollado principalmente para cálculos científicos e ingenieros. Aunque se remonta a la década de 1950, a menudo era el primer lenguaje que se enseñaba a los estudiantes de ingeniería en los años 1970 y 1980.

También: Esta nueva tecnología podría revolucionar GPT-4 y todo lo similar a él

Para mí, fue mi cuarto lenguaje de programación, después de BASIC, lenguaje ensamblador PDP-8 y binario PDP-8 (sí, escribía código binario para ingresarlos en el panel frontal de una minicomputadora temprana). Mi padre amablemente me llevó en coche durante una hora hasta el Newark College of Engineering (ahora NJIT) para que pudiera cursar su curso de programación del primer año mientras aún era estudiante de segundo año en el instituto.

Fortran nunca fue un favorito, aunque podría realizar la mayoría de los trabajos orientados al cálculo. Todavía se utiliza una variante de Fortran en la actualidad, pero está bastante limitada a trabajos científicos especializados, ya que muchos otros lenguajes modernos realizan análisis a nivel de Fortran y lo hacen mejor.

Aquí, debido al uso de la palabra clave implicit, parece que ChatGPT representa código escrito en la variante de Fortran-77.

imagen7.jpg

COBOL

Yo era un programador COBOL adolescente. En ese momento no conocía COBOL, pero alrededor de 1980 vi un anuncio de trabajo para un programador COBOL en el Centro de Datos Regionales del Noreste de International Paper en Denville, NJ. Estaba a unos 40 minutos de la casa de mis padres y necesitaba un trabajo de verano. Tan pronto como logré programar una entrevista, corrí a la librería local y pasé un fin de semana devorando todo el material de lectura sobre COBOL que pude encontrar.

COBOL estaba destinado al procesamiento orientado a los negocios. Hoy en día, los mismos tipos de clientes serían usuarios de SAP o Salesforce. Pero COBOL, como se puede ver en el código COBOL-88 a continuación, era funcional, pero ciertamente no era elegante.

Resulta que querían un empleado a tiempo completo. Pero como saqué sobresaliente en su prueba (aparentemente mi fin de semana de estudio superó las puntuaciones de los profesionales que aplicaron), decidieron ponerme a trabajar durante el verano. Decir que había una discrepancia cultural sería quedarse corto. Estos eran los primeros días de las microcomputadoras (piense en la era pre-PC) y yo disfrutaba al máximo de esas cosas. Mientras tanto, estas personas estaban totalmente metidas en los trajes y corbatas y los gigantescos centros de datos. Casi de inmediato, me pusieron el apodo de "Trouble". Oye, aún era un niño.

El momento definitivo para mí llegó cuando uno de los programadores más experimentados de la empresa me llevó a un lado para explicarme, y cito, "COBOL es la vida". Tomé ese mensaje muy en serio y decidí que no quería que mi vida fuera sobre COBOL. Ese verano fue la última vez que programé algo en COBOL.

imagen11.jpg

RPG (Report Program Generator)

No, no es un lanzagranadas o un juego de rol. RPG era un programa para crear informes. Puedes ver la evolución en el lenguaje (y el pensamiento del lenguaje informático, en general) entre las dos versiones mostradas a continuación. RPG II se remonta a finales de la década de 1950. RPG IV se actualizó en la década de 1990 y es considerablemente más moderno (pero aún definitivamente anticuado).

En la universidad, trabajé como freelancer y escribí algunos programas RPG III para el AS/400, pero nunca fue algo a lo que me dediqué intensivamente.

imagen3.jpg

Lisp

Tengo una larga historia de amor con Lisp. Lisp, llamado así por LISt Processor, a veces se describía como Un Montón de Paréntesis Insípidos y Estúpidos. Por alguna razón, esos paréntesis hicieron clic en mi cerebro. Lisp fue mi puerta de entrada a la programación de IA, y como hemos aprendido de la forma en que ChatGPT procesa el lenguaje, el conocimiento puede ser representado como cadenas de palabras, o listas.

En los años 80, fui gerente de producto de una implementación de Common Lisp basada en RISC, y codifiqué en ella durante un tiempo. Basándome en la sintaxis de defun greeting y let generada por ChatGPT, parece que el código a continuación también es Common Lisp, una variante posterior de la implementación original de Lisp de John McCarthy de finales de los años 50. McCarthy fue uno de los padres fundadores de la investigación en IA, por lo que es apropiado que una IA escriba en su lenguaje.

imagen4.jpg

Algol

ALGOL (Lenguaje ALGOrítmico) estaba adelantado a su tiempo. Permitía el paso de funciones como parámetros y permitía el uso de recursión. Estos son dos componentes clave de la programación moderna que estaban ausentes en lenguajes populares como Fortran y COBOL, que eran populares en la misma época de la introducción de ALGOL.

Si Fortran, BASIC y lenguaje ensamblador me enseñaron la programación de arriba hacia abajo, ALGOL me enseñó cómo estructurar mi código. Fue un lenguaje fundamental que sentó las bases para mi uso de C, Pascal, Java, JavaScript y la mayoría de los lenguajes estructurados modernos que usamos hoy en día.

imagen5.jpg

Simula

Simula, como puedes imaginar, fue desarrollado para simulación y modelado. Al igual que ALGOL, Simula también estaba adelantado a su tiempo, soportando el uso de objetos y clases. La programación orientada a objetos desde entonces se ha convertido en fundamental para muchos de los lenguajes de programación más efectivos en la actualidad.

El uso de la palabra clave OUTFIX me indica que ChatGPT probablemente escribió el siguiente código en Simula-67.

imagen6.jpg

BAL (lenguaje ensamblador IBM 360/370)

BAL, que significa "lenguaje de ensamblador básico", era el lenguaje de ensamblador de los grandes ordenadores de IBM en las décadas de los 70 y 80. El lenguaje de ensamblador se considera más "de nivel inferior" que los "lenguajes de nivel superior", lo que significa que las instrucciones y palabras clave individuales se asignan a instrucciones de procesador individuales. En los lenguajes de nivel superior (como la mayoría que utilizamos hoy en día), el lenguaje está a menudo muy alejado de la arquitectura de la máquina subyacente y está diseñado más para la eficiencia de la programación que para el uso eficiente del hardware.

Tomé un semestre de BAL en la universidad. Fue duro. El profesor pasaba la mayoría de los días de pie con la espalda hacia los estudiantes, murmurando su conferencia en un tono monótono, mientras escribía sin parar en la pizarra. Me senté en la última fila junto a una chica llamada Laura. Un día, Laura y yo decidimos escaparnos por la ventana trasera para tomar café. Una vez que conseguimos nuestro café, trepamos de nuevo por la ventana. El profesor nunca se dio cuenta.

Es una maravilla que alguno de nosotros haya aprobado, pero no es de extrañar que prácticamente ninguno de nosotros haya elegido la programación en BAL como nuestra arma de codificación preferida.

imagen8.jpg

APL

APL, o A Programming Language, es otro lenguaje de programación. Uno de los aspectos más llamativos de APL es que utiliza un conjunto de caracteres no estándar para algunos de sus operadores y codificación. Puedes verlo en la imagen de abajo. Los pequeños glifos son los que ChatGPT pudo recuperar de la fuente que estaba utilizando, pero APL está diseñado para usar la fuente Unicode APL385, que es única para programar en APL.

Debido a su sintaxis concisa y a su capacidad para manejar grandes conjuntos de datos, se utiliza en un buen número de proyectos científicos, financieros y analíticos.

imagen10.jpg

Prolog

Prolog (que deriva de la frase Programación en Lógica) es otro lenguaje centrado en la IA. Prolog es un lenguaje declarativo, que lista reglas y condiciones, para luego ejecutar consultas sobre esas declaraciones. Según ChatGPT:

Prolog es uno de los lenguajes de programación utilizados en el desarrollo de ChatGPT, específicamente para la generación de texto. Se utiliza en el módulo Prolog-to-English, que traduce las formas lógicas en Prolog a frases en lenguaje natural.

imagen1.jpg

Smalltalk

Smalltalk es especial. Fue desarrollado en Xerox PARC, el mismo laboratorio de investigación que influyó en el desarrollo del ratón y los entornos con ventanas. Incorporó algunas de las innovaciones de Simula en la programación orientada a objetos y fue más allá. También fue uno de los primeros lenguajes que hizo uso activo de un entorno de programación interactivo basado en GUI. Muchos de los lenguajes más importantes hoy en día, incluyendo Java, Python y Ruby, fueron altamente influenciados por Smalltalk.

Solo me adentré en Smalltalk, principalmente para conocerlo. Viviendo en Silicon Valley en ese momento, conocí a los diseñadores de Smalltalk, quienes más tarde fundaron ParcPlace Systems, en un intento de comercializar Smalltalk fuera de la rigidez corporativa de Xerox. Tengo muchos recuerdos agradables hablando teoría de programación mientras comía costillas y ensalada de col en un pequeño y descuidado restaurante de barbacoa en Palo Alto.

Uno de los vicepresidentes con los que trabajé en la compañía de computadoras donde estuve empleado intentó convencerme de iniciar una empresa con él para aplicar Smalltalk al mercado empresarial, pero aún no había sido picado por el bicho de las startups. Smalltalk nunca llegó a convertirse en un mercado. Aún así, por mucho que esté feliz con el rumbo que ha tomado mi vida, a veces me pregunto qué habría pasado si hubiera aceptado su oferta.

imagen2.jpg

Tengo pensamientos

No he ejecutado este código, y como no estoy tan familiarizado recientemente con estos lenguajes como lo estoy con PHP y JavaScript, no puedo asegurar que mi revisión visual garantice que el código mostrado arriba se ejecute correctamente. Como vimos a principios de semana con mi exploración de las nuevas habilidades de programación de Bard, es posible escribir código que no funcione correctamente.

También: Le pedí a ChatGPT que escribiera un plugin de WordPress que necesitaba. Lo hizo en menos de 5 minutos

Sabemos que hay al menos un error en cada ejemplo: las cabeceras están mal. Así que aunque la capacidad del AI para generar código en varios lenguajes relativamente oscuros es sorprendentemente genial, no asumas que está haciendo todo el trabajo correctamente.

Si decides incorporar la programación de ChatGPT en tu flujo de trabajo, deberás revisar, probar y depurar el código que genera, tal como lo harías si contrataras a alguien para escribir algunas rutinas básicas para ti.

Artículos relacionados

Ver más >>

¡Desbloquea el poder de la IA con HIX.AI!