El mundo moderno se basa en códigos antiguos. Eso es un problema

lenguajes de codificación antiguos
Genevieve Poblano/Tendencias Digitales

"¿Cómo diablos llegamos aquí que literalmente necesitamos programadores COBOL?" preguntó el gobernador de Nueva Jersey, Phil Murphy, en una conferencia de prensa reciente.

Contenido

  • fortran
  • ada
  • Pascal
  • BÁSICO / Visual Básico
  • COBOL

Ante un número sin precedentes de desempleo solicitudes, el estado tuvo que ampliar inmediatamente su plataforma de solicitudes de desempleo de 40 años: una revisión que instantáneamente inició una búsqueda frenética de programadores familiarizados con el lenguaje de codificación de décadas de antigüedad. COBOL.

Vídeos recomendados

Sin embargo, no es sólo Nueva Jersey la que tiene este problema. Muchos de los sistemas bancarios, de defensa y de inteligencia artificial del mundo funcionan con lenguajes de programación que estaban de moda cuando Apple se quedó sin garaje.

La industria tecnológica tiene afinidad por las cosas nuevas y de vanguardia, pero si no fuera por los lenguajes de codificación antiguos como COBOL, Ada, Pascal y Fortran, la industria crediticia, las organizaciones de investigación científica y numerosos sistemas de defensa entrarían en crisis. detener. En otras palabras, sin todo este código antiguo, estaríamos jodidos.

Los lenguajes de programación de cincuenta años todavía calculan millones de transacciones y estadísticas, y sirven como columna vertebral de los sistemas en los que depende el mundo moderno. Por ejemplo, más del 95 por ciento de los cajeros automáticos y el 40 por ciento de los bancos utilizan el código COBOL, según un estudio de 2017. informe de reuters.

Varios de estos antiguos tabuladores todavía realizan muy bien funciones específicas. También hay muchos ejecutivos de negocios que no quieren desmenuzar el software probado que es vital para el negocio de su empresa, por lo que en lugar de revisar y modernizar, simplemente parchean el código antiguo y esperan que mejor.

Luchar con la tecnología antigua no es un fenómeno nuevo. Por ejemplo, California ha desperdiciado cientos de millones de dólares tratando de actualizar su tecnología de nómina y DMV. Sin embargo, la actual pandemia y la consiguiente ola de desempleo han puesto de relieve hasta qué punto la infraestructura de software de Estados Unidos se está desmoronando al igual que la física.

Aquí hay cinco idiomas “antiguos” de los que nuestro mundo depende más de lo que crees, y por qué eso podría ponerte un poco nervioso.

fortran

cubierta manual fortran

Si no fuera por Fortran, muchas de las supercomputadoras y modelos que utilizamos para cosas como la predicción del tiempo, la astrofísica y el análisis estadístico de alto nivel simplemente no funcionarían.

Construido por IBM en la década de 1950, Fortran (abreviatura de Formula Translation) fue uno de los primeros lenguajes de alto nivel que usó palabras en lugar de números e hizo posible que los codificadores escribieran programas un 500% más rápido que cuando usaban una máquina código. Hoy en día no hay tantos desarrolladores que aprendan el idioma.

"Utilizo Fortran todo el tiempo, pero nunca pienso en ello", dice James Howard, científico de datos del Laboratorio de Física Aplicada de Johns Hopkins. Si bien Howard no ha programado en el lenguaje durante años, sus aplicaciones acceden regularmente a las bibliotecas principales de Fortran. Construidos a principios de los años 70, están bien mantenidos y son "increíblemente rápidos".

La última vez que Howard tuvo que escribir un programa en Fortran fue hace unos 10 años. Estaba trabajando en la Reserva Federal y necesitaba mover datos entre dos aplicaciones; uno que fue escrito en C y el otro en Fortran. Los programas dejaron de comunicarse porque el proveedor dejó de proporcionar la biblioteca Fortran.

El programador de 40 y tantos años recordó algo que había leído cuando era niño: que la estructura de llamadas de datos para el lenguaje de programación C es opuesta a la de Fortran. Escribió un guión sencillo para invertir el orden y, listo, la Reserva Federal volvió a funcionar.

perforador fortran

ada

Los programadores gubernamentales se basan en el código base relativamente oscuro de Ada cuando desarrollan sistemas que exigen confiabilidad, como los sistemas de defensa y seguridad. ¿Qué está programado exactamente en él? Bueno, eso es un secreto del gobierno, pero la NASA y Boeing han empleado código basado en Ada en los últimos años para programar satélites y aviones.

El Departamento de Defensa (DOD) supervisó el desarrollo de Ada en la década de 1970 para reducir la cantidad de lenguajes de programación utilizados por el ejército, que en ese momento superaba los 400. Ada fue construida para ser incuestionablemente confiable en situaciones de vida o muerte y fortalecida contra errores del programador. Aunque el texto se adoptó en 1980, el Congreso no ordenó su uso en todos los sistemas gubernamentales hasta 1995. Dos años más tarde, el DOD abandonó el mandato, pensando que sería más barato y más flexible utilizar sistemas actualizados y ampliamente disponibles. Pero todavía está en uso hoy.

Pascal

cartel de pascal
A principios de los años 80, el cartel de Apple Pascal se podía encontrar en toda la oficina de la empresa, dando a los programadores una idea de cómo utilizar el código.

Muchos programadores consideran a Pascal como un lenguaje de programación casi muerto, pero sigue vivo de varias maneras. “Lo creas o no, sigue siendo un idioma muy popular en muchas partes del mundo, pero en los EE. UU., también podrías Estaremos hablando latín”, dice Dave Hatter, quien pasó tres años en una gran compañía de seguros ayudando a actualizar un Millones de líneas de código que estimaban cuánto costaban las pólizas y cuánto pagaban.

Muchos de estos programas más antiguos se escribieron mucho antes de las preocupaciones actuales sobre las violaciones de seguridad y contienen información confidencial confidencial. Hatter, que ahora trabaja como técnico en ciberseguridad, cree que los programas pueden ser relativamente seguros simplemente debido a la “seguridad por oscuridad”: los programadores jóvenes no saben qué hacer con códigos de décadas de antigüedad. "Un hacker de 15 años no tendrá idea de cómo trabajar con algún tipo de mainframe IBM 390 con COBOL", afirma. “Ahora no estoy diciendo que no pudieran aprender. Pero ellos no lo van a saber”.

Pascal fue la base de uno de los primeros sistemas operativos de Apple, y el descendiente del lenguaje, Delphi, todavía tiene fuertes defensores. De hecho, Skype, una de las primeras aplicaciones de videollamadas que obtuvo gran popularidad y uso, se escribió originalmente en Delphi.

BÁSICO / Visual Básico

BASIC no está exactamente en la parte superior de la lista cuando se trata de lenguajes que la gente usa en 2020, pero muchas de las aplicaciones modernas en las que confiamos simplemente no existirían sin él. Por ejemplo, si alguna vez programó una macro de Excel, utilizó una forma de BÁSICO.

BASIC, abreviatura de Código de instrucción simbólica multiusos para principiantes, se lanzó en 1963 en Dartmouth College como una forma de enseñar un audiencia general las teorías y capacidades de la programación: un chapuzón en el agua antes de entrar en lenguajes más sólidos como Fortrán. La popularidad de BASIC aumentó junto con la computadora personal: las computadoras Apple, IBM y Atari tenían sus versiones.

A mediados de la década de 1980, los nerds informáticos autodidactas estaban menos entusiasmados con BASIC y más interesados ​​en programas de terceros. Luego, Microsoft lanzó Visual Basic en 1991, que no era exactamente una actualización de BASIC, pero usaba algunos de los mismos comandos y estructura y tenía una mejor interfaz gráfica. Luego, numerosas empresas utilizaron el lenguaje para escribir programas grandes y pequeños. Aunque Microsoft ha dicho que dejó de admitir Visual Basic 6 (la versión más reciente) en 2008, el lenguaje todavía tiene muchos usuarios. Comprobar el Índice de Tiobe (que muestra los lenguajes de programación más populares): ¡VB todavía está entre los 10 primeros!

COBOL

cartel de cobol
Un cartel de 1969 que promociona una clase MIT COBOL.

"Yo diría que más del 90% de las personas que vemos tienen COBOL como parte central de lo que han escrito", estima Brandon Edenfield, quien actualiza y realiza la transición de aplicaciones heredadas para Sistemas modernos y ha ayudado a revisar el código de las bolsas de valores de Nueva York y Singapur. "Cualquier empresa importante que se pueda imaginar probablemente tenga una cantidad poco saludable de este material".

COBOL, acrónimo de Common Business-Oriented Language, se lanzó en 1959 y estaba orientado a tareas de procesamiento de datos como seguimiento de presupuestos, transacciones bancarias y contabilidad de nóminas. El Departamento de Defensa (DOD) diseñó originalmente el lenguaje como un proyecto provisional. Luego, el DOD exigió a los fabricantes de computadoras que incluyeran COBOL en las máquinas que vendían y el lenguaje se extendió rápidamente durante las siguientes décadas. Más del 95% de los cajeros automáticos y el 40% de los bancos todavía utilizan el código COBOL, según un estudio de 2017 informe de reuters.

Gran parte de esta programación se implementó a través de computadoras centrales y los sistemas modernos se trasladaron a la nube. Como lo ilustró la situación de Nueva Jersey, los desarrolladores que sabían cómo mantener el código COBOL están envejeciendo en la fuerza laboral o ya se han jubilado.

Las empresas que modernizan estos programas suelen hacerlo de diferentes maneras.

“Un gran integrador de sistemas arrojará un montón de cuerpos al código; se sentarán, lo mirarán y lo reescribirán”, dice Edenfield. Ese enfoque suele ser el más arriesgado, el más lento y el más costoso. En promedio, los grandes trabajos de cambio de plataformas codificados a mano pueden llevar de 3 a 10 años y costar cientos de millones de dólares.

Edenfield recomienda soluciones automatizadas y dice que el primer paso lógico puede ser simplemente mover el código de una versión obsoleta de COBOL a una actual, lo que permitiría a muchos sistemas hacer la transición a la versión moderna servidores. Compara una actualización automática con una traducción del francés al inglés: “La base de lo que se dice se traduce perfectamente. Sólo tienes que arreglar la sintaxis de cómo está redactado”. Ese enfoque también puede reducir el tiempo y el costo de una actualización, dice, entre seis y 24 meses.

¿Será barato? Bueno, será más barato. Los proyectos de sistemas modernos suelen tener un precio de entre 200.000 y 10 millones de dólares. Gran parte del proyecto, explica Edenfield, no consiste en traducir el código, sino en probarlo para asegurarse de que hace todo bien.

¿La razón por la que estas actualizaciones no ocurren?

“Nadie había oído hablar de esto antes porque no es un tema sexy y la gente no suele intentar hablar de los trapos sucios que tienen”, explica. Los ejecutivos de TI también tienen la costumbre de dejar la lata en el futuro.

“Apuesto a que el estado de Nueva Jersey prestará atención a este tema ahora, pero también apuesto a que la mitad de sus colegas pensarán que no les sucederá a ellos, ‘a mí no’”.