Novembre 2014: Lettre RePeGlio 

 Bonjour #Surname# #Name#,

Le destin du RPG.

    Java est beaucoup plus populaire que RPG. Java est classé second avec 16,499% selon l’index TIOBE et premier avec 26,3% selon l’index PYPL. RPG ne figure pas dans ces deux classements de popularité. Faut-il en déduire que RPG est boudé par les développeurs ? Faut-il changer de langage ? De plateforme ? Tel sera l’objet de la lettre RePeGlio de Novembre 2014.
    Java est un langage universel mais n’est pas un langage de gestion. Prenons un exemple simple afin d’illustrer notre propos. Peut-on comparer la popularité d’un couteau avec celle d’une scie à métaux? Un classement en popularité des couteaux avec les scies à métaux n’éclairerait personne en quoi que ce soit, bien au contraire. Avec un tel classement, certains esprits influençables pourraient même acheter un couteau pour couper une plaque en acier, fascinés par l’indice de popularité des couteaux relativement aux scies à métaux. Ceux qui ont lâché RPG pour prendre Java se débattent alors qu’ils avaient le meilleur. Comme le disait Coluche : « mettez un technocrate dans le désert et bientôt il achètera du sable. »
    Nous reviendrons sur une autre qualité unique du RPG, mais en attendant nous vous invitons à un petit intermède.

    Salvador Dali donna un jour une conférence de presse pour annoncer la date et l’heure exacte de la fin du monde. Nous vous écoutons, Maître, interrogea le journaliste impatient et Salvador Dali d’annoncer avec précision une date et une heure de l’année 1969 alors que l’interview se déroulait en 1973. Le journaliste lui fit remarquer que la date de la fin du monde était déjà passée. Alors Salvador Dali imperturbable répondit avec son accent rocailleux, en ponctuant chaque syllabe : « dans ce cas, la fin du monde a bien eu lieu, mais perrrsonne ne s’en est encorrre aperrrçu! »
    Pour nous autres informaticiens, la fin du monde, ou plutôt la fin d’un monde a bel et bien eu lieu, mais rares sont ceux qui s’en sont aperrrçu comme dirait le Maître.

    L’acte de naissance du Cloud a commencé selon nous avec Google Apps. Google a eu le culot de diffuser en SaaS, avec une version gratuite et une version payante pour les entreprises, une suite bureautique et un serveur de messagerie dans un marché plus que saturé. Il existait alors la suite bureautique Microsoft ainsi qu’une suite bureautique gratuite Open Office. Donc, sur le plan de la science marketing pure, un logiciel gratuit nouveau et simplifié qui fait concurrence à un logiciel gratuit éprouvé et complet a 0,1% de chance d’émerger sur le marché. Or non seulement Google Apps a connu un succès énorme mais encore Google Apps a forcé Microsoft à réécrire complètement sa suite bureautique avec la suite Microsoft Office 365 pour le Cloud. Ce succès de Google et le revirement forcé de Microsoft, qui passe de leader indéboulonnable à challenger de Google, démontrent que le Cloud marque la fin d’un monde et le début d’un autre.
    De la même façon que Copernic a changé notre conception du monde et le langage qui en découle, les langages informatiques ne pourront plus être les mêmes avant et après le Cloud.

    Par définition, le Cloud nécessite un système centralisé derrière le réseau où chaque utilisateur ouvre dynamiquement une session. Cette session peut être comparée à un PC virtuel. La session est un travail qui partage des programmes, des ressources et des données avec tous les utilisateurs connectés au même moment. Seule la couche présentation transite sur le réseau.

    Certains vont reconnaître dans cette définition l’AS/400 et vont penser que nous revenons 30 ans en arrière comme si l’architecture client/serveur n’avait jamais existé : ce qui est vrai ! L’AS/400 avait bel et bien 30 ans d’avance sur son époque. Il serait intéressant maintenant d’éclairer le langage RPG à la lumière du Cloud.
    Dans la pratique, le Cloud ne peut pas fonctionner en dehors d’un système propriétaire qui gère le partage des ressources entre utilisateurs. Google a développé pour ses machines Cloud sur le réseau une plateforme logicielle propriétaire appelée Google App Engine et un langage propriétaire Cloud appelé Go qui n’est pas classé dans le top 10 des langages informatiques les plus populaires. Go et Google App Engine pour le web sont le pendant de l’IBM i et RPG pour l’informatique de gestion. Go est indissociable de Google App Engine comme RPG est indissociable de l’IBM i.
    Comme RPG, Go, créé en 2009, n’est pas objet et n’a pas de notion d’héritage. Comme RPG Go a été écrit en C++. Par contre le mot clé go permet à un appel de fonction de s’exécuter en concurrence avec le thread courant. Il serait moins absurde de comparer le nombre de développeurs des langages Go et RPG plutôt que Java et RPG. En effet, Go et RPG, liés respectivement aux plateformes propriétaires Google App Engine et IBM i, ont pour vocation première de faciliter le partage des données et programmes entre utilisateurs dynamiquement connectés, ce partage étant connu sous le vocable propre au Cloud de multi-tenant. (tenant est un mot Anglais qui signifie locataire, donc multi-locataire).
    Pour le fun, en partant des nouvelles contraintes du Cloud, où seule la couche présentation transite sur le réseau, le langage RPG sortirait largement vainqueur. Le RPG gagnerait non seulement en nombre de développeurs en exercice mais aussi haut la main en simplicité d’utilisation. En effet, le multi-tenant y est géré dès les couches basses de l’IBM i. Il suffit de compiler le programme RPG. Lorsque des sessions (travaux) l’appellent, le multi-tenant est pris en charge par une gestion des travaux IBM i à l’exécution, au niveau du processeur!
    Pour en revenir à la comparaison de RPG avec Java, outre son orientation gestion, le RPG est multi-tenant par nature, ce qui le distingue des langages ouverts et universels. Le RPG est indissociable du système IBM i à l’exécution du programme, comme pourrait l’être le langage Go relativement à Google App Engine. Aussi, nous balayons le classement statistique de l’index de popularité par cette citation de Jean Dion : « les chiffres sont aux analystes ce que les lampadaires sont aux ivrognes : ils fournissent bien plus un appui qu’un éclairage. »

 Jean Mikhaleff/RePeGlio

Java serait-il le meilleur ami du développeur RPG ? Cet exemple de programme Java « clés en main » du monde du libre semble le prouver.

    Les programmes Java du monde du libre peuvent être installés dans l’IFS et appelés par des programmes RPG. Techniquement, à une instance Java correspond une procédure RPG. Voici un exemple concret avec code à télécharger qui pourrait rendre bien des services aux développeurs RPG.
    Imaginons qu’un utilisateur demande d’envoyer automatiquement ses éditions .pdf non dans l’IFS, mais dans sa boite email personnelle, l’édition .pdf étant jointe. Même si vous ne connaissez rien de rien en Java, le lien du site ci-après vous permettra d’appeler sans prise de tête l’objet Java d’envoi email issu du monde du libre. Il suffit de suivre à la lettre une procédure pragmatique détaillée en deux parties:
    1) Copier les objets Java d’envoi email .jar dans l’IFS de l’IBM i.
    2) Restaurer un .savf avec des exemples de programmes RPG qui appellent les instances Java. Dans la pratique, il suffit de remplacer en dur dans le code RPG une partie variable : l’adresse du message etc… de compiler le programme RPG et de l’exécuter pour tester. L’auteur Aaron Bartell propose 3 programmes RPG différents. Nous vous conseillons de tester les trois. Le serveur SMTP par défaut est utilisé.
    Une fois que le programme de test fonctionne et qu’un email avec pièce jointe est bien reçu dans la boite mail dont le nom a été codé en dur dans le code RPG, il sera facile de modifier le RPG pour obtenir un programme sur mesure paramétré. Comme dit le proverbe AS/400 : « Si ça va pour un, ça ira pour tous. »
    Pour télécharger, connectez-vous sur le site de Aaron Bartell. Sur la home page vous trouverez le lien RPGMAILv2 :
    http://mowyourlawn.com/ 

Nos références:

Notre Site: www.repeglio.com

Pour un commentaire libre ou pour abonner quelqu'un: jean@repeglio.com


Pour retirer votre email d'envoi  de notre liste de diffusion: 

Retourner-nous la lettre avec en objet OPTOUT et votre email d'envoi:  #E-mail#    sera retiré de notre liste de diffusion.