CO-BOL-Script... COBOLSCRIPT ?!?!???!
Mar 24 août 2004
[via Bob Congdon]
Etant donné qu'il existe encore des milliards de lignes de code qui gèrent des milliards de données en COBOL dans le monde, des petits malins ont inventé COBOLScript.
Oui ! Un langage de script serveur, comparable à PHP, qui afficherait des pages web. Whaou ! le bonheur total, le paradis des programmeurs, le nirvanâ des... Mais qu'est-ce que je raconte ?
Je n'ai pas de mots pour exprimer à quel point ce produit me plonge dans l'épouvante la plus totale.
COBOL est le cauchemar des programmeurs. Rien que pour écrire "Hello World", 70 lignes sont nécessaires (exagérer n'est pas mentir).
Pure vraie et authentique contrainte, chaque ligne de COBOL doit commencer à la colonne 8, les sept premières étant réservées aux numéros de ligne. Un programme contenant un début de ligne avant cette colonne ne compile pas.
Et ne compte pas sur les messages d'erreur pour t'aider, autant les ignorer, c'est même plus sûr pour retrouver son bug.
Prout !
On nous avait déjà beurré la raie avec un COBOL Orienté Objet, dans le milieu des années 90, quand le OO était à la mode.
Je n'ai jamais entendu parler de la moindre application en COBOL OO de toute ma vie. Je ne sais même pas si le compilateur existe, en fait. Je pourrais googler, mais j'ai pas envie de devenir aveugle en regardant le résultat.
Là, bien sûr, le virage "web" de l'informatique a accouché d'un nouveau mutant nauséabond : un langage de script serveur fondé sur la syntaxe COBOL.
Les spécifications du produit sont effarantes.
Bien sûr, pour commencer, COBOLScript n'est pas libre. La licence la plus simple coûte $29.95.
De plus, il ne s'articule pas sur un serveur web existant (Apache, IIS, par exemple), mais le package contient son propre serveur web et son propre serveur de base de données (ben voyons, on voit mal COBOL attaquer des bases de données relationnelles du type MySQL ou Postgresql). On est donc contraint d'utiliser leur serveur Web qui, j'imagine est d'une immense sécurité / stabilité et à l'épreuve des balles. On va les croire sur parole, promis.
De plus, le serveur de bases de données ne tolère l'utilisation de SQL qu'au cas où tu achètes la version "pro". C'est vrai, les non-geeks vont savoir très facilement gérer leurs données dans des fichiers séquentiels indexés, comme nos grands-parents ont pu le faire pendant des années. Au fait, la version pro coûte $49.95.
Bien entendu, le code COBOL garde sa spécificité, à savoir une verbosité incroyablement superflue, et des fonctionnalités n'ayant plus cours depuis des lustres (GOTO, GOSUB...)
000090 DISPLAYLF depreciation_header_html.
000091
000092 MOVE cost TO remaining_asset_value.
000093 MOVE 0 TO amount_depreciated.
000094 MOVE `DDB` TO depreciation_method.
000095 PERFORM CALC-DEPRECIATION VARYING period FROM 1 BY 1 UNTIL period > life.
Je trouve ça cataclysmiquement abyssal. Qu'est-ce qu'ils cherchent à prouver ? Qu'on peut faire du web avec une syntaxe héritée des cartes perforées ?
Bien sûr, j'encourage vivement quiconque se trouvant face à du COBOLScript à utiliser les mêmes blagues qu'on aura pu employer pour son grand frère, voire à en inventer des nouvelles :
- J'espère au moins qu'il pourra passer l'an 2000,
- La doc est assez ancienne pour être datée au Carbone 14,
- Tu pourrais me sortir le papyrus de ton dernier programme ?
- Combien pèse ce programme ? - Trente Kilos. Sans la doc. - Mais non, je parlais pas du listing, mais de l'exécutable.
- COBOL : Compiles Only Because Of Luck (Ne compile qu'en cas de chance)
- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard. (Un ordinateur sans COBOL ou Fortran est comme un morceau de gâteau au chocolat sans ketchup ni moutarde).
Terminons par cette phrase définitive d'Edsger Dijkstra, l'un des plus grands informaticiens du XX° siècle :
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.
Traduction possible :
Utiliser COBOL déteriore l'esprit ; son enseignement devrait, par conséquent, être considéré comme un acte criminel.