Si bien Cobol es uno de los lenguajes más antiguos es sin duda uno de los más importantes aún hoy día, a pesar de su recurrente muerte anunciada sigue siendo ampliamente usado en bancos,  salud, gobiernos y cualquier empresa de finanzas, son sistemas que no solo son solo caros de sustituir y modernizar sino que simplemente funcionan bien y cumplen con sus tareas, nadie lo resumo mejor que Bill Gates cuando dijo: “No sé qué lenguajes de programación existirán en el futuro. Lo que sí sé es que COBOL estará en la lista”.

Para ser justos Bill Gates también dijo que “640 KB deben ser suficientes para cualquier persona” lo que le resta credibilidad, sin embargo la frase acerca de la vigencia de Cobol es más que acertada si pensamos que aún  luego de más de 60 años no solo sigue activo sino que de el dependen procesos administrativos y contables en el mercado de banca y finanzas de todo el mundo.

Es un lenguaje que ya no se enseña ya que su nicho de mercado son las mainframe de IBM, un sistema caro y no es redituable a nivel académico, igualmente existen emuladores para sistemas AS/400 que permite salvando las distancias montar un sistema en nuestra PC sin embargo la filosofía de trabajo de un mainframe más allá de lo interesante que pueda resultar se puede tornar tedioso hacerlo si solo nos interesa aprender Cobol, sin contar lo incómodo de desarrollar en una terminal de este tipo, muy diferente hacerlo en la consola de Linux.

La alternativa, en lugar utilizar un emulador de AS/400 es utilizar un compilador como Open Cobol, es decir desarrollar y compilar en nuestro propio PC, utilizar nuestro mismo editor de texto (vim en mi caso) y para eso hacemos lo siguiente.

En Ubuntu/Debian:

sudo apt-get install open-cobol

En Fedora:

sudo dnf -y install gnucobol 

En CentOS:

sudo dnf -y install gnucobol 

En un editor texto, creamos un archivo con extensión cbl, por ejemplo main.cbl con el siguiente contenido:

       identification division.
       program-id. helloworld.
       author. blog.alvarodeleon.com.

       environment division.
       configuration section.
       input-output section.

       data division.

       file section.

       working-storage section.

       77 mensaje picture x(32) value 'Hello World!!!'.

       procedure division.

           display mensaje.

           stop run.

La indentación que tiene el texto no es arbitraria, son de 8 espacios, esto esta ligado directamente a las viejas tarjetas perforadas en que se escribían los programas, las tarjetas se dividían en líneas y en columnas (o espacios para nosotros), entonces en que los espacios del 1 al 6 estaba reservado para escribir número de linea y de tarjeta y el séptimo espacio para inicio de un comentario (con una asterisco), por tanto el código se empieza a escribir a partir del octavo espacio.

Evidentemente hoy día ya no usamos tarjetas perforadas solo que este aspecto se sigue manteniendo en el lenguaje, si bien ya no es necesario llenar los números de línea si es necesario respetar los espacios.

Guardamos el contenido y compilamos

cobc -x main.cbl 

Luego para ejecutarlo:

./main

Y saldrá:

Hello World!!! 

Listo, ya tienes tu primer Hello world en Cobol!!!

4 comments

  1. Hola, excelente post. Aunque el mismo Gates ya ha desmentido esa frase
    “He dicho algunas cosas estúpidas y algunas cosas erróneas, pero no esa. Nadie que esté involucrado con ordenadores diría que una cantidad de memoria es suficiente para siempre … no me libro de esta tonta frase atribuida a mi que dice que 640KB de memoria es bastante. Nunca ha habido una frase; esta nota sólo flota como un rumor, que se repite una y otra vez”
    https://www.cyberhades.com/2011/01/30/bill-gates-nunca-dijo-eso-de-los-640kb-de-ram/

    1. Si lo dijo o no lo dijo no puedo asegurarlo, ya es parte del mito y parte de la cultura popular por decir de alguna manera, es una frase que se le atribuye el hace más de 30 años como mínimo, igualmente tampoco sería el primero que dice algo y después se arrepiente y lo niega, vaya uno a saber

  2. Gracias por la información, me ha servido. Me gustaría saber qué indica el flag -x ??? cobc -x main.cbl

    1. Hola Libian

      Muchas gracias por tu comentario, me alegro que te haya servido, el parámetro -x es para indicarle que debe generar el ejecutable del programa, no solo compilar sino también generar el ejecutable

      Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Alvaro De León

Subscribe now to keep reading and get access to the full archive.

Continue reading