| Fiche technique | |
|---|---|
| Type de produit : | Langage de programmation |
| Auteur : | IBM |
| Date de publication : | 1959 à aujourd'hui |
Introduction
Le langage de programmation RPG, dont le nom provient de l'abréviation de l'expression anglaise Report Program Generator, est un langage de programmation de haut niveau (High-Level Language - HLL) développé par IBM en 1959 afin de simplifier la réalisation d'applications de gestion et la production de rapports administratifs. À une époque où la plupart des programmes étaient encore écrits en langage assembleur ou dans des langages relativement complexes, RPG proposait une approche beaucoup plus accessible pour automatiser les traitements commerciaux. Son objectif principal était de permettre aux entreprises de produire rapidement des états financiers, des listes de paie, des inventaires, des factures et de nombreux autres rapports sans devoir programmer toutes les opérations de bas niveau.
La première version du langage fut développée pour l'ordinateur IBM 1401, l'un des systèmes commerciaux les plus populaires de son époque. RPG s'inspire directement du programme FARGO (Fourteen-o-one Automatic Report Generation Operation), un générateur de rapports utilisé sur cette même machine. En reprenant les principes de FARGO tout en les transformant en véritable langage de programmation, IBM permit aux développeurs de créer des applications beaucoup plus complètes et flexibles. Cette évolution contribua rapidement à faire de RPG l'un des principaux langages utilisés dans les centres informatiques des entreprises.
La seconde génération du langage, RPG II, fut introduite avec les ordinateurs IBM System/3 au début des années 1970. Cette nouvelle version apporta de nombreuses améliorations tant au niveau des possibilités de programmation que de la gestion des fichiers et des traitements. Par la suite, IBM poursuivit continuellement l'évolution du langage avec RPG III, RPG/400, ILE RPG (RPG IV) et les versions modernes destinées aux systèmes IBM AS/400, iSeries, System i et aujourd'hui IBM i. Chacune de ces versions introduisit de nouvelles fonctionnalités tout en conservant une excellente compatibilité avec les applications existantes, permettant ainsi aux entreprises de faire évoluer leurs logiciels sur plusieurs décennies.
Pendant de nombreuses années, RPG fut considéré comme le langage de programmation par excellence pour les applications de gestion développées sur les plateformes IBM. Il est particulièrement reconnu pour ses puissantes capacités de traitement des fichiers, son intégration étroite avec les bases de données IBM ainsi que sa facilité à produire des rapports complexes. Les banques, compagnies d'assurance, administrations publiques, entreprises manufacturières et sociétés commerciales ont largement utilisé RPG pour développer leurs applications critiques, dont certaines sont encore exploitées aujourd'hui.
Bien que les premières versions de RPG reposaient sur une programmation en format fixe, imposant des colonnes précises pour chaque instruction, le langage a profondément évolué au fil du temps. Les versions récentes introduisent une syntaxe en format libre (Free Format) beaucoup plus proche des langages modernes tels que C, Java ou Pascal. Elles prennent également en charge la programmation modulaire, les procédures, les prototypes de fonctions, les structures de données évoluées, les expressions complexes, les appels de services Web ainsi que l'accès aux bases de données SQL. Grâce à cette modernisation continue, RPG demeure un langage activement utilisé sur les systèmes IBM i et continue d'occuper une place importante dans les environnements informatiques d'entreprise.
| Version | Année | Commentaires |
|---|---|---|
| RPG (RPG I) | 1959 | Première version du langage, développée par IBM pour l'ordinateur IBM 1401. Inspirée du générateur de rapports FARGO et destinée à automatiser les traitements administratifs et commerciaux. |
| System/360 RPG | 1965 | Adaptation de RPG aux ordinateurs IBM System/360, notamment le modèle 20. Cette version conserve la philosophie de RPG I tout en étant adaptée à la nouvelle architecture IBM. |
| RPG II | 1969 | Introduit avec l'IBM System/3. Cette version apporte de nombreuses améliorations au langage et devient rapidement la plus répandue sur les systèmes intermédiaires IBM. Elle sera également utilisée sur les System/32, System/34, System/36 et même certains System/370. |
| RPG III | 1978 | Présenté avec l'IBM System/38. Introduction des fichiers externes, d'une meilleure séparation entre les données et les programmes, des terminaux interactifs et de nombreuses améliorations destinées aux applications de gestion. |
| RPG/400 | 1988 | Version fournie avec l'IBM AS/400. À son lancement, il s'agit essentiellement de RPG III renommé, avant de recevoir progressivement plusieurs nouvelles instructions et améliorations. |
| RPG IV (ILE RPG ou RPGLE) | 1994 | Évolution majeure du langage avec l'arrivée de l'Integrated Language Environment (ILE). Ajout des procédures, des prototypes, des types de données améliorés, d'une programmation plus modulaire et de nombreuses nouvelles fonctionnalités. |
| RPG IV - Free Format (V5R1) | 2001 | Introduction des premières instructions en format libre, réduisant progressivement la dépendance aux colonnes fixes historiques du langage. |
| RPG IV - Fully Free Form | 2013 | IBM introduit progressivement une syntaxe entièrement en format libre, permettant d'écrire pratiquement tout un programme sans les contraintes de colonnes des anciennes versions. |
| RPG IV moderne | 2015 à aujourd'hui | Suppression des dernières restrictions liées au format fixe, ajout du support de JSON, XML, SQL, des services Web, de nouvelles fonctions intégrées et modernisation continue du langage sur IBM i. |
Remarque
- Contrairement à des langages comme Pascal ou C, IBM n'a jamais officiellement nommé la première version RPG I. À l'origine, elle était simplement commercialisée sous le nom RPG (Report Program Generator). L'appellation RPG I est apparue plus tard afin de distinguer cette première version de RPG II, RPG III et RPG IV.