Quiero aprender COBOL

Muy bien, pero aprender COBOL no te va a servir de nada sin saber del ecosistema en el que se ejecuta, las empresas que lo utilizan y por qué usan eso y no otra cosa.

COBOL normalmente no se ejecuta en servidores normales. Lo que vale en ese nicho NO es saber COBOL. Es saber de entornos Mainframe. Hercules, z/OS, AS/400, lo que es una LPAR, etc. Si no sabes al menos cómo funciona todo eso a un nivel básico vas a perder el tiempo. No se parece en nada a cualquier cosa que conozcas, y además no lo vas a aprender precisamente viendo tutoriales de YouTube.
 
Lo primero. Te aconsejo seguir algún tutorial en youtube de como son los sistemas operativos de mainframe. Os/390 , Z/OS. Es imprescindible que entiendas los conceptos de un sistema operativo transaccional. Es importante que conozcas lo que es VTAM, ficheros VSAM, Spool, Jes2, Jobs las Utilities y los JCL. Lo bueno del mainframe es que es sota, caballo y rey, y que una vez aprendes, no tienes que estar actualizándote constantemente y estudiando toda tu vida. Una vez que aprendes los conceptos de que es un mainframe, como funcionan sus transacciones, como se gestionan las bibliotecas y los miembros de cada una de ellas, está absorbedo entender cobol. Cobol es lo más similar al lenguaje humano que encontrarás. Te aconsejo el canal de Mainframe Corner.
 
Yo también estoy interesado , ¿alguien nos puede dar un tutorial?

Muchas gracias.

saludos.

Hace lustros y lustros que no he picado una línea en COBOL, pero a grandes rasgos, tiene 4 secciones: IDENTIFICACION DIVISION (nombre programa, etc.), ENVIRONMENT DIVISION (ficheros), DATA DIVISION (Segmento de datos), PROCEDURE DIVISION (Segmento de código). Luego hay "sections". La declaración de variables: algo pesado, la declaración de ficheros: otro tanto, el código: mejorable.

Por cierto, hay que respetar columnas, posiciones, líneas, etc.
Expresiones aritméticas:

Código:
C:   int resultado = num1 + num2;
Cobol: ADD NUM1 TO NUM2 GIVING RESULTADO.

Código:
C: int resultado = num2 - num1;
Cobol: SUBTRACT NUM1 FROM NUM2 GIVING RESULTADO.

Código:
C:  int resultado = num1 * num2;
Cobol: MULTIPLY NUM1 BY NUM2 GIVING RESULTADO.

Código:
C: float resultado = num1 / num2;
Cobol: DIVIDE NUM1 BY NUM2 GIVING RESULTADO.

Ejercicio: Escribe en Cobol la siguiente expresión en C:

Código:
float a = 25, b=35, c=85, d=15, e=256, f=36, g=69, h=63, i=369, j=32, k=396, l=369, m=36, resultado;

resultado = a*(b*(e*f-h/g)+c/(a/m-l/b)-d*(c/d+f/g))+c/(c*(j/i-h/g)+a/(f/e-d/c)-h*(m*l-k/j))-i*(m*(a*b-c/d)+l/(e/i-j/a)-j*(e*a-f/e))



MULTIPLY E BY F GIVING TEMP-1
...
 
Hace lustros y lustros que no he picado una línea en COBOL, pero a grandes rasgos, tiene 4 secciones: IDENTIFICACION DIVISION (nombre programa, etc.), ENVIRONMENT DIVISION (ficheros), DATA DIVISION (Segmento de datos), PROCEDURE DIVISION (Segmento de código). Luego hay "sections". La declaración de variables: algo pesado, la declaración de ficheros: otro tanto, el código: mejorable.

Por cierto, hay que respetar columnas, posiciones, líneas, etc.
Expresiones aritméticas:

Código:
C:   int resultado = num1 + num2;
Cobol: ADD NUM1 TO NUM2 GIVING RESULTADO.

Código:
C: int resultado = num2 - num1;
Cobol: SUBTRACT NUM1 FROM NUM2 GIVING RESULTADO.

Código:
C:  int resultado = num1 * num2;
Cobol: MULTIPLY NUM1 BY NUM2 GIVING RESULTADO.

Código:
C: float resultado = num1 / num2;
Cobol: DIVIDE NUM1 BY NUM2 GIVING RESULTADO.

Ejercicio: Escribe en Cobol la siguiente expresión en C:

Código:
float a = 25, b=35, c=85, d=15, e=256, f=36, g=69, h=63, i=369, j=32, k=396, l=369, m=36, resultado;

resultado = a*(b*(e*f-h/g)+c/(a/m-l/b)-d*(c/d+f/g))+c/(c*(j/i-h/g)+a/(f/e-d/c)-h*(m*l-k/j))-i*(m*(a*b-c/d)+l/(e/i-j/a)-j*(e*a-f/e))



MULTIPLY E BY F GIVING TEMP-1
...

Hola, buenos días, Teuro,

Muchas gracias Teuro por ayudarme y explicarme algo de Cobol, lo guardo este post.

saludos.
 
Hace lustros y lustros que no he picado una línea en COBOL, pero a grandes rasgos, tiene 4 secciones: IDENTIFICACION DIVISION (nombre programa, etc.), ENVIRONMENT DIVISION (ficheros), DATA DIVISION (Segmento de datos), PROCEDURE DIVISION (Segmento de código). Luego hay "sections". La declaración de variables: algo pesado, la declaración de ficheros: otro tanto, el código: mejorable.

Por cierto, hay que respetar columnas, posiciones, líneas, etc.
Expresiones aritméticas:

Código:
C:   int resultado = num1 + num2;
Cobol: ADD NUM1 TO NUM2 GIVING RESULTADO.

Código:
C: int resultado = num2 - num1;
Cobol: SUBTRACT NUM1 FROM NUM2 GIVING RESULTADO.

Código:
C:  int resultado = num1 * num2;
Cobol: MULTIPLY NUM1 BY NUM2 GIVING RESULTADO.

Código:
C: float resultado = num1 / num2;
Cobol: DIVIDE NUM1 BY NUM2 GIVING RESULTADO.

Ejercicio: Escribe en Cobol la siguiente expresión en C:

Código:
float a = 25, b=35, c=85, d=15, e=256, f=36, g=69, h=63, i=369, j=32, k=396, l=369, m=36, resultado;

resultado = a*(b*(e*f-h/g)+c/(a/m-l/b)-d*(c/d+f/g))+c/(c*(j/i-h/g)+a/(f/e-d/c)-h*(m*l-k/j))-i*(m*(a*b-c/d)+l/(e/i-j/a)-j*(e*a-f/e))



MULTIPLY E BY F GIVING TEMP-1
...


El código resulta mejorable porque nos hemos acostumbrado a otras formas de programar, pero a alguien profano del tema, se le hace sencillo precisamente porque no lleva en su cabeza ningún tipo de idea o mecánica de programación preconcebida. Al final todo es tan sencillo como recibir dos ficheros de entrada, recorrerlo de forma secuencial, volcar cada una de sus líneas en la copy definida, operar y comparar, mover resultado a copy de salida, volcar copy a fichero de salida.
 
Tu secreto es que, sin ser funci, trabajas para lo público.

Al final todo se basa en arrimarse a la pechuga pública como sea.

Haces bien. Yo lo hice, pero cambiando el teclado por la escoba.

Trabajo para lo público ahora, pero he trabajado para el sector privado (Grandes almacenes, banca, retail...) mucho tiempo, y es posible que en el futuro vuelva a eso.
 
Hace 40 años aprendí COBOL. El ordenador en el que aprendí a programar estaba en un armario, el disco duro tenía 2 megas de capacidad. Con eso lo digo todo.

Todavía recuerdo las 4 DIVISIONs del programa: Identification Division, Enviroment Division, Data Division, Procedure Division.

Nunca trabajé con COBOL o viví de él. Pero sigue existiendo.

(adjunto visible para usuarios registrados)

Es incombustible el cobol. 60 años y otros 60 mas tendra me dijo un mago/programador.
 
¡Con lo bien que me lo pasaba yo con mis GOTO Y GOSUB en el BASIC del Spectrum, caballero! Incontables horas de placer programando lentísimos videojuegos, tirados directamente en BASIC, o como mucho, con alguna rutina de código máquina, copiada normalmente de la Microhobby, sobre todo para generar laberintos random. En aquella época, programar un relojito que diera la hora, y que funcionara, te hacía sentir como el ingeniero de tu pueblo. Y aquellas largas horas de repasar código cuando algo fallaba, probando cosas distintas por inercia, no había nadie a quien preguntar, ninguna fuente a la que acudir, estabas tú solo, sin ninguna ayuda, y cuando al final, lo resolvías, ¡la sensación de gratitud que te invadía era orgásmica!
Evitando los GOTOS se habría ahorrado horas que podría haber dedicado a hacer más programas.
 


Si , COBOL 400. Y otros lenguajes como ile RPG. Cuanto más raro es encontrar a un profesional de algo , más cotizado está. Por eso soy enemigo de Java o .net , por que todo dios lo conoce. Ya no te digo todo lo que es el stack web. Si quieres ganar pasta , aprende lo raro, lo que no está de moda.
 
Estuve hace 20 años currando en una consultora grande que trabajaba para iberia, en el sistema de gestión de billetes, todo corría entonces bajo cobol/cics/db2 en mainframes os390. Como ya han dicho, no solo es el lenguaje, hay que pilotar además la infraestructura en donde va a correr dado que muchos fallos e los programas son debidos a mala/poca gestión de los recursos.
En cuanto al lenguaje en si, no se suelen crear programas nuevos sino más bien se hacen modificaciones en lo que ya existe, al menos en mi caso era así. Son sistemas en producción que llevan muchos años estables sin incidencias, por lo que este tipo de empresas no se arriesga a cambiar lo que funciona por cualquier otra cosa.
 
Muy bien, pero aprender COBOL no te va a servir de nada sin saber del ecosistema en el que se ejecuta, las empresas que lo utilizan y por qué usan eso y no otra cosa.

COBOL normalmente no se ejecuta en servidores normales. Lo que vale en ese nicho NO es saber COBOL. Es saber de entornos Mainframe. Hercules, z/OS, AS/400, lo que es una LPAR, etc. Si no sabes al menos cómo funciona todo eso a un nivel básico vas a perder el tiempo. No se parece en nada a cualquier cosa que conozcas, y además no lo vas a aprender precisamente viendo tutoriales de YouTube.


Mainframe as400 con sus comandos

- COBOL
- CICS
- DB2
- Easytrieve

Y lo más importante JCLs porque si eso no se ejecuta un programa cobol , hasta lo descriptores de los ficheros tienen que ir ahí…

Todo esto lo conozco y tengo cursos.. si se pagara tan bien como dicen, estaría trabajando en ello y no es así…
 
Última edición:
Mainframe as400 con sus comandos

- COBOL
- CICS
- DB2
- Easytrieve

Y lo más importante JCLs porque si eso no se ejecuta un programa cobol , hasta lo descriptores de los ficheros tienen que ir ahí…

Todo esto lo conozco y tengo cursos.. si se pagara tan bien como dicen, estaría trabajando en ello y no es así…

Si huyes de España , te vas a ir mínimo a 60.000 leros año con lo que sabes.
 
A los que participáis en el foro, ¿os han subido el IPC de los 20 céntimos? Porque empezáis el año con fuerza.
 
Aprender COBOL no es difícil, lo complicado es que consigas trabajo porque los "coboleros" forman un círculo bastante cerrado. 🙄

Y si te basta un botón como muestra, lee:
El lenguaje es sí es fácil, pero hacer cosas con él no lo es tanto. Yo trabajé para bancos, eléctricas,... y había que complicarlo todo mucho.
 
Mainframe as400 con sus comandos

- COBOL
- CICS
- DB2
- Easytrieve

Y lo más importante JCLs porque si eso no se ejecuta un programa cobol , hasta lo descriptores de los ficheros tienen que ir ahí…

Todo esto lo conozco y tengo cursos.. si se pagara tan bien como dicen, estaría trabajando en ello y no es así…
Sasto. No sé si habrá cambiado mucho en 20 años, pero cuando yo lo dejé, bien pagado no estaba.
 

Estadísticas del foro

Temas
2.060.025
Mensajes
58.462.349
Miembros
191.090
Último miembro
HotMarketGuy

El blog de burbuja.info

-
-
Volver