Par Philippe Magne | 06 novembre 2019

RPG Free Form Vs Java

Dans cet article, nous allons discuter de deux langages que tout oppose. D’un côté, un langage procédural très ancien (né en 1959 !), de l’autre beaucoup plus moderne et orienté objet. A priori deux mondes diamétralement opposés, mais est-il vraiment nécessaire de les comparer ?

1. Le mythe de Java

La première réaction d’une entreprise qui souhaite moderniser ses applications, c’est de tout réécrire en Java, plus universel et surtout plus portable que le RPG. C’est une réaction somme toute pas très surprenante. Elle répond à une double problématique : pouvoir sortir de la plateforme quand on veut et résoudre le problème de pénurie des compétences. Cependant, à y regarder de près, ce que l’on peut constater c’est que chaque langage est adapté à tel ou tel environnement technologique. Java est né avec l’avènement du Web. Il a été spécifiquement conçu pour répondre aux besoins de cet eco-système. Les traitements batch de masse ne sont pas son fonds de commerce. C’est la raison pour laquelle nous pensons chez ARCAD que le RPG Free Form est et restera le principal langage de la plateforme IBM i. Il est forcément le plus adapté puisqu’il est né avec. Il doit à l’évidence coexister avec tous les langages du monde ouvert mais il ne peut pas être remplacé car il est le plus adapté et intégré à la plateforme, offrant ainsi des performances meilleures.

De nombreuses sociétés se sont essayées à retranscrire le code RPG en Java de façon plus ou moins automatisée. Le résultat est de bien piètre facture. On ne transforme pas comme ça une application écrite avec un langage procédural avec un langage orienté objet. La philosophie est radicalement différente. Tous les développeurs Java confrontés à ce type de code « transformé » ont la même réaction : pour eux, ce n’est pas du Java. De plus, les risques en matière de performance d’exécution des applications sont particulièrement élevés.

2. Pourquoi RPG Free Form ?

Le Cobol est et restera le langage standard des plateformes Mainframe. Les milliards de lignes de code développées depuis plus de 50 ans font tourner les systèmes centraux des plus grandes entreprises de par le monde. Il en va de même du langage RPG sur la plateforme IBM i avec cependant une différence majeure, mais de taille, c’est que ce langage n’est disponible que sur cette plateforme. Il est d’ailleurs présent dans plus de 85% des applications développées. Sa forme hermétique, sous forme de colonnes, est extrêmement contraignante et le rend rédhibitoire pour qui n’a pas trempé dedans depuis des années. D’où une population de développeurs de plus en plus vieillissante à cause de ressources qui ne se renouvellent qu’à petite échelle.

La différence majeure entre le Cobol et le RPG, c’est que, contrairement au Cobol qui n’a pas évolué dans sa structure depuis 1974, le langage RPG n’a cessé de subir des liftings importants qui l’ont rendu au fil de l’eau plus lisible et donc plus facilement maintenable. L’IBM i étant devenu le seul et unique dépositaire de ce langage, IBM a eu les coudées franches pour le faire évoluer. On a vu apparaître en 1995 l’environnement ILE (Integrated Language Environment) permettant plus de modularité et des caractéristiques se rapprochant des langages orientés objets. Mais la transformation la plus importante fut l’a