HOME

"De RPG eloquentia" di Ottaviano Randi

Questo breve scritto non vuole essere assolutamente un manuale di programmazione e tanto meno un testo sull’ arte della programmazione, quanto , piuttosto, alcune semplici considerazioni di un vecchio programmatore.

Il linguaggio di programmazione RPG (Report Program Generator) nato come strumento di utilità per la creazione di stampe mi vede muovere i miei primi passi quale programmatore intorno alla fine degli anni 70.

A quel tempo ero un operatore su un sistema IBM S32, e non contento di "schiacciare" solamente i bottoni, avevo iniziato un corso da autodidatta per cercare di capire come realizzare alcuni semplici programmi.

L’incontro con l’RPG non fu dei migliori, documentazione scarsa e in lingua inglese, editor sul sistema S32 alquanto scomodo, ebbi non poche difficoltà nel capire come realizzare piccoli programmi e solo grazie alla pazienza dell’ allora mio capocentro riuscii a realizzare qualche programmino funzionante (o quasi).

L’RPG di quei tempi aveva poche istruzioni, era quindi facilmente criticabile da chi invece utilizzava i più blasonati Assembler e Cobol.

Giustamente ci si doveva sempre ricordare di cosa fosse in realtà l’RPG, ovvero uno strumento rapido per generare dei report, il suo "ciclo automatico" prevedeva l’esecuzione automatica di lettura di un file primario, con possibilità di lettura di file secondari, il "ciclo automatico" gestiva perfettamente tutte le situazioni in cui si dovessero utilizzare le "rotture di livello" (esempio lista delle fatture per cliente nel periodo con totalizzazione).

Naturalmente io che ormai mi consideravo un autentico creativo soffrivo l’impossibilità di saltare il ciclo automatico per gestire il flusso in maniera autonoma.

Un’ altra limitazione derivava dall’ utilizzo degli indicatori, particolari strutture "booleane" usate per condizionare le operazioni, la mancanza dell’ istruzione "IF" spesso portava alla scrittura di codice condizionato da un numero elevato di indicatori che ti costringevano a scorrere il listato del programma per capire dove venivano accesi/spenti rendendo difficoltoso la ricerca degli errori "bug" che affliggevano il programma.

Stendiamo un velo pietoso sulle funzioni di Input/Output a video (video ? ma c’era sul S32 un video ?), era veramente duro scrivere utilizzando il dispositivo "Keybord" e il "CRT", impensabile realizzare un minimo di interattività con l’utente.

La svolta si ebbe con l’introduzione del sistema IBM S34, una macchina "multi utente" con delle vere sessioni video su mastodontici terminali.

Finalmente si potevano scrivere programmi che utilizzavano delle "serie" mappe video in rigoroso verde (o arancione con i terminali Ericson), l’IBM organizzava dei corsi dove si insegnava il linguaggio RPG e la programmazione interattiva.

Ormai ero stato promosso a programmatore e iniziai a scrivere sempre più programmi, anche molto complessi, naturalmente mi sentivo sempre limitato con questo RPG ancora scarno, poco flessibile, l’incontro con i Personal Computer e con il Pascal della Borland non fecero che accrescere la mia insofferenza anche se poi a ben guardare erano sempre più i programmi RPG che venivano utilizzati.

L’arrivo del Sistema S38 e del nuovo RPG III fece nuovamente aumentare i giri al motore, ebbi la possibilità di frequentare i corsi presso la IBM ed effettivamente vi erano delle notevoli migliorie rispetto alla versione RPG II.

Finalmente l’introduzione delle "IF" e di altre istruzioni per strutturare il codice (SELECT, DO ecc.) permettevano di sganciarsi maggiormente dall’ uso degli indicatori, era poi possibile richiamare da un programma un’ altro programma passando dei parametri.

Purtroppo non ebbi la fortuna di lavorare sul sistema S38, il centro servizi dove lavoravo preferì sostituire il Sistema S34 con il Sistema S36 e pertanto continuai a lavorare con l’RPG II, sognando l’ RPG III.

Ma non sempre i sogni restano tali, infatti una Softwarehouse Canadese (ASNA) mise in commercio un prodotto per il sistemi S36 che permetteva di aggiungere molte funzioni dell’ RPG III del sistema S38, questo naturalmente mi permise di riesumare i miei corsi fatti per il sistema S38 e di utilizzare sul sistema S36 il codice dell’ RPG III.

Ultimo capitolo (ma spero solo in ordine di tempo), il sistema AS400, questa macchina la considero un sogno per noi vecchi programmatori, un S38 evoluto facile da usare come un S36, un nuovo linguaggio l’RPG IV e L’RPG ILE con ampie liberà di manovra, con possibilità di dare libero sfogo alla nostra fantasia per realizzare programmi che sicuramente funzioneranno (certo a parte i soliti problemi giovanili).

Oggi che continuo a programmare per campare, non posso che apprezzare il codice RPG che evolvendosi nel tempo ha permesso di poter disporre di un ottimo linguaggio di programmazione che permette di risolvere tutti i problemi gestionali di qualunque azienda si tratti.

Sicuramente ogni programmatore di RPG avrà una serie di migliorie da richiedere ai sistemisti IBM, di strada ne è stata fatta molta e se AS400 si manterrà inossidabile nel tempo credo che se ne vedranno delle belle (speriamo).