Bon d'accord, MVS, COBOL, DB2, c'est monolithique et pas sexy pour deux sous, mais c'est costaud, fiable et pérenne.
C'est bien le contraire.
DB2 est la base de données qui a été la dernière a soutenir SQL, et qui de plus, le soutien mal: IBM a inventé ses propres règles, a tenté de les imposer et a échoué à la
Iznogoud.
Cobol, c'est des sources souvent obscurs, mal commentés, où la moindre maintenance corrective ou évolutive se compte en jours ou en dizaines de jours. Tu associes à cela des environnements où la gestion de configuration n'existe pas, où les tests unitaires n'existent pas, où les tests d'intégration intégrant des saisies automatiques de données n'existent pas, où les transactions n'existent pas et tout doit être rétabli à la main, si on y pense seulement...!
Le problème des vieux langages et des vieux OS c'est qu'ils n'ont pas évolué pour suivre l'évolution des techniques de conduite de projet d'aujourd'hui.
L'explication que j'en donne, c'est que IBM a bien veillé à ne rien faire évoluer pour éviter que les développeurs Cobol s'inquiètent de passer d'un IBM 36 à un 38, à un AS/400...
Et ce qui est très sensible chez les programmeurs Cobol, c'est qu'il ne veulent surtout rien apprendre de nouveau. Que le Cobol reste en version 74 et 82 (respectivement 38 et 30 ans d'âge) ne les gêne pas. Ils n'ont pas du tout envie de voir des versions apparaître tous les deux ans comme avec Java, par exemple. Ni de nouvelles API.
Le monde Cobol, c'est d'abord un monde de fossiles. Qui se meut difficilement. Qui réussit peu et très très lentement.
Il suffit de voir à titre d'exemple ceci, que l'on peut observer sur la totalité - ou peu s'en faut - des programmes Cobol existants:
Bien que SQL fonctionne depuis 15 ans (sur IBM), les développeurs Cobol continuent à faire du:
- j'ouvre une fichier/table, je lis en séquence sur une clef,
- je sauve un contenu dans des variables et je fais une boucle,
- j'ouvre un deuxième fichier, je lis sur clef,
- j'ouvre un troisième fichier, je lis sur clef,
au lieu d'utiliser l'unique requête SQL qu'il faudrait pour remplacer du code qui plus il grandit en taille, plus il est propice aux erreurs.
Et ce dont tu t’aperçois vite, c'est que des programmeurs Cobol ne le font pas, parce qu'ils ne connaissent pas SQL, parce qu'ils ont eu la paresse de l'apprendre.
Quand j'écris le développeur Cobol est le niveau zéro dans l'échelle des informaticiens, c'est à cause de tout cela.
Et il le doit autant à IBM qu'à lui-même.