Я работаю в одной и той же компании в течение достаточно долгого времени (5 + 1,5 года с коротким периодом вне компании). Я должен делать все, что хотят от меня SSA (старший системный аналитик). Когда я только начинал, он хотел, чтобы я написал код на языке COBOL, которого было много в мэйнфреймах. В университете я изучал только C и Java, поэтому что-то вроде COBOL меня очень раздражало (именно это).

Вот пример, который я взял из Интернета (Университет Лемерика: http://www.csis.ul.ie/cobol/examples/default.htm#SimplePrograms):

$ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  SeqRead.
AUTHOR.  Michael Coughlan.
* An example program showing how to read a sequential file.
* This is the definitive example 

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT StudentFile ASSIGN TO "STUDENTS.DAT"
		ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD StudentFile.
01 StudentDetails.
   88  EndOfStudentFile  VALUE HIGH-VALUES.
   02  StudentId       PIC 9(7).
   02  StudentName.
       03 Surname      PIC X(8).
       03 Initials     PIC XX.
   02  DateOfBirth.
       03 YOBirth      PIC 9(4).
       03 MOBirth      PIC 9(2).
       03 DOBirth      PIC 9(2).
   02  CourseCode      PIC X(4).
   02  Gender          PIC X.

PROCEDURE DIVISION.
Begin.
   OPEN INPUT StudentFile
   READ StudentFile
      AT END SET EndOfStudentFile TO TRUE
   END-READ
   PERFORM UNTIL EndOfStudentFile
      DISPLAY StudentId SPACE StudentName SPACE CourseCode SPACE YOBirth
      READ StudentFile
         AT END SET EndOfStudentFile TO TRUE
      END-READ
   END-PERFORM
   CLOSE StudentFile
   STOP RUN.

У нас было много плоских файлов фиксированной длины, разделенных длиной каждого поля. Сейчас я в основном программирую на Java, но помню, что у COBOL подробный синтаксис и он не такой мощный, как современные языки программирования. Мне даже пришлось реализовать собственную функцию, чтобы перевернуть строку!

Я закодировал C в их системе роуминга, и это был не стандартный C, а ASN.1 C от OSS Nokalva (http://www.oss.com/asn1/products/asn1-c/asn1-c.html ). Я обновил версию их файла TAP3 (стандартный файл для партнеров по роумингу для обмена данными об использовании клиентов) программы обмена, который требовался GSMA (https://www.gsma.com/). Я пережевал всю разницу в обновлении спецификации TAP3 и соответствующим образом изменил программы.

Сейчас я кодирую java для другой системы в этой компании. В последнее время я работаю над подключением системы автоплатежей к совершенно новой системе, предоставленной нашим партнером для проекта цифровой трансформации нашей компании. (Они хотят заменить старую систему мейнфреймов, написанную на COBOL)

Продолжим позже.

Первоначально опубликовано на сайте rayentwickler.me 4 августа 2018 г.