Я работаю в одной и той же компании в течение достаточно долгого времени (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 г.