Java est-il le prochain COBOL?

Dans notre manie du nouveau, il est commode d'oublier combien de temps «l'ancien» reste avec nous. Prenez COBOL, par exemple. Le vénérable langage de programmation fête ses 60 ans ce mois-ci et, comme l'a écrit Steven J. Vaughan-Nichols, pourrait bien «nous survivre à tous».

En effet, COBOL offre un excellent exemple du véritable rythme des progrès au sein de notre industrie, tout en offrant peut-être aussi quelques indices sur ce que seront les COBOL de demain. Java et SQL, quelqu'un? Ou peut-être Python?

COBOL le cheval de bataille

La plupart des personnes qui lisent cet article ne sont pas nées en 1959, l'année où Mary Hawes a eu l'idée de COBOL (Common Business-Oriented Language), que Grace Hopper (et d'autres) ont officialisé et promu. L'objectif de Hawes, comme le rappelle Vaughan-Nichols, était de créer «un vocabulaire de type anglais qui pourrait être utilisé sur différents ordinateurs pour effectuer des tâches professionnelles de base», un véritable langage indépendant des fournisseurs.

Alors que l'âge d'or de COBOL s'est effondré dans les années 1980, il continue d'alimenter 70% des systèmes mondiaux de traitement des transactions, selon Micro Focus (la société qui gère COBOL), dans une interview avec Vaughan-Nichols. Vous avez retiré de l'argent d'un guichet automatique? Vous utilisiez COBOL. Vous avez payé une hypothèque? COBOL. Vous avez appelé un centre d'appels? Oui, c'était aussi COBOL. Même la réservation de vos vacances repose presque certainement sur COBOL.

COBOL expirait depuis des décennies, mais 220 milliards de lignes de COBOL vivent sur les ordinateurs centraux de nos vies. Selon Lero, un centre de recherche en génie logiciel, les transactions COBOL ont éclipsé les recherches Google de 200 fois en 2014. Google rattrapera-t-il jamais?

COBOL est plus qu'un simple dotard vivant dans un appartement de retraités mainframe. En plus d'être facile à lire, la langue s'est tenue à jour avec ses voisins. Aujourd'hui, COBOL s'intègre aux conteneurs Docker et à Java, tout en s'exécutant dans le cloud ou sous Linux ou Windows, ou à peu près n'importe où sur n'importe quoi. C'est un langage hautement portable qui permet aux développeurs de se concentrer sur l'écriture de leurs applications tandis que COBOL s'occupe des subtilités du système d'exploitation sous-jacent.

Aujourd'hui, le plus grand risque pour COBOL est qu'il est de plus en plus difficile de trouver des programmeurs qualifiés. Le langage a peut-être des décennies de plus à vivre avec nous, étant donné le coût et le risque de remplacer les systèmes basés sur COBOL par des alternatives, mais cela ne signifie pas que les développeurs grandissent en rêvant d'écrire leur premier programme COBOL. C'est un problème, mais pas celui que je souhaite résoudre ici dans cet article. (Désolé!)

Au lieu de cela, passer en revue les 60 ans d'histoire de COBOL m'a fait réfléchir aux langues d'aujourd'hui qui pourraient devenir les «COBOL» de demain. Autrement dit, quels sont les langages / technologies qui continueront à circuler sous le capot d'un vaste éventail de technologies de demain?

Le COBOL de demain aujourd'hui

Il est difficile de prédire l'avenir, bien sûr, mais il y a des cas solides à faire pour SQL, Python et Java. Dave Kellogg appelle depuis des années SQL le nouveau COBOL. Cela peut être vrai en termes de longévité et de perception que c'est dépassé, mais le parallèle disparaît finalement. Il n'y a qu'un seul COBOL. Malgré toutes ses prétentions de standardisation, SQL parle un dialecte différent selon le fournisseur de base de données. Bien que cela n'ait pas empêché SQL de rester (et il restera assurément pertinent pour les décennies à venir), cela ne ressemble pas tout à fait à un esprit apparenté à COBOL.

Certainement pas de la même manière que Java.

Java, comme COBOL, est relativement facile à lire et à écrire. Tout comme COBOL, Java a conservé sa modernité. Chaque fois que Java avait l'air de disparaître, quelque chose l'a amélioré. Selon Brian Leroux, Android est certainement en partie responsable de la pertinence continue de [Java]. » Un peu plus tard, le big data a relancé Java davantage. Comme Nitin Borwankar l'a souligné, «Java a reçu un second souffle grâce à Hadoop et à l'ensemble de l'écosystème de la science des données, y compris Hive, HBase, Spark, Cassandra, Kafka et les langages JVM tels que Groovy et Clojure. Tout cela ne disparaîtra pas de sitôt. »

En effet, comme avec COBOL, l'une des principales raisons pour lesquelles nous sommes susceptibles de voir Java gravé sur nos pierres tombales est que, comme l'écrit Jonathan Eunice, il est «déployé profondément et largement dans les applications critiques, ce qui le rend digne d'une critique systématique». Plus les entreprises intègrent Java dans leurs applications les plus stratégiques, moins il est probable qu'il soit déchiré et remplacé par des alternatives modernes. Le coût et le risque sont atténués.

De la même manière, Python pourrait bien prouver sa résistance. Dans l'esprit de Lauren Cooney, Python durera parce que c'est un «langage GSD [faire les choses] contre un langage sympa». Ce n'est «pas chic». Cela «fonctionne simplement». Il est important de noter que, comme Java, Python est de plus en plus fondamental pour la science des données moderne, entre autres, ce qui pourrait bien s'avérer être les charges de travail transactionnelles de demain qui sous-tendent les systèmes financiers (ce qui, comme mentionné, est une grande raison pour laquelle COBOL reste cool aujourd'hui).

Rien d'autre? Eh bien, il y a la réponse pas si ironique que COBOL est peut-être le futur COBOL. Comme le dit Andrew Oliver, «il y a des années, j'ai dit que Java était le COBOL du futur. Tout le monde m'a regardé étrangement. Je pense que c'est l'avenir.