Modernizzazione dei programmatori – fase 1: RPG ILE
Continua la serie di articoli di Massimo Duca riguardanti i contenuti del nuovo redbook di IBM. Per scaricare il Redbook clicca qui
L’ILE (Integrated Language Environment) ha fatto il suo debutto nell’ormai lontano 1994 con la V3R1 di OS/400. Quella data rappresenta uno dei principali punti di svolta nell’ultradecennale storia dell’RPG; il momento in cui si è verificata la sua trasformazione da linguaggio “tradizionale” a “moderno”.
Con l’ILE infatti, IBM ha introdotto una sintassi sempre più chiara e comprensibile (culminata nell’attuale possibilità di scrivere un intero programma RPG in formato libero), ma soprattutto una serie di concetti e pratiche di moderna programmazione, in primis la modularità, che permette una grande riusabilità e flessibilità del codice.
La struttura modulare, di cui i moduli e le procedure sono i “mattoni” costitutivi, permette un grande isolamento delle singole funzioni, facilitando notevolmente la separazione della logica di business dai dati e dalla loro presentazione (anticipando di parecchi anni i moderni paradigmi come il MVC – Model View Controller).
Il valore dell’RPG ILE risiede anche nella sua flessibilità di accesso al database, che può combinare la perfetta integrazione con uno standard industriale come l’SQL e la semplicità delle istruzioni native di accesso a singolo record. A livello di integrazione, la disponibilità di un parser XML nativo e la capacità di richiamare funzioni scritte in altri linguaggi (Java, C, PHP, Ruby, ecc.) rendono l’RPG ILE uno strumento ad altissima efficienza per applicazioni business-oriented.
Nonostante queste evoluzioni, non è raro imbattersi in codice scritto anni e anni fa in RPG III o precedenti, e tuttora utilizzato quotidianamente. Il fatto che queste applicazioni funzionino ancora bene non deve però trarre in inganno… i nodi vengono al pettine nel momento in cui l’applicazione necessita di manutenzione (per esempio a causa di mutate esigenze di business o adeguamenti normativi e legislativi). Intervenire sul codice RPG III comporta generalmente tempi molto più lunghi rispetto a quelli necessari per adeguare un codice ben strutturato e modularizzato, e per le aziende ciò si traduce in una parola: costi. Certo, per chi ha gran parte del codice scritto in RPG III, una vera e propria “migrazione” dei sorgenti potrebbe comportare tempi e costi non trascurabili; in ogni caso oggi non ci sono motivi validi per non utilizzare il moderno RPG per tutto il nuovo codice sviluppato.
E qui può presentarsi un problema diverso: reperire risorse in possesso di adeguati skill sull’RPG ILE. Un gran numero di sviluppatori RPG si è infatti formato tra gli anni 80 e 90, periodo in cui gli sviluppi avvenivano principalmente in RPG III. Attualmente è però molto difficile trovare richieste per questo tipo di competenza; l’ILE è ormai il requisito minimo per la stragrande maggioranza delle attività di sviluppo in ambiente RPG. Per chi avesse operato unicamente in RPG III o in RPG ILE, per così dire, “finto” (derivato dalla mera conversione dei sorgenti RPG III), diventa quindi fondamentale adeguare le proprie competenze, sia apprendendo la sintassi e la struttura dell’RPG ILE, sia adottando moderne pratiche di programmazione. Di seguito un breve e non certo esaustivo elenco di queste pratiche:
• evitare l’uso di indicatori numerati (*INxx), sfruttando i campi booleani
• sfruttare il più possibile le funzioni incorporate (BIF) per manipolazione di stringhe, gestione date, ecc, evitando l’utilizzo di schiere o routine dedicate
• usare i campi di tipo Data invece che campi numerici per memorizzare le date
• fare largo uso di commenti
• sfruttare la possibilità di usare nomi di campo più lunghi e parlanti
• Raggruppare tutte le funzioni più utilizzate in programmi di servizio
Le esigenze di modernizzazione in ambiente IBM “i” sono sempre più pressanti; per poter continuare a proporsi in un mercato sempre più competitivo, per i programmatori è ormai indispensabile “modernizzarsi”; il primo passo in questa direzione sta sicuramente nell’acquisire la capacità di sfruttare al meglio tutto quello che un moderno linguaggio come l’RPG ILE è in grado di offrire.