In che modo le organizzazioni pianificano di sostituire le lingue morte?
In modi che sono probabilmente segreti commerciali.
Quando ero l'ultimo a lavorare per una banca, stavano affrontando 3 problemi:
- Avevano assunto un nuovo programmatore del sistema Core una volta negli ultimi 20 anni e tutti gli altri si erano ritirati
- Il linguaggio era più morto di Cobol.
- Il sistema principale era su un mainframe, che sono incredibilmente costosi da gestire, rispetto a un gruppo di poche decine di macchine commodity.
Ora ero al corrente del piano aziendale per gestirlo (quindi non posso rompere i suddetti segreti commerciali).
Il mio team ha elaborato un piano per risolverlo e ne ha implementato la maggior parte.
Abbiamo creato uno strumento che traducesse dalla suddetta lingua morta,
in Java.
Lo strumento che abbiamo creato ha generato un java abbastanza terribile. Principalmente perché lavorare per non avere GOTOs, e anche per l'esistenza di Reentrant Functions, e alcuni altri capricci che non hanno fatto in lingue moderne.
Il java che ha realizzato è stato orribile, ma ora potrebbe essere sostituito modulo dopo modulo, poiché era richiesta una funzionalità nuova / modificata.
Lo strumento di traduzione è stato scritto in C #, facendo uso di ANTLR.
L'altro lato dello strumento era Java con implementazioni della maggior parte degli operatori e dei tipi di dati dalla lingua morta.
Il che includeva la necessità di implementare un livello di memoria virtuale dal momento che a volte venivano utilizzati i join e i puntatori.
Dopo che per lo più abbiamo finito, siamo arrivati alla conclusione che sarebbe stato meglio non tradurre in Java, ma in C ++, perché il C ++ ha ancora molte di quelle funzionalità che non sono state introdotte nei linguaggi moderni.
Java è stato originariamente scelto a causa della economicità delle macchine virtuali Java in alcuni particolari prodotti / architetture di cluster.
Quando me ne sono andato questo è stato per lo più fatto. Compilerebbe / tradurrà qualsiasi codice di esempio che potresti trovare per la lingua morta. Quello che non poteva fare era il livello del database. Che è stato gestito con 3 livelli di preelaborazione sul codice sorgente nella lingua morta, e che doveva essere sostituito con connessioni db remote invece di qualsiasi interfaccia che si usa su un mainframe per accedere al database su di esso.
Sono partito convinto che avrebbe funzionato. Ma non ho idea se è stato ritirato dal controllo di versione da quando ho smesso di lavorarci. Potrebbe essere lo stanno usando oggi.
Sospetto a lungo termine (che molti ora sono il passato), la più grande compagnia del gruppo bancario che li ha acquistati 6 mesi prima ho iniziato a svuotare completamente i sistemi IT e li costringi a utilizzare solo un sottile involucro di sistemi di società madri.