En el gobierno (sobretodo el estadounidense) y en algunos sectores, como el bancario, se adoptó desde hace tiempo el lenguaje de programación COBOL como el más adecuado para aplicaciones administrativas.
Podemos decir que COBOL fue de los primerísimos lenguajes de programación de alto nivel que se crearon.
COBOL significa COmmon Business Oriented Language. Eso significa que se pensó para crear aplicaciones comerciales, en principio para tratar datos y archivos.
No está pensado para escribir programas de sistemas, como puede ser un sistema operativo como Linux o un compilador para usar en otro lenguaje.
Es decir, aunque COBOL ha convivido con otros lenguajes como Pascal o C++, ninguno lo ha podido sustituir en su nicho, tal y como hemos dicho en el tratamiento de la información almacenada (sobretodo en programas gubernamentales y bancos).
Aunque es un lenguaje que tiene casi 60 años, aún se utilizan en muchos sistemas importantes, por ejemplo en los grandes servidores AS/400 de IBM.
Historia de Cobol
Estamos en la década de los años 50, dónde sólo existían lenguajes de bajo nivel, así que dependías del procesador que tenías para poder programar en un lenguaje en concreto.
La idea de crear el lenguaje salió en una reunión del Pentágono en mayo de 1959.
Así que el ejército de Estados Unidos, concretamente el Departamento de Defensa, convocó una conferencia para decidir buscar un estándar en la gestión de los datos.
En la reunión, representantes del gobierno, usuarios y fabricantes de ordenadores llegaron a la conclusión que había que desarrollar un lenguaje de alto nivel que respondiera a las necesidades de los datos administrativos.
Este lenguaje se ha venido revisando y modificando continuamente, bajo un comité de trabajo llamado CODASYL.
En las diferentes conferencias de CODASYL también se reunieron empresas como IBM, y se decidió crear un nuevo lenguaje de programación. Había nacido COBOL.
Quién creó Cobol
La principal impulsora de este lenguaje de programación fue Grace Murray Hopper.
Esta persona también es conocida por crear el témino bug, al encontrarse una polilla en uno de los grandes ordenadores que se usaban en aquel momento.
Características de Cobol
El lenguaje Cobol ha dominado los grandes sistemas de la informática empresarial. Para poner algunos ejemplos:
- En 2016 se hizo un lista de los programas más antiguos que se utilizan en la administración de Estados Unidos. De los 10 sistemas de la lista, 3 de ellos usaban COBOL como lenguaje de programación.
- Los sistemas bancarios funcionan principalmente con COBOL, y no se plantean cambiar a otros lenguajes, como Java, por los posibles problemas de seguridad que puedan tener.
- IBM ha dado formación de COBOL a más de 180.000 programadores en los últimos 12 años. Existe una alta demanda de este tipo de desarrollador, lo que implica un salario mayor (Fuente: Xataka).
Como ves, COBOL sirve para lo que se creó: un lenguaje para gestionar operaciones comerciales.
Veamos algunas de sus características principales.
Cobol es autodocumentado
¿Significa que podemos añadir comentarios? ¿Hablamos de JavaDoc? No exactamente.
Cuando se diseñó este lenguaje, la intención era que no solo los programadores pudieran entender el código.
Hablamos que usuarios, jefes intermedio so incluso gerentes pudieran leer y entender el código COBOL.
Por eso COBOL tiene elementos estructurales parecidos al inglés, como puede ser el uso de verbos y frases.
Una lástima que ese objetivo no se haya realizado: al final quién lee los programas COBOL son los programadores. El código fuente es lo suficientemente complejo para que un usuario pueda entenderlo.
Aunque esta característica no usada ha hecho que la sintaxis de COBOL sea uno de los lenguajes de programación más legibles, comprensibles y documentados de todos.
Un lenguaje que sea fácil de leer hace también su mantenimiento más fácil, sobretodo en programas viejos que han sido revisados (comúnmente se dicen parcheados) una y otra vez.
Imagínate un programa escrito hace 20 años en COBOL, C++ o Java (estos lenguajes ya existían). Es mucho más fácil para un programador COBOL comprender que hace ese programa que otro de los lenguajes comentados.
COBOL es simple
Cobol es simple, porque no utiliza cosas como punteros, funciones definidas por el usuario o tipos definidos (aunque veremos que todo eso cambió).
Esto hace que pueda parecer limitado, pero fomenta un estilo de programación sencillo y directo, además de cumplir con ka resolución de problemas específicos en la informática empresarial.
En la última revisión se introdujo la programación orientada a objetos, llamada OO-COBOL. OO-COBOL conserva todas las ventajas de versiones anteriores, y además:
- Funciones definidas por el usuario.
- Orientación a objetos.
- Caracteres UNICODE (si, antes no se podía).
- Múltiples símbolos de moneda.
- Localización (hablamos de adpataciones del código por país).
- Punteros.
- Validación de datos con la instrucción VALIDATE.
- Tipos de datos binario y flotante.
- Tipos de datos definidos por el usuario.
COBOL no es propietario
COBOL no pertence a ninguna empresa o proveedor en particular (como el caso de Visual Basic con Microsoft).
El comité ANSI COBOL es independiente del proveedor, y sólo se preocupa de legislar los estándares del lenguaje sintáctico.
Eso no significa que COBOL haya sido adaptado especificamente a plataformas hardware o diferentes sistemas operativos como Windows, Unix, AS/400, OS/2, etc.
COBOL es sostenible
¿Cuantos programas crees que pueden durar más de 40 años en activo? Mantener, mejorar y dar soporte a una aplicación durante tanto tiempo puede ser complicado en algunos lenguajes de programación, pero no se da en COBOL.
Una de esas razones ya la hemos comentado: la legibilidad del código de COBOL.
Otra razón es la rigidez de la estructura jerárquica. Por ejemplo, las referencias externas, como archivos, dispositivos, secuencias de comandos, el símbolo de moneda, solo pueden definirse en el área ENVIRONMENT.
Cuando un programa COBOL se mueve a una máquina nueva, o se han conectado dispositivos periféricos nuevos, los programadores COBOL saben en que partes del programa tienen que modificarse para adaptarse a estos cambios.
En otros lenguajes de programación estos cambien pueden estar en cualquier parte del código, pero en COBOL no hay otra opción. Puede parecer un límite, pero está rigidez está pensada para que estos cambios puedan llevarse sin ninguna complicación.
Otras características de COBOL
Veamos algunas ventajas y desventajas de Cobol que podemos destacar:
- Se definió completamente en 6 meses.
- Las variables tienen que definirse al detalle, Hace falta especificar e total de dígitos que se van a usar, incluida la posición del dígito decimal
- Puedes usar bibliotecas de clases, al igual que otros lenguajes modernos como Framework. NET.
- Es considerado un estándar. Aprender COBOL implica que difícilmente cambie la manera de programar en los próximos años.
- Se ha conseguido que se integre perfectamente en multitud de entornos, desde escritura de XML hasta aplicaciones para móviles.
COBOL y el efecto 2000
¿Alguien se acuerda del efecto 2000? Uno de los lenguajes de programación afectados era Cobol, porque el año de una fecha se guardaba en dos dígitos.
Hubo un poco de pánico por los efectos que podía tener un lenguaje de programación tan antiguo a la hora de corregir las fechas, cambiarlas a 4 dígitos, pero se demostró que los programas hechos en COBOL fueron más rápidos y fáciles, por lo tanto más baratos, que otros programas escritos en lenguajes mucho más recientes.
Compiladores COBOL gratuitos
Que COBOL se use en grandes sistemas puede hacer pensar que sería complicado aprender COBOL en tu casa.
Pero existen compiladores gratuitos en COBOL, que nos puede ayudar a saber como programar en COBOL.
Veamos algunos de ellos.
Tiny COBOL
Tiny COBOL es un compilador de COBOL de código abierto. Implementa los estándares de COBOL 85, es portátil y funciona en diferentes plataformas y sistemas operativos, como FreeBSD, BeOS, Linux y Windows32.
Decir que es de código abierto quiere decir que está bajo la Licencia Pública GNU.
GnuCOBOL
OpenCOBOL también es un compilador de código abierto. También te lo puedes encontrar con el nombre de GnuCOBOL:
Este compilador funciona con los estándares COBOL 85 y COBOL 2002, e implementa muchas extensiones de compiladores COBOL que ya existen en el mercado.
OpenCOBOL funciona de la siguiente manera: traduce el código COBOL que escribes al lenguaje C, y luego compila el código traducido con un compilador nativo.
Programación Cobol ejemplos de código
Es complicado encontrar ejemplos de código en COBOL, aunque la mayoría están en ingles.
No estamos hablando del clásico Hola Mundo, sino ejemplos de como utilizar las instrucciones, o como usar el acceso a ficheros, o el uso de reports.
Dejo un par de enlaces que pueden ser útiles. Uno de ellos es de la web de IBM MainFrame Wizard.
En esta web tenemos ejemplos de como usar la mayoría de instrucciones del lenguaje COBOL, como usar los condicionales, los bucles, los ficheros. etc.
Otra página es de la Universidad de Limerick, de su departamento CSIS. Los ejemplos que puedes encontrar aquí son variados, y más reales: como insertar ficheros y mostrar sus registros, como ordenar datos, restar fechas, crear una calculadora sencilla…
Hay más de 50 ejemplos con su código para descargar.
Cursos de Cobol en español
¿Creías que no podías aprender a programar en COBOL? Pues aún puedes encontrar cursos para aprender Cobol, en español y actualizados.
También existen cursos que hablan del Mainframe de IBM, imprescindible para trabajar con COBOL.