Pour avoir bossé en centre informatique d'une l'administration centrale française, je peux vous dire que le COBOL est très bien adapté à ce qu'on lui fait faire: de la gestion en batch sur gros volume. Pour les formulaires, il vaut mieux passer par des langages plus modernes, mais il le fait aussi. Pas de possibilité de gestion de réseau ou autre chose de ce genre. Programmation impérative seulement, mais il est le plus efficace dans son domaine (il est compilé comme le C/C++ et n'a pas de limite de taille pour les nombres).
Quand on est passé au java, ça nous a piqué les yeux. Le changement de tous les programmes se fit sur une décennie. Le gain fût en polyvalence et en maintenabilité: La définition d'une bibliothèque d'objets réutilisables permettait de gros gains en développement, une javadoc commune permettait de ne pas devoir lire des dizaines de gros fichiers COBOL commentés pour comprendre ce que fesaient les programmes. Quelque chose d'approchant existait déjà en COBOL, mais cela relevait du bidouillage et de la gestion de projet, pas de la structure et des outils du langage.
D'un autre côté, on a perdu en maîtrise parce qu'on a dû incorporer des logiciels tiers dont certains ont révélé avoir des bugs ou des faiblesses à l'usage, mais on est passé du minitel à internet. Et côté gestion de projet, c'est devenu l'enfer avec des fichiers de configuration à n'en plus finir, à modifier à chaque changement d'une bibliothèque tierce, et les outils comme Struts, ant ou maven sont devenus affaires de spécialistes.
Puis est venue la mode du PHP, et certains ont voulu développer l'emploi de ce langage. Pour des petits projets et de petites équipes, ça marche; mais les gros projets sont restés en java. Et cela va rester longtemps comme cela:
1) parce que les administrations ont un volume très importants de programmes à maintenir, leurs évolutions se faisant au rythme des évolutions législatives et réglementaires (lois, normes internationales, etc)
2) parce qu'il n'y a aucun langage qui permette de faire de tout plutôt bien comme le fait java et qui soit aussi largement utilisé, et parce que ça n'apporterait qu'un gain marginal compensé par le coût d'apprentissage ou de maintenance (nouveau langage et nouvel environnement = chaîne de développement et de maintenance différente)
3) parce qu'il est libre de droit, bien documenté, gratuit et largement répandu.
Partager