¿Qué es COBOL y por qué tiene demanda?
La programación COBOL de 60 años está experimentando un resurgimiento. Muchos mainframes de sistemas gubernamentales ejecutan COBOL y han estado luchando para hacer frente al aumento de la demanda. En particular, los sistemas de desempleo del estado de Nueva Jersey son administrados por una computadora central COBOL de 40 años.
Con el aumento del desempleo relacionado con COVID-19, el sistema está luchando por mantenerse al día. El gobernador Murphy ha identificado a los programadores de COBOL como una necesidad subestimada.
¿Qué es COBOL?
En 1959, el Comité de Lenguajes de Sistemas de Datos diseñó COBOL. Querían diseñar un lenguaje de programación estándar para ejecutar en muchos mainframes diferentes.
En ese momento, se estaban desarrollando muchos lenguajes de programación nuevos y la traducción de lenguajes de programación para que se ejecutaran en hardware nuevo se estaba volviendo demasiado costosa. COBOL, o lenguaje común orientado a los negocios, fue la solución a este problema.
COBOL se basó en el lenguaje de programación FLOW-MATIC, que fue creado por Grace Hopper. Fue el primer lenguaje de programación en utilizar términos en inglés para el procesamiento de datos en lugar de la notación matemática. Grace Hopper explicó:
“Solía ser profesor de matemáticas. En ese momento descubrí que había cierto número de estudiantes que no podían aprender matemáticas. Luego me encargaron la tarea de facilitar a los empresarios el uso de nuestras computadoras ". (El desarrollo temprano de lenguajes de programación pág. 29)
De manera similar, COBOL usa términos en inglés y fue diseñado para ser fácil de leer. Sin embargo, algunos lo han criticado por ser demasiado prolijo. Por ejemplo, en C puede escribir lo siguiente para sumar dos números:
int result = 1 + number;
El mismo código en COBOL se escribiría como:
ADD 1 TO number GIVING result
Al igual que C, COBOL es un lenguaje de programación procedimental. Esto simplemente significa que los programas COBOL están diseñados para seguir pasos secuenciales. COBOL también es un lenguaje autodocumentado, lo que aumenta su usabilidad. Sin embargo, la característica más conocida de COBOL es que puede manejar cantidades masivas de procesamiento de datos.
COBOL fue ampliamente adoptado, particularmente por empresas, gobiernos e instituciones financieras. Adoptado tan ampliamente, que incluso todavía se usa en muchos lugares hoy en día.
¿Por qué se ha vuelto menos popular?
A pesar de la popularidad pasada de COBOL, pocas personas conocen el idioma. Hoy en día, hay más lenguajes de programación que se centran en comandos en inglés que tienen muchas más funciones que COBOL. Pocos programadores crean nuevos programas en COBOL; su uso principal es mantener programas heredados.
Una crítica de COBOL es que los programadores tenían una tendencia a escribir código espagueti. El código espagueti es un término despectivo para el código que está mal estructurado. El principal culpable de un código mal estructurado fue el comando GOTO.
Como se mencionó anteriormente, COBOL es de procedimiento, por lo que la computadora lee cada línea de código, de arriba a abajo en orden. El comando GOTO permitió al programador decirle al programa que salte a una línea diferente. El uso deficiente del comando GOTO puede complicar el código COBOL.
Otra razón por la que COBOL no es popular es que rara vez se enseña en las universidades. COBOL fue creado por la comunidad empresarial, no académica. Fue diseñado para resolver problemas comerciales y está optimizado para problemas como el procesamiento de datos. Los académicos a menudo están interesados en diferentes preguntas y, por lo tanto, promueven diferentes lenguajes de programación.
Sin embargo, uno de los mayores problemas con COBOL es que, a pesar de estar diseñado para ser un lenguaje común, no lo es. A medida que el idioma evolucionó, se crearon muchos dialectos diferentes: ¡300 de ellos!
Esto dificulta que los programadores comprendan el código heredado.
Por qué COBOL es importante
Debido a que COBOL es ampliamente utilizado por empresas y gobiernos, todavía hay muchos sistemas COBOL que necesitan mantenimiento. El código heredado es notoriamente difícil de mantener porque los programas son grandes y complejos. Por lo tanto, se necesitan programadores con un conocimiento profundo del lenguaje para mantener los programas.
También lleva mucho tiempo realizar cambios en el código porque es difícil determinar si los cambios afectarán a otras partes del programa.
Por ejemplo, en los 90 nos enfrentamos al error Y2K. Muchas fechas de años se guardaron en computadoras usando los dos últimos dígitos del año en lugar del año completo. Por lo tanto, 1997 se almacenó como 97. Se temía que cuando el año cambiara a 2000, el año 00 no se reconocería como válido, causaría problemas con las secuencias de fechas y podría bloquear muchos sistemas.
Los gobiernos y las empresas de EE. UU. Necesitaron varios años y 100 mil millones de dólares para lidiar con el error Y2k. Es posible cambiar los sistemas heredados, pero puede llevar tiempo y resultar costoso.
En 2020, COVID-19 creó un nuevo problema de programación. El sistema de desempleo de EE. UU. Se basa en COBOL y es muy difícil y costoso realizar cambios en el programa. Por ejemplo, el Congreso había planeado responder al aumento del desempleo calculando los pagos por desempleo en función de los salarios perdidos. Sin embargo, habría llevado cinco meses ajustar el programa para implementar el cálculo.
Los sistemas COBOL no se pueden cambiar con la suficiente rapidez para responder a situaciones de crisis. El problema se agrava porque no hay suficientes personas capacitadas en COBOL para ayudar con el mayor mantenimiento necesario para respaldar los sistemas durante una crisis. Aquellos que están capacitados en COBOL, están jubilados o próximos a la jubilación.
Dónde aprender COBOL
Para ayudar a abordar la creciente necesidad de programadores COBOL, IBM ha creado un curso COBOL gratuito . El curso consta de una serie de videos, cuestionarios y tareas de laboratorio, demora 16 horas en completarse y recibirá una insignia al final.
Si ya es un programador COBOL experimentado, IBM también ofrece un foro de redes COBOL. Allí, los programadores experimentados pueden conectarse con organizaciones y empresas que lo necesiten.
COBOL no es un lenguaje de programación de moda, como Python, pero es importante. Gran parte del mundo todavía funciona con COBOL. Si ha estado pensando en aprender un lenguaje de programación, pero necesita un empujón, considere aprender COBOL.