RO / EN

Capitol 10

Timp estimat de citire: 6-7 minute

"COBOL a devenit victima propriului său succes: e atât de fiabil, încât nimeni nu vrea să-l înlocuiască.
Dar e atât de vechi, încât nimeni nu mai vrea să-l învețe."

COBOL (Common Business Oriented Language) a apărut ca limbajul esențial pentru mediul de afaceri, concentrându-se pe gestionarea riguroasă a fișierelor și pe rapoarte. Deși îi lipseau rafinamentul academic al ALGOL sau forța brută a ASSEMBLER, COBOL oferea o calitatea data de siguranța. Era instrumentul care asigura plățile corecte și închiderea precisă a conturilor.

Și acest limbaj nu a murit, împotriva tuturor probabilităților.

COBOL-ul din anii 1960 este încă viu și bine astăzi, în 2026.

Sunt pachete de programe scrise in COBOL care încă rulează în sistemele bancare, asigurări și administrația publică.

Se estimează că peste 200 de miliarde de linii de cod COBOL sunt în producție, rulând pe mainframe-uri care procesează trilioane de tranzacții în fiecare an.

Care este problema?

Cei care l-au scris se pensionează sau au murit deja. Iar tinerii programatori nu vor să îl învețe — preferă JavaScript, Python sau C++

Rezultatul?

Programatorii COBOL se numără acum printre cei mai bine plătiți din Statele Unite.

Au salarii care pot depăși 150-200 de dolari americani pe oră pentru contractele de urgență.

În 2020, când a izbucnit pandemia, sistemele informatice pentru prelucrarea  ajutoarelor de șomaj din New Jersey – scrise în COBOL acum 40 de ani – s-au prăbușit. Multe prelucrări si unele mici modificari necesare.

Atunci autoritățile au făcut un apel public: „Căutăm urgent programatori COBOL!”

Asta pentru ca nimeni nu îndrăznea să rescrie acele sisteme. Era mai sigur să plătești o avere unui programator de 75 de ani decât să riști să construiești ceva nou care s-ar putea să nu funcționeze.

COBOL a devenit victima propriului său succes: e atât de fiabil, încât nimeni nu vrea să-l înlocuiască.

Dar e atât de vechi, încât nimeni nu mai vrea să-l învețe. Așa că cei puțini care-l știu pot dicta prețurile.

COBOL nu te lăsa să uiți nimic. Era ca un șef de birou sobru, care îți cerea să completezi toate rubricile, chiar și când nu păreau necesare. Dar în același timp, te proteja de greșeli. Îți cerea să spui tot ce vrei să faci – cu subiect, predicat, virgulă și confirmare.

De exemplu, ca să afișezi un simplu mesaj, în COBOL scriai:

DISPLAY "Buna ziua!" UPON CONSOLE.

Când în alte limbaje un simplu print ar fi fost suficient, COBOL te obliga să precizezi destinația exactă. Iar dacă voiai să trimiți datele către o imprimantă pentru un raport oficial, lucrurile deveneau și mai riguroase: nu mai era un simplu afișaj, ci un proces de scriere (WRITE) într-un fișier de ieșire definit cu precizie.

Era un limbaj care nu spunea niciodată „las’ că ghicesc eu

Declarațiile de variabile erau și ele savuroase:

DISPLAY "Buna ziua!" UPON CONSOLE.

01 SALARIU-LUNAR      PIC 9(5)V99  VALUE 00000.00.

Trebuia să definești tot: câmpul, dimensiunea, poziția zecimalei, valoarea implicită. Ca și cum ai trimite o scrisoare cu antet, registru de intrare-ieșire și confirmare de primire.

Dar dincolo de redundanță, COBOL avea și finețuri care m-au impresionat – iar una dintre ele a fost clauza REDEFINES.

Această clauză îți permitea să privești aceeași zonă de memorie sub mai multe forme, în funcție de context. Cu o singură declarație, puteai trata un șir de caractere brute ca fiind, după caz, un câmp de dată, un cod numeric sau o structură compusă. Un fel de polimorfism de epocă veche, dar fără clase, moștenire și compilatoare sofisticate – doar cu rânduri de cod bine gândite.

Personal, n-am mai întâlnit o asemenea eleganță în descrierea datelor în niciun alt limbaj pe care l-am folosit ulterior. Și uneori, mi-a părut rău că n-am avut REDEFINES atunci când am avut cel mai mult nevoie de el.

Și, în cele din urmă, a venit PL/I.

Un limbaj promițător, conceput de IBM ca o fuziune între Fortran și Cobol. Teoretic, era un vis: un limbaj care combina rigurozitatea științifică cu aplicabilitatea economică.

În practică, însă, PL/I era un coșmar.

Asta pentru ca suferea de supraambție: voia să fie bun la toate – și a sfârșit prin a fi greu de stăpânit în orice. 

Manualele erau greoaie, compilatorii lenți și fragili, iar sintaxa era plină de excepții, nu de reguli.

Pentru programatorii vremii, care abia învățaseră să se înțeleagă cu Fortran sau Cobol, PL/I era ca un limbaj străin care pretindea că vorbește pe limba ta, dar te corecta la fiecare propoziție.

Poate de aceea n-a prins niciodată cu adevărat: era prea mare pentru mașinile de atunci, prea complicat pentru utilizatorii reali, prea scump pentru aplicațiile din economia socialistă. A murit înainte să fie înțeles.

Și totuși, pentru mine, acel amestec de limbaje era ca un festival de dialecte logice: fiecare limbaj avea temperamentul lui, felul lui de a cere ceva și de a da rezultate. 

Până la urma, lecția a fost una singura: nu contează cât de greu este un limbaj, ci cât de clară este ideea din spatele lui.

- Sfârșit Capitol 10 -