Programmazione in RPG su AS/400

La scorsa settimana ho avuto modo di fare un corso di RPG su AS400. A primo impatto è un linguaggio che lascia pietrificati per la sintassi (simile all’Assemly), molto “cruda”. Infatti esiste ancora il GOTO che ai giorni nostri l’uso di questa istruzione è generalmente considerato indice di cattiva programmazione……Tuttavia, in linguaggi che non prevedano le eccezioni, GOTO può essere una valida scelta nel caso di rollback di operazioni e deinizializzazione di risorse allocate attraverso passi successivi, quando in uno di tali passi si verifichi una condizione di errore. Il codice sorgente del kernel Linux è ricco di GOTO, spesso finalizzate a tale scopo. Ad ogni modo, e’ stata una bella esperienza che mi piacerebbe approndire, anche perchè è un linguaggio molto utilizzato per la creazione di software gestionali di uso comune in tutte le aziende.

[ad#ads]

Un commento su “Programmazione in RPG su AS/400

  1. LOL

    rispondo io dopo 2 anni ^^

    RPG non è un linguaggio vecchio, ma di più, ha quasi 50 anni!!!

    è nato come un linguaggio per la stesura di semplici report, e poi si è evoluto in quello che è oggi.

    essendo un linguaggio di antiche origini, porta con sè gli aspetti positivi e quelli negativi della sua “maturità” :)
    fra i peggiori aspetti è proprio quello di poter usufruire dei famosi GOTO (e vari altri aspetti, quali ad esempio il passaggio del valore dei parametri avanti e indietro), certo, ma con le opportune tecniche se ne può tranquillamente fare a meno.

    la sintassi, certo, è qualcosa di oscuro :)
    la suddivisione del programma in tipo riga, H,F,E,L,I,C,O, e che queste debbano essere disposte secondo dei criteri ben precisi, l’obbligo a rispettare la posizione fra comandi, campi, indicatori, a prima vista scoraggia chi lo affronta per la prima volta.
    e a dire il vero, anche chi ci lavora da una vita, a volta fatica a ricordare in che posizione scrivere una A o una K :))

    la gestione dei formati video (interna o esterna al programma), così come la gestione delle stampe (interne o esterne), è qualcosa di improponibile a chi è abituato ai vari ambienti visuali.
    con il passare degli anni IBM ha creato degli strumenti per aiutare gli sviluppatori (SDA e RLU), ma certo, cliccare con il mouse e scegliere il colore di uno sfondo non si può ancora fare in quell’ambiente ;)

    eppure…..

    eppure ha degli aspetti positivi che lo rendono unico.

    ha un livello di produttività incredibile.
    una software house che ha scritto un programma in RPG 10 (o 20) anni fa, oggi lo può tranquillamente modificare senza alcun problema, continuerà a funzionare esattamente come se fosse stato scritto pochi minuti fa.
    a livello aziendale sono costi che si ripagano da soli.

    le prestazioni
    accedere ad un singolo record fra svariati milioni con UNA sola istruzione, e che questo non crei alcun calo di prestazioni a tutto il sistema… bè…
    oppure, elaborare milioni di record con sole 3 righe di codice… in pochissimi istanti…. bè….

    ovviamente nel corso degli anni si è evoluto, sono nati dei rami dell’RPG (l’ILE ad esempio) che lo hanno avvicinato di più ad uno stile di programmazione “umano”, ma chi ormai ci ha fatto la mano fatica a cambiare.

    le ultime evoluzioni IBM pongono un service bus che si occupa di dialogare fra l’interfaccia utente (web) ed il sottostante programma RPG, in pratica, posso utilizzare un software prodotto 20 anni fa in un ambiente visuale modificando poche righe di codice.

    insomma, cambia la carrozzeria ma il motore è sempre quello ^^

    ciao

I commenti sono chiusi.