Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides

Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides

AbraCADAbra

Avatar de l'auteur
Xavier Berne

Publié dans

Droit

13/03/2018 3 minutes
216

Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides

Next INpact diffuse aujourd’hui le code source « relatif à l’intégralité du calcul des prestations légales gérées par les caisses d’Allocations familiales ». Ce document public nous a été transmis par la Caisse nationale des allocations familiales, dans le cadre d’une demande dite « CADA ».

Depuis l’entrée en vigueur de la loi Numérique, fin 2016, les codes sources détenus ou produits par les administrations sont expressément considérés comme des « documents administratifs ». Résultat : ces fichiers informatiques sont en principe communicables de plein droit au citoyen qui en fait la demande.

Fin janvier, nous avons ainsi tenté d’obtenir le code source des logiciels destinés au calcul de différentes aides versées par les CAF : prime d’activité, APL, RSA et allocations familiales.

Moins d’un mois plus tard, la Caisse nationale des allocations familiales (CNAF) répondait favorablement à notre requête, en nous envoyant un CD-Rom contenant « le code source relatif à l’intégralité du calcul des prestations légales gérées par les caisses d’Allocations familiales ».

À l’intérieur, s’y trouvaient plusieurs fichiers de type COBOL, bien connus des informaticiens de l’État. Nous rediffusons naturellement ces informations :

Des informations librement réutilisables

Toujours en application de la loi Numérique, ces informations contenues dans ces fichiers « peuvent être utilisées par toute personne qui le souhaite à d'autres fins que celles de la mission de service public pour les besoins de laquelle [elles] ont été produit[e]s ou reçu[e]s ». En clair, chacun peut les réutiliser librement – à condition toutefois que celles-ci « ne soient pas altérées, que leur sens ne soit pas dénaturé et que leurs sources et la date de leur dernière mise à jour soient mentionnées » (voir à ce sujet le billet du bibliothécaire et juriste Calimaq).

Libre maintenant à la société civile de s’emparer de ces données publiques, pour de nouvelles simulations de droits, d'éventuelles vérifications entre modalités de calcul et réglementation en vigueur, etc. N’hésitez d'ailleurs pas à revenir vers nous si vous dénichiez des éléments intéressants au milieu de ces millions de ligne de code...

Si vous voulez vous aussi solliciter un code source (ou tout autre document administratif), vous pouvez vous tourner vers notre « guide pratique ».

216

Écrit par Xavier Berne

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Des informations librement réutilisables

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (216)


Nxi chieur de l’administration publique pour le droit citoyen <img data-src=" /> bientôt un cabinet d’avocats NXI ?



Attention à ne pas perdre le CD, pensez à faire une copie sur DVD assujetti par la copie privée


C’est une bonne chose, mais ça risque d’être difficilement exploitable en l’état. Sur github, ça ferait venir les cobolistes de service, vous pensez ? J’ai cru comprendre qu’ils se faisaient rares ce siècle-ci…


hé bé… bon courage pour en sortir qqch d’exploitable…

Sans les docs de conception, les dictionnaires de données et les modèles de données, ça va être chaud d’en tirer quoi que ce soit.


Il aurait fallu en graver quelques uns aussi pour la postérité…


Next impact devrai le diffuser sur son github !

&nbsp;








tpeg5stan a écrit :



C’est une bonne chose, mais ça risque d’être difficilement exploitable en l’état. Sur github, ça ferait venir les cobolistes de service, vous pensez ? J’ai cru comprendre qu’ils se faisaient rares ce siècle-ci…







Si, y’en a encore plein mais ils ont pas la culture github…



Le cobol a encore de beaux jours devant lui


Normalement le cobol est assez remarquablement lisible.



Bien plus facile à reprendre que de l’objet designpaterné je dirais.



#cestdanslesvieuxpotsgnagnagna


‘tin des fichiers de 200 000 lignes de code, ça envoi du pâté <img data-src=" />


Alors, vous avez trouvé des bugs à NXI en lisant le code ?


@ColonelMoutarde : Plutôt sur son framagit?



En tout cas, le source est infâme à lire. j’avais encore jamais lu de cobol, mais là… on dirait qu’ils ont tout foutu en assembleur avant de l’envoyer.


Vive le cobol, vive pacbase

<img data-src=" />








yvan a écrit :



Normalement le cobol est assez remarquablement lisible.



Bien plus facile à reprendre que de l’objet designpaterné je dirais.



#cestdanslesvieuxpotsgnagnagna







Ouais bien sur… quand c’est fait pour être lisible…



Tu as jeté un oeil sur le contenu de l’archive ?



Mais pourquoi est-ce si compliqué ?

Les fichiers sont énormes…


github ne marche pas bien sur mainframe. ;-)





L’avantage du cobol c’est que tout le monde peut lire le programme facilement. Même le métier en est capable paraît-il.


Non, j’ai un métier moi <img data-src=" />



Au pire même un code obfusqué en cobol sera plus facile à détricoter qu’un code objet, ce que j’indique reste vrai.


Tu as piqué ma curiosité, j’ai été voir, c’est commenté, indenté correctement.

Après c’est complexe, forcément…



Je viens de voir que la personne qui a codé le batch CGMC01 est Stéphanie de Monaco <img data-src=" />


Je ne connais pas du tout le Cobol. Bon, à première vue, 95% des fichiers semblent être composés de déclaration de constantes.

Et le langage… ça me rappelle pourquoi j’ai eu horreur d’utiliser de l’assembleur.

Mais sinon, ça semble être fait avant tout système de versionnage, les note de mise à jours sont indiquées dans les fichiers.


“Parait-il”

C’ est assez bien résumé <img data-src=" />

Les subtilités … comment dire ….

<img data-src=" />








yvan a écrit :



Je viens de voir que la personne qui a codé le batch CGMC01 est Stéphanie de Monaco <img data-src=" />





On peut donc en déduire qu’ils ont livré le code tel quel sans le nettoyer <img data-src=" />



Le temps de remonter une machine qui va bien (z/os, os/400 ?), de compiler le code et de tester mes gamins seront majeurs…<img data-src=" />


Leur autorisation d’usage se rapproche de quelle licence connue ?








yvan a écrit :



Je viens de voir que la personne qui a codé le batch CGMC01 est Stéphanie de Monaco <img data-src=" />





génial !<img data-src=" />



C’est un artichaut qui a codé le CGS101, par ailleurs&nbsp;



Mouiiii… 500Mo de code dans un language pas très user-friendly. Autant lire de l’assembleur.

Je préférais le code SQL pour Admission-post-bac…


C’est une blague ce code source.








yvan a écrit :



Tu as piqué ma curiosité, j’ai été voir, c’est commenté, indenté correctement.

Après c’est complexe, forcément…







Ouais c’est commenté et tout mais c’est très difficile a piger sans le dictionnaire de données, le modele et les specs.

En plus, sur un truc aussi spécifique, c’est pas demain la veille que qqn arrivera a en tirer qqch.



Franchement, c’est le degré 0 de la fourniture de code. La CNAF n’a fait aucun effort, même le plus basique. C’est du foutage de gueule…



L’urssaf c’est du fortran… <img data-src=" />


Mouais. J’ai ouvert le CGS101, première fois que je vois du Cobol, j’vois le nombre de lignes, je lis un peu au pif, je referme. Merci Madame. Bonne soirée. J’ai rien pigé.



#SeSentCon



EDIT : Même sensation que lorsque je tente de lire un article de loi… J’ai l’impression de m’auto-entuber par le simple fait de lire un truc qui a été écrit dans le but de ne pas être compréhensible. Et encore je comprends mieux le droit que ce machin… pourtant j’suis dev. (web, certes, mais j’ai touché à presque tous les langages de haut niveau des quelques dernières années et j’me sens con)


j’ai pas fait mieux <img data-src=" />


“Ce document public nous a été transmis par la Caisse nationale des allocations familiales, dans le cadre d’une demande dite « CADA ».”&nbsp;“Moins d’un mois plus tard, la Caisse nationale des allocations familiales (CNAF) répondait favorablement à notre requête”&nbsp;

&nbsp;Du coup vous avez pas eu besoin de la CADA …?


Quand je lis le mot “Cobol”, je pense au “bug de l’An 2000” et aux innombrables annonces ANPE que je lisais sur les tableaux d’affichage en compagnie de mes nombreux collègues chômeurs.&nbsp;


La CAF… toujours là pour nous apporter un dose d’humilité :p


@NXi : Au lieu de demander le code source, ça serait plus intéressant de demander le dossier de spécifications techniques détaillées et le dossier de spécifications fonctionnelles.



Là, y’aurait de l’info super intéressante. Ce tas de code ne vaut pas grand chose…


Non :)

On m’interpelle souvent sur ces appellations, mais je distingue deux choses :

-La “demande CADA” : en fait une demande d’accès à des documents administratifs, sur la base de la loi dite CADA

-La saisine de la CADA (l’autorité administrative). C’est elle, la Commission d’accès aux documents administratifs, qui rend des avis pour faire office de juge de paix entre administration et citoyens. On ne saisit la CADA que si la demande CADA a échoué


Excellent travail ! J’admire votre pugnacité sur ce genre de sujets qui réclame du temps…. beaucoup de temps et de patience…


Je crois que la partie en gras est censée résumer l’article.








KP2 a écrit :



@NXi : Au lieu de demander le code source, ça serait plus intéressant de demander le dossier de spécifications techniques détaillées et le dossier de spécifications fonctionnelles.



Là, y’aurait de l’info super intéressante. Ce tas de code ne vaut pas grand chose…





+1000

La démarche aurait du sens si on commençait par vérifier que le cahier des charges correspond aux règles applicables, que les spécifications internes correspondent au cahier des charges, puis que ces instructions de COBOL (COmmon BOrdelique Language) correspondent aux spécifications internes.



Quand Netscape a ouvert les sources de son navigateur, il a fallu attendre plusieurs années (plus de 3 si je me souviens bien) avant qu’une première version d’un navigateur issu de ces sources ne soit publiée et utilisable par madame Michu. Et les sources de Netscape Navigator, c’était autrement plus excitant que celles du calculateur d’aides de la CAF.



Hum, en rendant public le code source avec le nom des dev en clair, ce n’est pas une entorse à la future GDPR?


ha ok, merci de la précision.








Z-os a écrit :



github ne marche pas bien sur mainframe. ;-)

L’avantage du cobol c’est que tout le monde peut lire le programme facilement. Même le métier en est capable paraît-il.





<img data-src=" />



Ah, voilà une opération particulièrement utile et salvatrice.

Merci NXI d’avoir sur occuper les services informatiques de l’état à une tache aussi constructive !



Y’a pas à dire, les citoyens sont ravis d’avoir ces magnifiques fichiers source Cobol (générés) dont on sent qu’il vont souvent servir. Des impôts bien dépensés.

&nbsp;


&nbsp;Et en plus on apprend que Stéphanie de Monaco a des talents cachés ! <img data-src=" />








heret a écrit :



La démarche aurait du sens si on commençait par vérifier que le cahier des charges correspond aux règles applicables, que les spécifications internes correspondent au cahier des charges, puis que ces instructions de COBOL (COmmon BOrdelique Language) correspondent aux spécifications internes.





lol.

t’es sérieux là?

pour le CDC faudrait déjà qu’il ait existé, et qu’il existe toujours.<img data-src=" />

Pour les specs fonctionnelles, elles existent sans doute, mais ne correspondent pas forcément au CDC, qui est un document de portée générale dans lequel il y a peut-être des conneries.

Quant à la correspondance exacte specs fonctionnelles - code, vu la taille du code annoncée (j’ai pas été regarder merci mais non merci <img data-src=" />), j’ai quelques doutes (à la marge hein, forcément ça va coller globalement).



Pour les Specs Techniques, KP2 est bien gentil d’en parler, mais alors là j’ai encore plus de doutes quant à leur respect des Specs Fonctionnelles et du code (en général c’est le parent pauvre de la doc, les specs techniques).



Ceci dit, nul doute qu’il serait très intéressant d’avoir ces specs afin de comprendre le raisonnement et l’algo.

c’est pas souvent simple à faire à partir du code, mais là en pur COBOL c’est mort, personne de normalement constitué ne va s’y coller. <img data-src=" />



edit: et si c’est dev en interne, c’est même pas sûr qu’il y ait des specs à jour et correctes.



ça va, elle n’a touché que 2 fichiers, elle a du coder pendant un gala un peu trop ennuyeux :)








Faith a écrit :



Ah, voilà une opération particulièrement utile et salvatrice.

Merci NXI d’avoir sur occuper les services informatiques de l’état à une tache aussi constructive !



Y’a pas à dire, les citoyens sont ravis d’avoir ces magnifiques fichiers source Cobol (générés) dont on sent qu’il vont souvent servir. Des impôts bien dépensés.





<img data-src=" />

ils ont du bien se marrer en envoyant leur petite usine à gaz à NXI, les gars de la CNAF. <img data-src=" />



Je vais continuer dans la taquinerie : les cas de test d’homologation métier suffiront. Ils sont bien renseignés dans un outil facilement lisible ?








hellmut a écrit :



Ceci dit, nul doute qu’il serait très intéressant d’avoir ces specs afin de comprendre le raisonnement et l’algo.

c’est pas souvent simple à faire à partir du code, mais là en pur COBOL c’est mort, personne de normalement constitué ne va s’y coller. <img data-src=" />





C’est exactement le sens de ce que j’ai écrit ! <img data-src=" />



roooh c’est méchant ça. <img data-src=" />


Coup de bol il a été fourni sur un CD, et non pas en feuillets A4.



sinon il est arrivé la même chose à notre secrétaire d’état


Je suis assez surpris par les réactions.

parce que vous ne comprenez pas un langage c’est de la merde ?

Bon je sais que vous allez flinguer

Si vous demandez le source du calcul de la retraite complémentaire et des cadres à l’Agirc et à l’arcco vous attendez à ce que ceux qui vous envoient le source oublient qu’il est écrit en cobol et vous le réécrivent en C ou en perl pour que vous puissiez le lire ?

<img data-src=" />


Je ne comprends pas comment le cobol peut faire penser à l’assembleur.

Si quelqu’un pouvait m’expliquer


qui sait ? Peut-être qu’elle compilait le C aussi. (attention, contrepèterie ! <img data-src=" />)








levhieu a écrit :



Je ne comprends pas comment le cobol peut faire penser à l’assembleur.

Si quelqu’un pouvait m’expliquer





Parce qu’ils n’ont lu que le début des fichiers, des trucs dégueu dans ce genre:

[code]

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 01&nbsp; SQSRVB-ZTECH.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-MODULE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIC X(15).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-NBPAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIC X.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-LENGTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMP-6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-LENGTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIC S9(00009) COMP-5 SYNC.&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-LENGTH2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMP-6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 05&nbsp; SQSRVB-LENGTH2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIC S9(00009) COMP-5 SYNC.&nbsp;&nbsp; CQOMC0WK





&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp; ‘6’ ‘977’ ‘978’ ‘979’ ‘980’ ‘981’ ‘982’ ‘983’.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CAMEC1WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88 FL-CMOCTL-CHGT-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE ‘984’ ‘985’ ‘98CAMEC1WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp; ‘6’ ‘987’ ‘988’ ‘989’ ‘990’ ‘991’ ‘992’ ‘993’.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CAMEC1WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88 FL-CMOCTL-CHGT-17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE ‘994’ ‘995’ ‘99CAMEC1WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp; ‘6’ ‘997’ ‘998’ ‘999’.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CAMEC1WK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88 FL-CMOCTL-RAC-RSA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE ‘40T’ ‘41T’ ‘42CAMEC1WK



[/code]



Alors que s’ils avaient été patient, ils auraient vu qu’à partir de la ligne 64000, il commence à y avoir du code lisible:

[code]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE LKMO-DB4A2M1&nbsp; TO&nbsp; WS-DATE(1).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IF WS-DTMOIS(1) = LS-DMSTTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE SPACE TO LS-TOP-ODR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END-IF.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGM130A

&nbsp;[/code]

&nbsp;









levhieu a écrit :



Je ne comprends pas comment le cobol peut faire penser à l’assembleur.

Si quelqu’un pouvait m’expliquer







Mais c’est clair, le premier truc expliqué avec le COBOL est de le présenter comme un langage très verbeux.



Rien à voir avec le langage assembleur.








JoePike a écrit :



Si vous demandez le source du calcul de la retraite complémentaire et des cadres à l’Agirc et à l’arcco





En fait, personne de normalement constitué ne va demander le code source de tels programmes.



C’est là qu’on voit que NXI est bien devenu un journal “normal”: faire des enquêtes sur des trucs parfaitement inutiles, juste parce qu’un texte de loi a écrit que c’était possible tout en annonçant “grace à nous, vous avez obtenu le code (caché) du programme”, c’est typiquement le genre de perte de temps que certains journaux affectionnent pour faire une “Une exclusive”



Pardon NXI, hein, je vous ai adoré et soutenu financièrement à une époque… mais sérieusement, là, à quoi ça rime ?

On a 6.949 millions de lignes de code, et on est super heureux.

&nbsp;



C’est cool ça avance là dessus, par contre si les règles d’attribution changent d’une année sur l’autre, ou bien de nouvelles aides sont définies : j’imagine que faut redemander le code source non ?



Par contre sans les spec techniques, chaud le reverse engineering &nbsp; <img data-src=" />


Les sources sont gros parce que les COPY sont expansés.

(un peu comme des sources C / C++ pré-processés)



La PROC-DIV est en général bien plus petite


&nbsp;





Faith a écrit :



Ah, voilà une opération particulièrement utile et salvatrice.

Merci NXI d’avoir sur occuper les services informatiques de l’état à une tache aussi constructive !



Y’a pas à dire, les citoyens sont ravis d’avoir ces magnifiques fichiers source Cobol (générés) dont on sent qu’il vont souvent servir. Des impôts bien dépensés.

&nbsp;





Extraire : 15 secondes

&nbsp;Enregistrer sous : 3 secondes

Graver le cd : 20 minutes (le temps de prendre un petit kawa)

Ecrire l’adresse sur l’enveloppe : 3 minutes

Mettre dans la bannette du courrier : 30 secondes (sans compter les 5 minutes pour savoir si le petit de patrice va mieux)



Ben oui au debut il y a la déclaration des fichiers et des structures qui est séparée de la “procedure division” qui contient le code. Et il ne faut tenir compte ni des colonnes 1 à 6 ni celles de 73 à 80 qui contiennent des ‘commentaires’ ou des références.



On est bien d’accord que cela n’apporte pas grand chose.




<img data-src=" />

des gens qui n’ont jamais fait d’assembleur ?








SunneX a écrit :



Le temps de remonter une machine qui va bien (z/os, os/400 ?), de compiler le code et de tester mes gamins seront majeurs…<img data-src=" />





Au vu de la ligne de commentaire :

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LibFac&nbsp; liberFactory GCOS to Linux Translator&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CQOMC0WK

sans doute du COBOL d’origine BULL (GCOS) qui a été passé sous Linux



Tu peux essayer avec du OpenCOBOL, ça devrait te prendre moins de temps que de remonter un z




  • 42.



    Questions à NXI :



    Vous allez en faire quoi de ce code ? Et ne répondez pas que vous allez le mettre à disposition de la communauté. Il n’y a manifestement pas de personnes intéressées et capable de le lire à la vue des commentaires.



    J’attends donc que vous (NXI) étudiez ce code et que vous en fassiez un résumé, en indiquant par exemple les bugs que vous avez détectés.



    Parce que balancer un .zip, c’est assez facile, en faire quelque chose d’utile, c’est plus difficile.



    Déjà, j’attends de votre part une explication sur les 2 répertoires existants (Batch et Tp : les fichiers y ont les même noms et ont des parties de code en commun) et le rôle de chacun des fichiers.



    J’ai bien une idée de ce que veut dire Tp, mais je vous laisse donner la votre.


le batch c’est du batch , le TP c’est du transactionnel


Vraiement sympa de “voir” la complexité du projet dans le calcul des différentes règles celles nouvelles, modifiées ou supprimer.



Heureusement qu’il y a un peu d’humour caché la dedans !



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A998.CCR1308B : Zone devant disparaitre mais impossible&nbsp;&nbsp;&nbsp;&nbsp; CGLKPIMO

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * IMPOSSIBLE n’est pas français, madame.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGLKPIMO

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Breton, peut-etre, mais pas français, c’est sûr.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGLKPIMO

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
* (le 25/04/02)&nbsp;&nbsp; à cause de la SIMULATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp; &nbsp;

&nbsp;&nbsp;&nbsp; &nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Version : V01500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Chantier : AQ015&nbsp;&nbsp;&nbsp;&nbsp; Début : 12/05/2004&nbsp;&nbsp;&nbsp;&nbsp; Fin : 12/05/2004&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Texte&nbsp; : Le jour, tous les chats gris sont gris.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGBCALAK



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Chantier : 1R150&nbsp;&nbsp;&nbsp;&nbsp; Début : 08/07/2004&nbsp;&nbsp;&nbsp;&nbsp; Fin : 08/07/2004&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Texte&nbsp; : Après la nuit blanche, ce fut un jour noir pour tous leCGBCALAK

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bleus.&nbsp;


Merci d’avoir divulgué ce que je pensais. Je voulais voir le niveau de l’équipe de NXI qui demande des trucs à l’administration alors qu’ils ne leur serviront à rien.



TP pour temps partagé, comme à la grande époque où un seul ordinateur central servait plusieurs utilisateurs, par opposition aux travaux par batch où l’on récupérait le résultat à la fin du traitement.


Ta requête est stupide, franchement elle rime à quoi cette mise en demeure à part nourrir ton égo? NXI est dans son rôle de média engagé pour “l’opensource par défaut” et l’opendata de mener ce type d’initiative et de mettre le code (quelqu’il soit) à la disposition d’une communauté. Je n’attends pas de NXI qu’ils passent leurs journée à dépiler 534 Mo de Cobol, j’attends d’eux des articles et un travail de journalistes, pas celui d’une armée de geeks qui pourraient probablement en sortir des choses intéressantes (cf le hackathon #CodeImpot en avril 2016)








levhieu a écrit :



Je ne comprends pas comment le cobol peut faire penser à l’assembleur.

Si quelqu’un pouvait m’expliquer





Alors, cette organisation en colonne, en block, la façon de déclarer les variables (et peut être les constantes) qui font bien plus assembleur que C, le fait d’avoir pratiquement 1 instruction par ligne et même certain mot comme “move”.

J’ai l’impression de voir un langage intermédiaire entre Basic et l’assembleur (et le fait de tout écrire en majuscule, ça n’aide pas).









Sebaas a écrit :



Ta requête est stupide, franchement elle rime à quoi cette mise en demeure à part nourrir ton égo? NXI est dans son rôle de média engagé pour “l’opensource par défaut” et l’opendata





Sa requête a pour but de comprendre si NXI est “engagé” dans un combat utile, ou une simple position purement idéologique.



Autrement présenté: obtenir ce code source est-il une bonne publicité pour la cause de “l’opensource par défaut” et l’opendata ? Etait-ce vraiment la première action à mener ?

Aujourd’hui, quand un incroyant demandera “à quoi sert l’opensource par défaut ?”, seras-tu fier de lui présenter ces 7 millions de lignes en lui disant: “voilà ce qu’on a réussi à obtenir, c’est pas génial ?”

&nbsp;



Merci pour ton jugement mesuré.



Ce n’est pas une mise en demeure, je les fais généralement par lettre recommandée avec avis de réception.



Je maintiens que cette demande de code source ne servira à rien. Ce n’est pas parce qu’on a le droit de faire quelque chose que l’on est obligé de le faire.



Je sais que ce genre de demandes et d’articles font la joie de nombreux lecteurs de NXI, mais laisse moi le droit à la différence et le droit de m’exprimer sans être jugé par un fan qui a perdu son esprit critique.



J’aimais bien Xavier et ses articles quand il est arrivé, mais je trouve qu’il use maintenant trop souvent d’artifices du genre CADA pour faire plaisir aux lecteurs sans que ça apporte grand chose au niveau de l’Information avec un grand I qu’il apporte.



Je n’ai rien lu dans cet article sur ce qu’il compte faire de ces sources, j’essaie donc de savoir. Au moins, l’article de Marc sur la réforme de la justice disponible en téléchargement nous indique qu’il reviendra sur son contenu pour ce qui concerne le numérique, mais ici, rien, le vide le plus complet.


Ne pas oublier l’âge du COBOL créé pour les cartes perforées, donc, oui, il y a un un aspect vieillot avec un formatage des lignes de 80 caractères très codifié avec un rôle pour les colonnes bien défini.








Faith a écrit :



Sa requête a pour but de comprendre si NXI est “engagé” dans un combat utile, ou une simple position purement idéologique.



Vision étroite des chose ? La plupart considère peut-être que c’est déjà un combat utile ?

&nbsp;



Autrement présenté: obtenir ce code source est-il une bonne publicité pour la cause de “l’opensource par défaut” et l’opendata ? Etait-ce vraiment la première action à mener ?&nbsp;

Aujourd’hui, quand un incroyant demandera “à quoi sert l’opensource par défaut ?”, seras-tu fier de lui présenter ces 7 millions de lignes en lui disant: “voilà ce qu’on a réussi à obtenir, c’est pas génial ?”&nbsp;&nbsp;

Il a effectué une mesure administrative (de merde), afin d’obtenir des documents qui (selon moi et sûrement d’autres) devraient être aisément accessible par défaut.

Soyons sérieux, quel développeur de COBOL iraient s’occuper de faire la demande par défaut. Au moins maintenant c’est accessible à tous pour qui voudraient y jeter un oeil, dont des experts en COBOL, potentiellement intéressés mais n’ayant jamais poussé le vice à aller jusqu’à effectuer ces démarches administratives (de merde je répète encore, ca c’est cadeau et c’est mon point de vue)



D’ailleurs savait-on que c’était en COBOL avant qu’ils ne s’en occupent ? Savaient-on que c’était un ensemble de fichier de cette tête ?

Est-ce que les journalistes doivent connaître tous les langages de programmation au monde afin de pouvoir vérifier&nbsp; et étudier ce qu’il recoivent sans information préalables ? Qui sait si leur prochaine demande on ne tombera pas sur de l’ALGOL 58 ? Doit-on s’en priver juste parce qu’il ne comptent pas apprendre le langage donc abandonner la requête parce que tant pis ?

&nbsp;

Grâce à ca, on a appris des choses sur comment c’est organisé, la technologie utilisée et du bordel que ca peut être. Rien que ca c’est du boulot. Après si c’est utile ou non, c’est entièrement une appréciation personnelle. Au moins ici, si tu n’es pas content, tu peux te désabonner, alors que te désabonner de l’Etat Francais, bon courage.









Raahhh a écrit :



&nbsp; La plupart considère peut-être que c’est déjà un combat utile ?





“La plupart”… … La plupart de quoi ?

La plupart des gens, non, pardon: la quasi-totalité des gens n’en a absolument rien à faire.





Soyons sérieux, quel développeur de COBOL

iraient s’occuper de faire la demande par défaut. Au moins maintenant

c’est accessible à tous pour qui voudraient y jeter un oeil, dont des

experts en COBOL, potentiellement intéressés mais n’ayant jamais poussé

le vice à aller jusqu’à effectuer ces démarches administratives (de

merde je répète encore, ca c’est cadeau et c’est mon point de vue)



Des experts en Cobol vont aller inspecter ces 7 millions de lignes de code pour… pour quoi au fait ?



Les experts Cobol ont l’age d’avoir autre chose à faire que d’inspecter

un code qui tourne sur une machine et dont le seul impact s’il y a des

bug est qu’il se trompe légèrement sur une allocation familiale.





Par ailleurs, rappelons que le code obtenu n’est pas le code sur lequel

travaillent les informaticiens de la CAF: c’est visiblement un code

généré. Comprendre et modifier ce code est donc 100x plus difficile que

la maintenance normale de cette appli.

&nbsp;



D’ailleurs savait-on que c’était en COBOL avant qu’ils ne s’en occupent ? Savaient-on que c’était un ensemble de fichier de cette tête ?



&nbsp; Et maintenant, les quelques lecteurs de NXI le savent.

Et parmi ces lecteurs, j’aimerais savoir combien en ont quelque chose à faire, savoir qui va en tirer la moindre leçon profitable.



Un peu comme si je te disais qu’une partie du logiciel de ma banque tourne en RPG3, et que c’est encore plus rébarbatif que ce Cobol. Tu le sais maintenant, et ?&nbsp;

&nbsp;



Grâce à ca, on a appris des

choses sur comment c’est organisé, la technologie utilisée et du bordel

que ca peut être.



Si tu as appris quelque chose, c’est que tu n’as jamais travaillé sur d’anciens systèmes.





Rien que ca c’est du boulot. Après si c’est utile ou

non, c’est entièrement une appréciation personnelle.



En lisant ça, je me souviens d’un célèbre personnage qui voulait devenir “pêcheur de glaçons”… c’est du boulot… après si c’est utile ou non…

&nbsp;

Vive les pêcheurs de glaçons !

&nbsp;



personne n’a fait de dépôt github pour qu’on puisse naviguer dans le code plus facilement qu’en téléchargeant une archive de 500Mo a 30ko/s? (oui, le CDN à l’air sur les genoux au moment ou j’écrit ce comm <img data-src=" />)


Bossant à la DSI de la cnaf, vous me faites beaucoup rire dans les commentaires, merci <img data-src=" />


Et je confirme, c’est bien le code en production. Il ya effectivement du code généré à partir de l’outil install /1 (pour la description des données) , des instructions liées au passage à une filière unique sous machines Linux avec un compilateur visual cobol et un moteur d’exécution libertp/liberbatch… Et le code est ancien, le projet cristal a débuté dans les années 90, mais il évolue tous les jours et il a encore de beaux jours devant lui.


Rhoo le niveau de certainsc ommentaires, je suis déçu. <img data-src=" />

&nbsp;







&nbsp;bibiwan14 a écrit :



Merci du retour(tu vas te faire de chouettes copains <img data-src=" />)









Faith a écrit :



En fait, personne de normalement constitué ne va demander le code source de tels programmes.



C’est là qu’on voit que NXI est bien devenu un journal “normal”: faire des enquêtes sur des trucs parfaitement inutiles, juste parce qu’un texte de loi a écrit que c’était possible tout en annonçant “grace à nous, vous avez obtenu le code (caché) du programme”, c’est typiquement le genre de perte de temps que certains journaux affectionnent pour faire une “Une exclusive”



Pardon NXI, hein, je vous ai adoré et soutenu financièrement à une époque… mais sérieusement, là, à quoi ça rime ?

On a 6.949 millions de lignes de code, et on est super heureux.





Je partage assez ton point de vue sur la question, tout en trouvant très bien qu’on puisse demander à obtenir ce code source.



Pour moi ce qui compte c’est que la CAF verse ce qu’elle est censé verser, c’est déjà pas mal. Les règles sont connues (ou documentées).







fred42 a écrit :





  • 42.





    Pour ce que j’ai dit juste au-dessus.







    Sebaas a écrit :



    Ta requête est stupide, franchement elle rime à quoi cette mise en demeure à part nourrir ton égo? NXI est dans son rôle de média engagé pour “l’opensource par défaut” et l’opendata de mener ce type d’initiative





    L’Open Source je ne sais pas, ça parle pas mal Windows aussi ici (enfin, pas majoritairement).









bibiwan14 a écrit :



Bossant à la DSI de la cnaf, vous me faites beaucoup rire dans les commentaires, merci <img data-src=" />





Merci, c’est intéressant d’avoir le point de vue d’une personne qui peut en parler en connaissance de cause.







bibiwan14 a écrit :



Et je confirme, c’est bien le code en production. Il ya effectivement du code généré à partir de l’outil install /1 (pour la description des données) , des instructions liées au passage à une filière unique sous machines Linux avec un compilateur visual cobol et un moteur d’exécution libertp/liberbatch… Et le code est ancien, le projet cristal a débuté dans les années 90, mais il évolue tous les jours et il a encore de beaux jours devant lui.





Je me dis que ça a l’air dantesque de maintenir un truc pareil, sais-tu pourquoi le code est aussi énorme en première approche (de ce que je lis des commentaires) ?

Marrant le nom “visual cobol”, on pense au départ à un truc Microsoft, ce que ce n’est pas je suppose vu qu’on parle de Linux.



Tu peux expliquer pourquoi ?

Que l’on puisse rire aussi !








OlivierJ a écrit :



Je me dis que ça a l’air dantesque de maintenir un truc pareil, sais-tu pourquoi le code est aussi énorme en première approche (de ce que je lis des commentaires) ?





Sauf erreur, les 63000 premières lignes de chaque fichier sont des déclarations.

Ca fait dans les 3 millions de lignes de déclaration…

Je compte 2 millions de lignes de commentaire (dont 1.5 million hors des déclarations)

Plus 250.000 lignes vides (dont 150.000 hors des déclarations)



Il nous reste 2 millions de ligne de code “réel”

parmi celles là, je compte:

&nbsp;250K “MOVE” (affectation “simple” de variable, pas un calcul car pour appeler une sous routine, il faut remplir les bonnes variables: on ne peut pas l’appeler avec des paramètres)

175K “END-xxxx” (fin de if, etc)

130K “PERFORM” (appel de sous-routine)



Bref, le code enfle vite…



Je ne comprends toujours pas la position et le questionnement. Vas-tu poster ces remarques sur chacune des news qui ne t’intéressent pas ?



&nbsp;

&nbsp;Tu peux les éviter et ne pas aller dessus.





Faith a écrit :



“La plupart”… … La plupart de quoi ?&nbsp;

La plupart des gens, non, pardon: la quasi-totalité des gens n’en a absolument rien à faire.&nbsp;





&nbsp;Des commentateurs de cette news. J’essaie d’éviter les généralisations à l’emporte-pièce comme certains.



&nbsp;&nbsp;

Des experts en Cobol vont aller inspecter ces 7 millions de lignes de code pour… pour quoi au fait ?




Les experts Cobol ont l'age d'avoir autre chose à faire que d'inspecter     

un code qui tourne sur une machine et dont le seul impact s'il y a des



bug est qu’il se trompe légèrement sur une allocation familiale.

Ce n’est pas à moi de trouver une raison, s’il y en a un, il pourra te répondre. Beaucoup de généralisation encore ici .



Je rame sévère avec les commentaires inline….



&nbsp;



&nbsp;



Si le code obtenu n’est pas le code de travail, pourquoi n’a-t-il pas été transmis par exemple. Si l’auteur n’a eu que ca, devait-il le garder pour lui-même menant cette procédure à rien ? Il n’y a aucune raison à la rétention d’information de sa part.&nbsp;




 &nbsp;---       

&nbsp;Et maintenant, les quelques lecteurs de NXI le savent.&nbsp;Et parmi ces lecteurs, j'aimerais savoir combien en ont quelque chose à faire, savoir qui va en tirer la moindre leçon profitable.&nbsp;&nbsp;&nbsp;





&nbsp;Ils peuvent bien évidemment te répondre ou non, mais l’absence de la preuve n’est pas la preuve de l’absence.&nbsp;



 &nbsp;       

&nbsp;---

&nbsp;Si tu as appris quelque chose, c'est que tu n'as jamais travaillé sur d'anciens systèmes.&nbsp;






&nbsp;Oui, c'est vrai, et alors ? Désolé de travailler sur du moderne et/ou dans un autre domaine. Je viens sur un site de news pour avoir des informations, étonnant ?        






  ---       

&nbsp;En lisant ça, je me souviens d'un célèbre personnage qui voulait devenir "pêcheur de glaçons"... c'est du boulot... après si c'est utile ou non...&nbsp;&nbsp;&nbsp;Vive les pêcheurs de glaçons !&nbsp;






&nbsp;Sacré vision étriquée des choses tiens. Messieurs les scientifiques arrêtez tout de suite, Mr. Faith a dit que tout vos recherches sont inutiles sans application directe et immédiate présentables&nbsp;<img data-src=">

Chapeau pour le temps que tu as dû passer à cette analyse.








Raahhh a écrit :



Si le code obtenu n’est pas le code de travail, pourquoi n’a-t-il pas été transmis par exemple.&nbsp;



&nbsp;Parce que ce n’est pas ce qui est demandé.

Des gens ne connaissant ni l’informatique ni les lois se sont dit “et si on faisait voter une loi obligeant de diffuser le code source exécuté ?” et bien voilà… Le lobby de “l’opendata” est content, il peut se vanter d’avoir sa loi… inutile.



&nbsp;Et pourquoi ce code et pas celui de développement ? parce que rien ne prouve que le code de développement est celui qui tourne, or ce qui intéresse “les gens” c’est ce qui tourne vraiment, non ?





&nbsp; Si

l’auteur n’a eu que ca, devait-il le garder pour lui-même menant cette

procédure à rien ? Il n’y a aucune raison à la rétention d’information

de sa part.&nbsp;



&nbsp;L’auteur a lancé une procédure inutile, il en a écrit un article inutile.

Je n’ai rien à lui reprocher, il fait ce qu’il veut, et moi, je pointe la vacuité de cet exercice.





Sacré vision étriquée des choses tiens. Messieurs les scientifiques

arrêtez tout de suite, Mr. Faith a dit que tout vos recherches sont

inutiles sans application directe et immédiate présentables



Ici, je parle d’informatique en tant qu’informaticien. Et je parle à un public majoritairement technophile (dont pas mal d’informaticiens)

Pour un informaticien ayant travaillé sur de vrais projets un peu ancien, il était évident que cette demande n’avait aucun intérêt et ne donnerait rien d’utile. Preuve est faite aujourd’hui.

&nbsp;

&nbsp;

[la plupart] Des commentateurs de cette news. J’essaie d’éviter les généralisations à l’emporte-pièce comme certains.



En l’occurrence,&nbsp; tu fais une généralisation à l’emporte pièce.

Dans cette news, je ne vois pas grand monde d’intéressé par le résultat…



Et ça n’a rien à voir avec le langage: ça aurait été du Java, ça aurait été la même chose. L’open source, c’est adapté à certains projets construit dans cet optique, avec des équipes de développement tournées vers l’open-source.

Mais open-sourcer un projet qui n’a pas été conçu pour ça, c’est bidon.

&nbsp;Mes 15 ans de carrière ont été consacrés à maintenir des anciens projets, à découvrir comment corriger un bug en plein milieu ou à rajouter une fonctionnalité sans tout péter (dans des langages encore plus pourris que ce code)

Open sourcer de tels code est parfaitement inutile: le comprendre dans son intégralité est impossible sans l’avoir soi-même fait évoluer pendant des années.



Alors open-sourcer le calcul des aides de la CAF…&nbsp;<img data-src=" />









OlivierJ a écrit :



Chapeau pour le temps que tu as dû passer à cette analyse.





Ce n’était pas grand chose: grep + regex + wc et c’est vite réglé !



&nbsp;&nbsp;Mais merci ;)









fred42 a écrit :



TP pour temps partagé, comme à la grande époque où un seul ordinateur central servait plusieurs utilisateurs, par opposition aux travaux par batch où l’on récupérait le résultat à la fin du traitement.





TP Monitor pour Transaction Processing Monitor. On parle de transactions.

Si on prend l’image du feu minitel, pour faire simple et visuel, chaque écran affiché à l’utilisateur est identifié avec un code transaction. Quand l’utilisateur valide son écran, le central récupère le code de la transaction, celui de l’utilisateur et les données saisies et tout ça lui permet de déterminer le programme à lancer; le résultat du programme pourra conduire à afficher le même écran pour complétion ou l’écran suivant qui est identifié par un autre code transaction.



Au global la machine ne fait qu’attendre que les utilisateurs valident leurs écrans pour déclencher ses traitements, c’est pour cela que le nombre d’utilisateurs connectés peut-être très élevé.



Maintenant l’interface utilisateur est souvent enrobée d’une surcouche style java pour rendre l’ensemble plus sexy mais derrière c’est toujours la même mécanique.



Le temps partagé c’est plutôt une notion Unix ;-)









Raahhh a écrit :



Si le code obtenu n’est pas le code de travail, pourquoi n’a-t-il pas été transmis par exemple.





Tu mériterais qu’on te donne du généré Pacbase à lire : on obtient du cobol avec des goto tout partout. Et les écrans de l’AGL Pacbase te donneraient aussi des boutons car ils sont incompréhensibles pour le néophyte.



Ici c’est pareil, si en plus l’outil est maison, il est incompréhensible pour ceux qui n’ont pas étés formés. Le généré cobol est ici un compromis lisible.



Merci de la correction.



Mais temps partagé est plus vieux qu’UNIX, même si la notion a bien été reprise pour ce système.


Je parlais bien sûr de Transaction Processing ( du CICS par exemple)

https://en.wikipedia.org/wiki/CICS

Le temps partagé date des années 60 quand on ne faisait même pas encore de multiprocessing mais seulement du multitasking.


Je suppose que la raison de cet article était de donner un exemple positif de la l’application de la loi numérique suite à cet article



Car en dehors de cela, je vois moi aussi peu d’utilité au code obtenu.

Qu’un groupe de bénévoles (ou non) s’empare du code, pourquoi pas, mais pour en faire quoi ?

Un concurrent au site officiel déjà mis en ligne et qui regroupe plus d’aides que la seule CAF ?


Pourquoi mériterais ?

Sinon merci de l’info. J’irais lire un peu plus sur COBOL ca a l’air assez différent de ce que je connais avec Fortran ou plus récent.








Faith a écrit :



&nbsp;Parce que ce n’est pas ce qui est demandé.

Des gens ne connaissant ni l’informatique ni les lois se sont dit “et si on faisait voter une loi obligeant de diffuser le code source exécuté ?” et bien voilà… Le lobby de “l’opendata” est content, il peut se vanter d’avoir sa loi… inutile.



&nbsp;Et pourquoi ce code et pas celui de développement ? parce que rien ne prouve que le code de développement est celui qui tourne, or ce qui intéresse “les gens” c’est ce qui tourne vraiment, non ?



&nbsp;Oui j’entends bien, je parlais de la version en utilisation. Ma faible connaissance de COBOL et son écosystème ainsi que les commentaires précédents me faisaient penser que c’était une sorte de bytecode.



&nbsp;

&nbsp;L’auteur a lancé une procédure inutile, il en a écrit un article inutile.&nbsp;

Je n’ai rien à lui reprocher, il fait ce qu’il veut, et moi, je pointe la vacuité de cet exercice.&nbsp;

Autant, je comprends cette réaction sur la première news nous informant de la demande CADA, mais après des mois et obtention du résultat, quel intérêt de ne pas le publier même si l’auteur s’est rendu compte de son erreur?



&nbsp;

Ici, je parle d’informatique en tant qu’informaticien. Et je parle à un public majoritairement technophile (dont pas mal d’informaticiens)

Pour un informaticien ayant travaillé sur de vrais projets un peu ancien, il était évident que cette demande n’avait aucun intérêt et ne donnerait rien d’utile. Preuve est faite aujourd’hui.

Ah ok c’est pour du “ha je vous l’avais bien dit!” <img data-src=" /> Même si ca reste à prouver sur le long terme… Au sens strict un informaticien est un scientifique, ce qui n’est pas vrai au sens populaire. Enfin bon, c’était pour rebondir sur “l’histoire” du pêcheur de glacon. Ton avis est éclairé et intéressant, mais cela ne constitue pas une preuve en soit, l’argument d’autorité compte pas vraiment.



En l’occurrence,&nbsp; tu fais une généralisation à l’emporte pièce.

Dans cette news, je ne vois pas grand monde d’intéressé par le résultat…

En l’occurence non? Mon affirmation est chiffrable donc réfutable, après un nouveau tour des commentaires je vois trois personnes opposée du même avis.





Et ça n’a rien à voir avec le langage: ça aurait été du Java, ça aurait été la même chose. L’open source, c’est adapté à certains projets construit dans cet optique, avec des équipes de développement tournées vers l’open-source.

Mais open-sourcer un projet qui n’a pas été conçu pour ça, c’est bidon.

&nbsp;Mes 15 ans de carrière ont été consacrés à maintenir des anciens projets, à découvrir comment corriger un bug en plein milieu ou à rajouter une fonctionnalité sans tout péter (dans des langages encore plus pourris que ce code)

Open sourcer de tels code est parfaitement inutile: le comprendre dans son intégralité est impossible sans l’avoir soi-même fait évoluer pendant des années.



Alors open-sourcer le calcul des aides de la CAF…&nbsp;<img data-src=" />



Le langage a évidemment à voir, du moins pour une partie non nulle. Je ne pense pas que l’objectif ici était d’en créer un projet open-source à partir des données, mais plutôt de pouvoir analyser ce qui possible ou ce qui peut en être retiré. Ce que tu en dis est d’ailleurs assez effrayant même si attendu. Tu as des connaissances intéressantes que j’ai apprécié de lire, mais qu’est-ce que tu es blasé, ca m’en déprimerait presque&nbsp;<img data-src=" />



WAT, c’est en COBOL? Mais t’es serieux? Je croyais que ca n’existait plus que dans les vieux systemes bancaires crees dans les anness 70 et difficillement remplacable aujourd’hui.&nbsp;



Ca en dit long sur l’efficacite de la CAF et sur leur gestion interne…&nbsp;


“Fin janvier, nous avons ainsi tenté d’obtenir le code source des logiciels destinés au calcul de différentes aides versées par les CAF : prime d’activité, APL, RSA et allocations familiales.”



N’aurait-il pas été plus judicieux d’exiger directement les équations et les paramètres complets (barèmes, tranche de revenus, lieux de résidence, situation familiale, enfant(s) à charge, coefficient mysterieux qui sort du chapeau) qui entrent dans le calcul de chaque type d’aide.



J’ai déjà fait cette demande à la CAF de mon département (sans succès) pour comprendre comment était calculé, notamment, le quotient familial et les différentes aides auxquelles nous sommes éligibles (PAJE, APL, prime d’activité, etc) ceci afin d’anticiper sur les éventuels changements de situation et surtout pour ne pas se retrouver à rembourser des trop-perçus. Ces situations sont très problématiques pour des milliers de personnes, le plus souvent de bonne foi. Faire des recours contentieux, c’est bien joli, mais comment développer un quelconque argumentaire face à une administration qui ne donne pas un semblant d’explication sur les méthodes de calcul. On passe pour des mendiants.



De mon côté, je ne suis jamais parvenu à obtenir une réponse. Renvoyer vers les simulateurs n’est d’aucune utilité, d’autant qu’il est bien précisé que seule une estimation est donnée. Et ça ne répond pas à la nécessité de transparence qui devrait être la norme. D’autant plus quand c’est l’argent du contribuable qui est en jeu.



Le source proposé en téléchargement permet juste de constater que c’est une belle usine à gaz, ce que tout le monde sait déjà. L’impression qui en ressort est que la CNAF vous a lâché ça, histoire de vous donner un os à ronger, pour ne surtout pas avoir à répondre aux questions essentielles, celles qui poseraient de lourdes interrogations d’équité territoriale, d’égalité de traitement, et mettre au jour des incohérences. Mais je vois le mal partout…








Raahhh a écrit :



&nbsp;Autant, je comprends cette réaction sur la première news nous informant de la demande CADA, mais après des mois et obtention du résultat, quel intérêt de ne pas le publier même si l’auteur s’est rendu compte de son erreur?





Ah mais je réagissais déjà comme ça à l’époque ;)

Quant à le publier aujourd’hui, aucun intérêt à ne pas le publier, en effet: ça fait des vues et un nombre de commentaires raisonnables.

Le but est atteint. (par contre le nombre d’abonnés vient de passer sous 8400)

&nbsp;



En l’occurence non? Mon affirmation est chiffrable donc réfutable,

après un nouveau tour des commentaires je vois trois personnes opposée

du même avis.



&nbsp;J’ai fait de même et voici mon bilan:

47 intervenants, 7 critiquant la démarche, 6 la considérant comme positive, et 34 intervenant uniquement HS ou pour faire des blagues (et parmi les 13 premiers, nous sommes nombreux à aussi avoir commenté HS ou pour des blagues)

“la plupart” des commentateurs me semble être là pour se divertir sans se prononcer sur le sujet même de la news. (si tu me le demandes, je te répondrais que je suis là pour me divertir en essayant de respecter le sujet de la news…)





mais qu’est-ce

que tu es blasé, ca m’en déprimerait presque&nbsp;<img data-src=" />



Merci pour ta compassion.

Faire des études en Intelligence Artificielle et passer toute sa carrière en banque a sans doute souvent ce genre d’effet.

&nbsp;Mais je ne regrette rien: ce boulot alimentaire m’a offert une tranquillité et une sérénité dans ma vie réelle qu’aucun de mes proches ni collègues n’a atteint.

&nbsp;



Argumentaire typique de mauvaise foi



Les réponses à la plupart des questions que tu poses sont fournies directement dans le site de la CAF (avec explications et barêmes à l’appui)

Les simulations permettent une réponse supplémentaire à ces questions, mais elles ne fournissent que des “estimations” car bien souvent les données entrée par les utilisateurs ne sont pas exactes (estimation) et comme il existe des effets de seuils (décrits par ailleurs dans le site) il se peut qu’il y ait des différence. Si les données que tu rentres sont exactes, les résultats en sortie sont les bons.



Mais en fait chez toi, tout est résumé dans le “coefficient mysterieux qui sort du chapeau”. Ben oui, vous comprenez ma bonne dame, à la CAF ils sont payés à faire des calculs à la main… ou plutot au doigt mouillé.








carbier a écrit :



Je suppose que la raison de cet article était de donner un exemple positif de la l’application de la loi numérique suite à cet article&nbsp;





&nbsp;C’est un peu ce que j’avais cru comprendre aussi.









Raahhh a écrit :



Il a effectué une mesure administrative (de merde), afin d’obtenir des documents qui (selon moi et sûrement d’autres) devraient être aisément accessible par défaut.



  Soyons sérieux, quel développeur de COBOL iraient s'occuper de faire la demande par défaut. Au moins maintenant c'est accessible à tous pour qui voudraient y jeter un oeil, dont des experts en COBOL, potentiellement intéressés mais n'ayant jamais poussé le vice à aller jusqu'à effectuer ces démarches administratives (de merde je répète encore, ca c'est cadeau et c'est mon point de vue)        






  D'ailleurs savait-on que c'était en COBOL avant qu'ils ne s'en occupent ? Savaient-on que c'était un ensemble de fichier de cette tête ?        

Est-ce que les journalistes doivent connaître tous les langages de programmation au monde afin de pouvoir vérifier&nbsp; et étudier ce qu'il recoivent sans information préalables ? Qui sait si leur prochaine demande on ne tombera pas sur de l'ALGOL 58 ? Doit-on s'en priver juste parce qu'il ne comptent pas apprendre le langage donc abandonner la requête parce que tant pis ?

&nbsp;

Grâce à ca, on a appris des choses sur comment c'est organisé, la technologie utilisée et du bordel que ca peut être. Rien que ca c'est du boulot. Après si c'est utile ou non, c'est entièrement une appréciation personnelle. Au moins ici, si tu n'es pas content, tu peux te désabonner, alors que te désabonner de l'Etat Francais, bon courage.








&nbsp;Oui, c'est un peu comme les Panama Papers / LuxLeaks / etc : les données brutes sont imbuvables et c'est bien parce que des centaines de journalistes ou de spécialistes en tous genres ont participé à ces découvertes qu'on a pu rendre public des failles dans la "matrice" de notre système financier et bancaire.       

&nbsp;

&nbsp;La différence avec la CAF dans cet article (ci dessus) ? Et bien, la loi Numérique prévoit la transparence des algorithmes publics, et donc, en l'occurrence ici, la CAF a le devoir légal de ne pas cacher l'information quand on la lui demande.

&nbsp;

&nbsp;À quoi ça sert de publier ça ? Effectivement, à rien d'autre que de rendre public des informations qui concernent tout le monde. Si on regarde les conséquences des révélations des Panama Papers, même si des gens ont pris des risques, que d'autres ont étudié les documents et publié des dossiers de presse (qui ont fait la Une des journaux), ça n'a effectivement rien changé (pour le moment).








OlivierJ a écrit :



Je me dis que ça a l’air dantesque de maintenir un truc pareil, sais-tu pourquoi le code est aussi énorme en première approche (de ce que je lis des commentaires) ?&nbsp;



Ces fichiers sont une concaténation de plusieurs fichiers (des copy cobol), sachant qu’il y en a des générés (beaucoup) et d’autres qui ne le sont pas. Le développeur ne travaille pas directement sur ces fichiers, mais sur des copy plus modulaires.









Faith a écrit :



En fait, personne de normalement constitué ne va demander le code source de tels programmes.




C'est là qu'on voit que NXI est bien devenu un journal "normal": faire des enquêtes sur des trucs parfaitement inutiles, juste parce qu'un texte de loi a écrit que c'était possible tout en annonçant "grace à nous, vous avez obtenu le code (caché) du programme", c'est typiquement le genre de perte de temps que certains journaux affectionnent pour faire une "Une exclusive"      






Pardon NXI, hein, je vous ai adoré et soutenu financièrement à une époque... mais sérieusement, là, à quoi ça rime ?       

On a 6.949 millions de lignes de code, et on est super heureux.

&nbsp;








Je suis pour le moins épaté, sinon subjugué par ce genre de commentaires. Puisque l’incompréhension perdure dans certains esprits, je vais expliquer l’intérêt&nbsp;:     







  1. Contraindre les administrations à ouvrir le code a déjà pour ambition de voir respecter les normes votées par le législateur. Si tu considères que ces ouvertures ne servent à rien, contacte «&nbsp;ton&nbsp;»député et demande-lui de porter un amendement pour imposer la fermeture des codes,démultiplier les marchés non publics pour du logiciel proprio sur lequel tu auras encore moins de compréhension, je peux te le garantir.



    &nbsp;2) Xavier est juriste de formation. Il n’a pas aucune ambition de déchiffrer chaque ligne pour t’en analyser la tuyauterie. Il n’a pas cette compétence-là et n’a jamais prétendu l’avoir. On a certes une équipe de dév, mais elle est occupée à mettre à jour le site, et bon nombre d’autres projets qui t’incitent peut-être aujourd’hui à venir et revenir sur un titre indépendant qui s’est monté seul. En clair, l’ambition n’est pas que X ou Y dans l’équipe puisse t’expliquer ce code, mais de fournir aux «&nbsp;sachants&nbsp;» la matière première qui leur permettra de plonger et comprendre. Sans elle, ils peuvent retourner faire du poney-piscine ou prendre rendez-vous chez une esthéticienne. &nbsp;

    &nbsp;

    &nbsp;3) Il m’arrive de sortir des textes de loi – hier enfin de journée encore – qui n’intéressent peu voire pas Next INpact. Mais l’objectif est aussi d’apporter de l’essence à tous ceux derrière les écrans qui y trouveront, je l’espère, une utilité pour leur métier, leur vie personnelle, leurs connaissances, leur engagement politique, etc.

    &nbsp;

  2. Enfin, le temps passé à répondre à ces inepties, on ne le passe pas à rédiger les actus que toi, ou d’autres apprécierez peut être, tout en jetant un discrédit sur le formidable travail de Xavier, qui plus qu’à être critiqué, devrait AMHA être salué comme l’a fait encore hier Calimaq. Tu n’es pas obligé de partager ces louanges, mais il est pas mal de faire un petit effort pour mesurer l’aspect positif de ces petites briques que tu feins ou te montres incapable de comprendre.&nbsp;



    Bonne journée ici ou ailleurs (le clic a toujours été libre, comme ce code).&nbsp;



+1000

Les critiques contre le cobol ou parce qu’on ne sait pas lire un texte ou un code sont stériles

Même si un seul lecteur peut déchiffrer ce qui est écrit, je salue l’initiative.

<img data-src=" />


&nbsp;je suis en train de tester un outil pour transpiler le code en Java, c’est loin d’être gagné sachant qu’il y a différent type de Cobol et que souvent, ce genre d’outil plante.



Sinon pour la qualité de code, je la trouve plutôt bien documenté et pour la plupart de ceux qui trouve ce code imbitable, oui il l’est mais pas plus que d’autres codes COBOL que j’ai pu croiser au cours de mes missions dans les services publiques et mutuelles.



Penser que le service publique dispose des dernières techno est utopique.








MarcRees a écrit :



Je suis pour le moins épaté, sinon subjugué par ce genre de commentaires.



&nbsp;



 Merci pour ta réponse.       

&nbsp;&nbsp;







  1. Xavier est juriste de formation. Il n’a pas aucune ambition de déchiffrer chaque ligne pour t’en analyser la tuyauterie



    Certes, et je ne lui en ai pas fait la demande.

    Si je devais lui demander quelque chose, ce serait de préciser si ce code est bien “ouvert”, ou s’il est, comme je crois l’avoir compris après lecture des textes, simplement divulguable (et divulgué).

    Autrement dit, ce code est-il passé sous licence libre ou est-il simplement consultable, mais pas réutilisable ?



    Autre point: la loi semble indiquer que “les opérations effectuées par le traitement [doivent être divulguées]”



    La CAF aurait-elle eu le droit de divulguer seulement le pseudo code du programme ? Ou de ne divulguer que les spécifications fonctionnelles ?&nbsp; Ou même tout simplement de ne divulguer que les conditions d’indemnisation, qui regroupent normalement la totalité des règles fonctionnelles ? Ou pourquoi pas divulguer la totalité du code sous forme assembleur (ou son équivalent selon la plateforme) ? Ou bien le code expurgé de ses commentaires ? etc, etc…

    &nbsp;

    Parce que les articles mélangent allègrement algorithmes et opérations effectuées. Or un algorithme transcende les opérations. D’ailleurs, c’était un peu le but de mon comptage précédent: 250.000 opération MOVE sans le moindre intérêt algorithmique.





    mais il est pas mal de faire un petit effort pour mesurer l’aspect positif de ces petites briques que tu feins ou te montres incapable de comprendre.



    &nbsp;Vu que je viens de relire la totalité des commentaires pour répondre à Raahhh, il me semble que les miens sont parmi les plus argumentés. Et je suppose que si tu as pris la peine de me répondre, c’est que tu ne me considères pas comme étant de mauvaise foi.





    (le clic a toujours été libre, comme ce code).



    Pour le code, j’ai un doute (comme précisé ci-dessus)

    Pour le clic, oui tout à fait, et je continue de me divertir sur NXI.

    &nbsp;



    PS



    Si tu considères que ces ouvertures ne servent à rien, contacte «&nbsp;ton&nbsp;»député et demande-lui de porter un amendement pour imposer la fermeture des codes



    Il est dommage de donner dans la mauvaise foi dès le début de cette réponse.



    Trouver quelque chose inutile n’a jamais voulu dire qu’on doit militer pour l’interdire. Etre inutile c’est n’être ni bénéfique, ni nocif.









Faith a écrit :



&nbsp;

Merci pour ta réponse.





Cependant, il est dommage de donner dans la mauvaise foi dès le début de cette réponse.

Trouver quelque chose inutile n’a jamais voulu dire qu’on doit militer pour l’interdire. Etre inutile c’est n’être ni bénéfique, ni nocif. &nbsp;





“Inutile” ? Relire ma réponse car tu patines, or je n’ai pas le temps de boucler dans les commentaires.

&nbsp;Bonne journée.&nbsp;<img data-src=" />



Pardon pour la formulation, c’est vrai qu’à l’écrit elle ne passe pas.<img data-src=" /> après avoir aperçu le code, il est très clair. J’ai déjà vu des trucs illisibles en cobol sans qu’on parle d’obfuscation de code.


Le fait de mettre à disposition un code à la communauté est louable.

Par contre il manque quand même une mise en perspective: je n’ai vu nul part mention des outils que l’Etat met déjà à disposition des citoyens pour répondre à un grand nombre de questions et pour notamment faire des simulations.



Parceque dire que rendre ce code open-source est une fin en soit, c’est comment dire… digne de certains barbus qui croient que tout code non public est géré par une bande de rapaces dont le seul but est de les flouer.



J’espère donc qu’un groupe de dev motivés va se saisir du code pour … en faire quelque chose.

Et donc j’espère que NXi va suivre l’évolution de tout ceci pour au moins montrer aux plus sceptiques qu’ils avaient tort de douter des vertus de tout ceci.


Tu croyais… mais tu te trompais.



Cobol est bien vivant, et si on a du mal a s’en débarasser, c’est peut-être bien parce qu’il n’est pas si facile de faire un meilleur langage dans le domaine pour lequel il a été pensé.



Alors oui, certains aspects montrent son âge (format de ligne, majuscule, syntaxe pensée pour faciliter la vie du compilateur), mais c’est secondaire. D’ailleurs question pour les cobolistes: Rien de changé de ce côté là (alors que j’ai croisé des compilateurs Fortran en format libre il y a quasiment 40 ans) ?








carbier a écrit :



Et donc j’espère que NXi va suivre l’évolution de tout ceci pour au moins montrer aux plus sceptiques qu’ils avaient tort de douter des vertus de tout ceci.





Si seulement le rôle d’un journaliste était de convaincre les “plus sceptiques”. Un journaliste rencontre des gens, étudie l’actualité dans le but de publier des choses, voire il exprime plus ou moins son opinion (notamment dans des éditos, des tribunes). Libre aux lecteurs de chercher la vertu des choses et de comprendre ce qu’ils lisent (ou de gober les mots sans aucun filtre au risque de se méprendre tout seul).



Dis comme ça je comprends.<img data-src=" />



(et je constate que nos critère de perception d’un langage diffèrent fortement, vive la diversité)








Radithor a écrit :



Si seulement le rôle d’un journaliste était de convaincre les “plus sceptiques”. Un journaliste rencontre des gens, étudie l’actualité dans le but de publier des choses, voire il exprime plus ou moins son opinion (notamment dans des éditos, des tribunes). Libre aux lecteurs de chercher la vertu des choses et de comprendre ce qu’ils lisent (ou de gober les mots sans aucun filtre au risque de se méprendre tout seul).





Quand je parlais de “convaincre” ce n’était bien entendu pas via une argumentation en elle même mais juste via un suivi de la vie de ce code dans les mains de la société civile, quitte à faire un point dans un an pour voir ce qui a été fait (ou pas).

Encore une fois l’utilité d’une chose n’est pas uniquement liée à l’existence de celle-ci mais à ce qu’on en fait (ou pas).









carbier a écrit :



Parceque dire que rendre ce code open-source

(…)

J’espère donc qu’un groupe de dev motivés va se saisir du code pour … en faire quelque chose.





Comme dit plus haut, je ne crois pas que le code soit devenu open-source.

Dans ce cas, un groupe de dev, même motivés, n’aurait pas le droit d’en faire grand chose.

&nbsp;









MarcRees a écrit :



Relire ma réponse car tu patines





Evidemment, si je ne tire pas les même conclusions que MarcRees, c’est que je “patine”.



On en trouve des rigolotes dans les commentaires de “CGS101” :



LK100-DPTREF contient la plus récente des deux dates :

DD validité prestation ou DD validité règle (CNVB ou CNVD)

LK100-DPERRF contient la plus ancienne des deux dates :

DF validité prestation ou DF validité règle (CNVB ou CNVD)



10)Si la DD de validité de la prestation est postérieure au MT

soustraction d’un mois à DD canevas D (validité règle)

… à quoi ça sert ?

20)Modification pour éviter appel à CMM010 pour calculer

le mois précédant une date très grande (9999/12/31), le

calcul n’ayant pas d’intéret, et de plus provoque un rejet

dans la nouvelle version de CMM010.



-ACx-

*

Ce paragraphe est appelé pour calculer deux dates LK100-DPERRF

& LK100-DPERRF, qui ne semblent pas utilisées par la suite :

aucune utilisation dans les services appelés par le CGM101.

analyse sur les niveaux de définition inférieurs/supérieurs

les REEFINES,… A creuser !!!???

*


&nbsp;Faith & fred42 sont des trolls qu’il est préférable d’ignorer.


Eh ben ça se bastonne sec pour pas grand-chose ici …



On résume : on a un article succinct qui ne ment pas sur son contenu ni son but “on a demandé le code source à la CNAF, ils nous les ont donnés, les voilà”.&nbsp;



De l’autre côté, un paquet de monde qui fusille l’auteur parce qu’il n’explique pas précisément à quoi sert chaque ligne du fichier …&nbsp;



C’est écrit en toutes lettres dans l’article



&nbsp;

Libre maintenant à la société civile de s’emparer de ces données publiques, pour de nouvelles simulations de droits, d’éventuelles vérifications entre modalités de calcul et réglementation en vigueur, etc. N’hésitez d’ailleurs pas à revenir vers nous si vous dénichiez des éléments intéressants au milieu de ces millions de ligne de code…

Du coup je comprend vraiment pas les arguments de certains, mise à part peut-être l’envie de se la raconter “moi je programmais déjà en 1960” ou de faire chier gratuitement …&nbsp;


Comme certain ici, la seule mise à disposition du code me laisse un peu sur ma faim. Ma réaction était plutôt “soit… et du coup ?”. Ici, le boulot s’arrête à la mise à disposition du code. Il n’y a pas de création de groupe de travail dessus. Un audit du code aurait été intéressant.









Chocobidou a écrit :



je suis en train de tester un outil pour transpiler le code en Java, c’est loin d’être gagné sachant qu’il y a différent type de Cobol et que souvent, ce genre d’outil plante.



Sinon pour la qualité de code, je la trouve plutôt bien documenté et pour la plupart de ceux qui trouve ce code imbitable, oui il l’est mais pas plus que d’autres codes COBOL que j’ai pu croiser au cours de mes missions dans les services publiques et mutuelles.



Penser que le service publique dispose des dernières techno est utopique.







Justement, c’est parce que plein d’outils toujours utiles ont été créés avec cette techno qu’on les maintient. Ces outils fonctionnent, ils fonctionnent parfaitement, ils sont éprouvés, on a investi énormément dedans, à quoi bon les réécrire ?









levhieu a écrit :



Dis comme ça je comprends.<img data-src=" />



(et je constate que nos critère de perception d’un langage diffèrent fortement, vive la diversité)





Je peux aussi rajouter qu’il ne me semble pas qu’il y ait des fonctions, ou plutôt celle-ci sont géré comme en assembleur via un CALL. De plus, je n’ai pas l’impression qu’il y a une gestion automatique de la pile, du coup, j’imagine bien la galère pour faire une fonction récursive (j’ai déjà fait ça en assembleur).

Après, effectivement, Cobol semble offrir pas mal de facilité, pas de gestion de registre à la main, des structures de base comme le if et des boucles et la possibilité d’écrire des calcules basiques.

C’est pour ça que j’ai l’impression d’être à l’intermédiaire entre l’assembleur et le Basic, mais on est plus proche de l’assembleur que du C (et pourtant avec un peu de connaissance en assembleur, on arrive bien à comprendre comment C est transcript en langage machine).





<img data-src=" />

excellent résumé








Faith a écrit :



Ah mais je réagissais déjà comme ça à l’époque ;)



Je le crois bien volontiers, mais comme indique: tel remarque n’est interessante qu’a l’epoque. Se plaindre de mettre en ligne quelque chose deja obtenu… autant en rire (et/ou s’en moquer)&nbsp;<img data-src=" />&nbsp;

&nbsp;

&nbsp;J’ai fait de même et voici mon bilan:

47 intervenants, 7 critiquant la démarche, 6 la considérant comme positive, et 34 intervenant uniquement HS ou pour faire des blagues (et parmi les 13 premiers, nous sommes nombreux à aussi avoir commenté HS ou pour des blagues)

“la plupart” des commentateurs me semble être là pour se divertir sans se prononcer sur le sujet même de la news. (si tu me le demandes, je te répondrais que je suis là pour me divertir en essayant de respecter le sujet de la news…)

Un resultat en effet different. La question de la procedure de classement ferait le sujet d’un autre debat.&nbsp;<img data-src=" />

&nbsp;



Faire des études en Intelligence Artificielle et passer toute sa carrière en banque a sans doute souvent ce genre d’effet.

&nbsp;Mais je ne regrette rien: ce boulot alimentaire m’a offert une tranquillité et une sérénité dans ma vie réelle qu’aucun de mes proches ni collègues n’a atteint.

Chacun a ses objectifs, tant qu’ils sont remplis tant mieux! Bonne continuation :)









NSophis a écrit :



Le cobol a encore de beaux jours devant lui





Pas de cette manière ! On ne programme plus ainsi de nos jours. Et surtout il s’agit de code généré par un outil qui se nomme “INSTALL/1”: c’est mentionné ainsi “SOURCE GENERE PAR INSTALL/1” ! Mais le pire est que des fonctions identiques sont générées dans le de multiples sources : recherchez “Definit si un jour est ferie” avec NOTEPAD++ dans le dossier BATCH ou TP et vous allez voir que le même code est dupliqué dans pas mal de sources. Un sous-programme aurait été plus intelligent…

Je ne sais combien coûte la maintenance de ce logiciel ,mais ça doit être très cher.

Merci pour comprendre ce que font ces programmes de plusieurs dizaines de milliers de lignes sans aucun document fonctionnel à côté.

Fournir des codes sources ne semble pas très judicieux dans ce cas.



Si je voulais pinailler, je pourrais dire qu’il existe des assembleurs sans instructions CALL.



Mais en fait il ne faut pas s’arrêter sur la syntaxe.




  • À l’époque, ça paraissait naturel de mettre un call pour dire que la ligne appelle une autre partie de programme.

  • Ça n’est pas pour autant qu’il faut gérer soi même les appels imbriqués.



    Pour la récursion par contre je ne sais pas, mais je ne serais pas étonné qu’elle ne soit pas possible

    (et même interdite explicitement, comme en Fortran).








Hugues1337 a écrit :



Faith & fred42 sont des trolls qu’il est préférable d’ignorer.





Merci de ta contribution qui apporte beaucoup à l’article.



Il est sûr que d’ignorer tous ceux qui ne sont pas de l’avis de la majorité (et encore, je n’en suis même pas sûr qu’il y ait une majorité), c’est constructif.



Explique nous donc ce que cela va apporter d’avoir ce code, alors que l’accès soit aux algorithmes, soit aux spécifications serait plus intéressant pour les intégrer dans un outil moderne.



Comme expliqué sur Twitter par Stéphane Bortzmeyer, ce code sans la base de donnée ne sert à rien. C’est du foutage de gueule (sic) et ici tout le monde ou presque est content. Chercher l’erreur.



De plus, comme une bonne partie du code est généré automatiquement à partir d’un autre langage, il aurait été préférable d’avoir les fichiers de plus haut niveau et l’outil de génération. Le simulateur des impôts était un peu dans ce cas et il avait été fourni avec le code de haut niveau.



Sur le principe : qui peut le plus peut le moins … Avoir

le code source c’est donc bien, merci NextInpact !

(Maintenant, il manque quand même les JCL)



Techniquement, le code est propre (pour du cobol), lisible, assez documenté …

Assez standard en somme.

Je préfère avoir les copy intégrées plutôt que d’avoir les xxx fichiers à

part, c’est plus simple pour l’analyse.



les noms de variables sont lisibles (faut avoir l’habitude des abréviations)

&nbsp;

Pour ceux qui critique la technologie employée, le coté abscons etc ..

simplement, le cobol était (et reste) ce qu’il y avait de mieux pour ce genre

de traitement de masse à l’époque de l’informatisation de la CAF/CPAM/CNAV

etc…

C’est aussi le langage qui se rapproche le plus du langage naturel Anglo-saxon

(l’anglais quoi)



&nbsp;On est ici sur des traitements sensibles et complexes, avec des couts de mise

en place énormes.

le changement de technologie tous les quatre matins n’est pas envisageable.

&nbsp;

J’ai travaillé sur du cobol (sur mainframe ou sur unix/linux, sous pacbase ou

“à la main”), de l’assembleur IBM pour les banques, mutuelles et la

cnav entre autre et je fais aussi du java et du sql (oracle, postgres) et de loin

le cobol reste le plus accessible/simple (vis à vis du java entre autre …. J’exècre

le java )



(j’ai souvenir sur un projet de migration d’avoir saturé le compilateur IBM

tellement que les programmes étaient énormes … et on était que 4 à travailler

dessus sans problèmes particuliers)



Bref en une journée, on pourrait en tirer pas mal d’informations



(Sauf que mon temps coute (très) cher <img data-src=" /> … et oui les cobolistes se font

rares ! )&nbsp;








MarcRees a écrit :



Je suis pour le moins épaté, sinon subjugué par ce genre de commentaires. Puisque l’incompréhension perdure dans certains esprits, je vais expliquer l’intérêt :





  1. Contraindre les administrations à ouvrir le code a déjà pour ambition de voir respecter les normes votées par le législateur. […]

  2. Enfin, le temps passé à répondre à ces inepties, on ne le passe pas à rédiger les actus que toi, ou d’autres apprécierez peut être, tout en jetant un discrédit sur le formidable travail de Xavier, qui plus qu’à être critiqué, devrait AMHA être salué comme l’a fait encore hier Calimaq.





    Merci pour ta réponse.

    J’ai noté que Stéphane Bortzmeyer avait un avis sévère sur la CAF dans cette histoire (je cite pour les autres ses réponses au tweet de Calimaq) :



    « La taille des fichiers (7 Mlignes) et la mention au début indiquent qu’il ont été générés automatiquement à partir d’une description de plus haut niveau (ce qui est courant en #Cobol).

    Dans ces conditions, la CAF se fout de nous : ils n’ont pas publié le vrai code source.

    Sans compter le fait que le code Cobol fait des appels à la base de données et qu’on n’a pas le source SQL servant à créer cette base. #foutageDeGueule »







    Faith a écrit :



    Comme dit plus haut, je ne crois pas que le code soit devenu open-source.

    Dans ce cas, un groupe de dev, même motivés, n’aurait pas le droit d’en faire grand chose.





    Surtout qu’apparemment on n’a pas vraiment ce qu’on peut considérer comme le code source.







    Hugues1337 a écrit :



    Faith & fred42 sont des trolls qu’il est préférable d’ignorer.





    Merci pour cet avis éclairé et argumenté. (ou pas).



la force du cobol c’est que tu peux tout mettre dans des copy (une sorte d’include du C)

du coups la fonction/procédure “Calcul si jour férie” est certainement dans une copy



la copy est utilisée XX fois et à la prégénération du source final, la référence à la copy dans le programme est remplacé par le contenu de la copy



regarde bien les commentaires avant ce bout de code, et tu trouveras certainement ce genre de lignes&nbsp; à chaque fois :

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; COPY&nbsp; CGBCALAK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *COPY”/distrib/appli/cristal/05200/ref/cobol/copy/CGBCALAK.CPY”&nbsp;&nbsp;





tu peux faire du vicieux : des copy utilisant des copy utilisant des copy qui s’appuient sur des variables des programmes

&nbsp;



&nbsp;


Désolé mais c’est le code source quand même

la pré-génération est passée par là mais comme elle se limite au remplacement des copy, fonctions internes etc

il n’y a pas de bidouillages du fonctionnel

Juste du technique



Avoir le design des bases derrières, oui c’est mieux mais pas bloquant

déchiffrer les nom de variables, examiner les commentaires et le contexte peut contourner le problème d’absence de base (c’est sûr, ca&nbsp; demande du temps et de se plonger dans la philosophie des vieux cobolistes <img data-src=" /> )


Hello,



J’ai pushé sur un repo Github, c’est quand même plus agréable à regarder, même si ça reste horrible.

https://github.com/Wenzel/CNAF



Bisous.


Le cobol est beaucoup plus évolué que tu ne le pense … ce n’est pas de l’assembleur

(regarde les variables occursées (OCCURS) avec index par exemple ou la notion de REDEFINES)

&nbsp;

le CALL permet d’appeler des sous programmes (écrit en cobol ou assembleur ou C etc)

une section (ou paragraphe) dans un pgm cobol ne peut pas s’appeler elle même

un pgm cobol peut être récursif (s’appeler lui même)&nbsp; si les directive de compilation en début de source sont bien positionnées



faut juste faire attention aux zones de communications entre les call


Merci !



pas plus horrible que du java …



ouvre sous notepad++, la coloration syntaxique facilitera la lecture ;)


Corrige ta faute de frappe : french et pas fench.



Tu peux expliquer pourquoi c’est plus agréable à regarder sur github ?



Perso, je préfère lire ça sur ma machine avec les outils qui y sont (grep et autres, vi, less, …)








fred42 a écrit :



Tu peux expliquer pourquoi c’est plus agréable à regarder sur github ?



En effet, les fichiers sont trop gros pour bénéficier l’aperçu en ligne, y’a pas grand intérêt.



Je n’ai pas la coloration syntaxique quand j”ai ouverts les fichiers vite fait. Github semble l’avoir.



Mais autrement, le but est de collaborer, et c’est pas en gardant un zip que tu décortiques ce code.


Un zip, ça se dézippe !



Tu rigoles pour la coloration syntaxique sur Github pour ces fichiers ? Il sont trop gros : “(Sorry about that, but we can’t show files that are this big right now.)”



Tu crois que juste les mettre sur github, ça permet de collaborer ? Une collaboration, ça s’organise un peu. Je sais, je suis de la vieille école.


Effectivement j’avais ouvert un petit fichier. Le reste est beaucoup trop gros.



Sur github tu peux démarrer un Wiki, ouvrir des issues, et même faire des pull requests.

Oui ça s’organise, mais faut bien commencer quelque part.








fred42 a écrit :



Tu crois que juste les mettre sur github, ça permet de collaborer ? Une collaboration, ça s’organise un peu. Je sais, je suis de la vieille école.





“Tu n’as pas tout fait de A à Z alors ça ne sert à rien”



Ce genre de commentaire est fantastique, que ça concerne l’article, la démarche de NXi ou l’effort de Wenzel.

Je suppose que quand toi tu commences quelque chose, tu le finis d’une traite, sans te tromper et tout parfaitement bien entendu !



&nbsp;“Je sais tout&nbsp;je suis de la vieille école” comme si ça te donnait une once de légitimité …



J’ai un peu de mal à conceptualiser l’état de pensée dans lequel on peut être pour se dire qu’un fichier de 22k lignes c’est une bonne idée. C’est des fichier après concaténation ?

Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ?&nbsp;<img data-src=" />



Edit : Enfin j’veux dire, comment on peut parler de code « source » si on file du compilé. C’est niveau foutage de gueule, quand même.








Flykz a écrit :



J’ai un peu de mal à conceptualiser l’état de pensée dans lequel on peut être pour se dire qu’un fichier de 22k lignes c’est une bonne idée. C’est des fichier après concaténation ? Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ?&nbsp; Edit : Enfin j’veux dire, comment on peut parler de code « source » si on file du compilé. C’est niveau foutage de gueule, quand même.





J’avoue que j’aimerais bien une explication “officielle” ainsi que ceux de pro du cobol… Parce qu’en l’état c’est clairement imbuvable et au dela de ça, comment lancer le programme pour effectuer une simulation ? Pourquoi du cobol ?



Ce n’est pas du compilé mais du code généré automatiquement.



Bref, c’est du code intermédiaire en partie. Je n’ai pas ouvert tous les fichiers, mais à lire les commentaires ici, il y a aussi du code écrit directement par des humains.


Pourquoi du cobol ? C’est un projet qui date des années 90, et le cobol reste très performant pour traiter des milliers/millions de transactions, sans compter le coût d’une réécriture complète aujourd’hui. Ca n’a jamais été prévu pour être lancé depuis un PC mais sur un mainframe.&nbsp; Mais rassures toi, les techniciens prestations travaillent avec une surcouche Java, l’IHM sur laquelle ils font leurs liquidations n’est plus de la ligne de commande et des écrans type Dos depuis plusieurs années :)



Il ne s’agit pas de code compilé mais de code source avec les sources générées d’une part (pour les données notamment) et le code rédigé dans un même fichier. Comme dit plus haut, vous auriez préféré avoir des centaines de fichiers et devoir refaire l’agrégation à la mano ?



Enfin, le calcul des prestations ce n’est pas une suite d’addition soustraction, il y a des conditions d’ouverture de droit, puis les montants à calculer. Enfin, les prestations évoluent régulièrement, d’où la nécessité d’avoir plusieurs calculs en fonction de la période (car il y a le calcul rétroactif), ce qui multiplie les cas, et donc les lignes.








bibiwan14 a écrit :



Comme dit plus haut, vous auriez préféré avoir des centaines de fichiers et devoir refaire l’agrégation à la mano ?





Non mais comme beaucoup j’aurais bien aimé avec une ligne de commande pour simuler un calcul histoire de. Après je suis d’accord avec le reste de ton texte, et je me demande l’intérêt de tout ça au final :/



On est d’accord.


Pour ma part je trouves les fichiers super bien organisé pour du COBOL. Assez facile à comprendre dans une certaine mesure.



En passant je suis dans la trentaine et du COBOL j’en ai beaucoup fait dans les années 90 (96 à 2002 ) puis un peu à Polytechnique, donc je comprends pas tout ce brouhaha. J’ai lu par intérêt mais n’étant pas français je vois pas l’utilité de pousser plus loin. Mais des experts en COBOL trouveront aisément comment naviguer dessus rien à dire.



Maintenant l’utilité du truc … je dirais c’est un bon début pour ne pas se faire avoir qui sait!?








skankhunt42 a écrit :



Parce qu’en l’état c’est clairement imbuvable et au dela de ça, comment lancer le programme pour effectuer une simulation ?





La loi demande à ce que les opérations soient révélées et les journalistes ont fait appliquer la loi.

Tout le monde devrait être satisfait, je trouve.

Si tu veux suivre le déroulé du programme, cherche “S0000-MAINLINE” dans n’importe quel fichier, tu pourras commencer à dérouler.





Pourquoi du cobol ?



Parce que les systèmes/programmes sont anciens et fonctionnent bien. On ne va pas les jeter sous prétexte qu’il faut changer pour une techno plus moderne, que de toute façon un pouillème de la population saura lire.

&nbsp;

&nbsp;



Flykz a écrit :



Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ?&nbsp;<img data-src=" />&nbsp;



&nbsp;J’ai listé les différents types de lignes dans un commentaire précédent. Je t’invite à le regarder pour te rendre compte par toi même.





Edit : Enfin j’veux dire, comment on peut parler de code « source » si

on file du compilé. C’est niveau foutage de gueule, quand même.



Ce n’est pas du compilé, c’est du généré.

Donner les sources du niveau au dessus nécessiterait pour les utiliser d’avoir des logiciels probablement payants (et souvent inaccessible au péquin lambda), donc ils n’auraient pas satisfait à la loi qui demande que soient divulguées les opérations faites.



&nbsp;





skankhunt42 a écrit :



Non mais comme beaucoup j’aurais bien aimé avec une ligne de commande pour simuler un calcul histoire de.





Et puis un environnement de test, et une équipe pour te former ? (je plaisante)

D’expérience (en tant que jeune diplômé, j’ai été directement amené à travailler sur un projet du même genre, dans des technos comparables), comprendre des projets de cette ampleur nécessite tout un processus de formation fonctionnel et technique, et surtout des “anciens” disponibles pour t’expliquer et te guider.

&nbsp;



Après je suis d’accord avec le reste de ton texte, et je me demande l’intérêt de tout ça au final



Puis-je me permettre de citer MarcRees: “Relire [sa] réponse car tu patines”.

Explication de sa réponse: on le fait parce qu’on a le droit de le faire, et si on n’a aucune idée d’à quoi ça sert, quelqu’un trouvera bien… au pire, on a fait du clic.

&nbsp;









nlougne a écrit :



Maintenant l’utilité du truc … je dirais c’est un bon début pour ne pas se faire avoir qui sait!?



Ne pas se faire avoir par la méchante CAF qui nous verse des allocations ? <img data-src=" />









levhieu a écrit :



Si je voulais pinailler, je pourrais dire qu’il existe des assembleurs sans instructions CALL.



Mais en fait il ne faut pas s’arrêter sur la syntaxe.




  • À l’époque, ça paraissait naturel de mettre un call pour dire que la ligne appelle une autre partie de programme.

  • Ça n’est pas pour autant qu’il faut gérer soi même les appels imbriqués.



    Pour la récursion par contre je ne sais pas, mais je ne serais pas étonné qu’elle ne soit pas possible

    (et même interdite explicitement, comme en Fortran).







    J’ai cru lire que la récursion est possible, mais via un GOTO, une procédure ne pourrait pas s’appeler elle même. Mais dans le cas d’un langage comme C, les variables local à une fonction (et en général à un contexte) sont gérées dans la pile, les variables définies dans une fonction est indépendante du reste du code (en gros, C empile un espace réservé pour les variable du “contexte” en cours et le dépile quand le contexte est clôt). Ca permet ainsi d’appeler récursivement une fonction et avoir à chaque fois des variable qui soient indépendantes à chaque appels. Ce fonctionnement peut être effectivement déprécié dans un mainframe car la taille que va prendre la pile n’est pas déterminé à l’avance, une fonction récursive peut boucler indéfiniment (ou en tout cas un très grand nombre de fois) et bouffer toute la mémoire.







    TotoDuMoulin a écrit :



    Le cobol est beaucoup plus évolué que tu ne le pense … ce n’est pas de l’assembleur

    (regarde les variables occursées (OCCURS) avec index par exemple ou la notion de REDEFINES)

     

    le CALL permet d’appeler des sous programmes (écrit en cobol ou assembleur ou C etc)

    une section (ou paragraphe) dans un pgm cobol ne peut pas s’appeler elle même

    un pgm cobol peut être récursif (s’appeler lui même)  si les directive de compilation en début de source sont bien positionnées



    faut juste faire attention aux zones de communications entre les call







    Je ne critique pas le cobol en soit. Je dit surtout que derrière du Logol, on ressent encore fortement la marque de l’assembleur. C’est comme si il y a eu un effort de créer un langage lisible et pratique à partir d’une idée proche de l’assembleur en supprimant la gestion des registres, en incluant des structures de base…

    A coté, si on prend le langage C, on voit qu’il y a eu un travail théorique fort autour d’une façon d’appréhender le langage. Il y a une énorme couche d’abstraction. On a un paradigme de programmation qui s’est éloigné du langage machine.







    Flykz a écrit :



    J’ai un peu de mal à conceptualiser l’état de pensée dans lequel on peut être pour se dire qu’un fichier de 22k lignes c’est une bonne idée. C’est des fichier après concaténation ?

    Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ? <img data-src=" />



    Edit : Enfin j’veux dire, comment on peut parler de code « source » si on file du compilé. C’est niveau foutage de gueule, quand même.





    Ce sont des fichier généré après linkage. En gros, chaque fichier ici peut être exécuté seul. La gros majorité des fichiers sont copié-coller de déclaration de variable. On retrouve aussi des procédures (des fonctions en quelque sortes) qui sont aussi plusieurs fois copié collé.

    Après, ce sont des documents extrêmement documenté (a priori, le projet ayant commencé avant l’existence de logiciel de versionnage moderne, on retrouve des sortes patchnote dans les fichiers)

    Enfin, le cobol n’est pas forcément un langage qui soit bon pour faire des économies sur les lignes, on est loin d’un python et sa compréhension de liste.









skankhunt42 a écrit :



Non mais comme beaucoup j’aurais bien aimé avec une ligne de commande pour simuler un calcul histoire de. Après je suis d’accord avec le reste de ton texte, et je me demande l’intérêt de tout ça au final :/





Je ne suis même pas sûr que cela puisse être possible sans mettre les mains dans le cambouis. En effet, en lisant rapidement quelques fichiers, j’ai cru lire des lignes qui ressemble fortement à la description d’une interface graphique (bon en textuel quand même). Donc brut comme ça, je dirais que ces fichiers lance une interface qui rappellerons des souvenirs aux nostalgiques du minitel.

(L’interface doit surement être l’une des partie du code généré. Ils doivent surement utiliser un outils pour créer et géré une interface sans avoir à le faire à la main)



Le code indique que c’est exécuté sur du linux hein…


l’IHM avec des écrans type CICS a existé en effet, mais elle a été abandonnée il y a plusieurs années, aujourd’hui il y a un front Java EE. Il n’y a plus d’IHM générée.&nbsp;








Flykz a écrit :



J’ai un peu de mal à conceptualiser l’état de pensée dans lequel on peut être pour se dire qu’un fichier de 22k lignes c’est une bonne idée. C’est des fichier après concaténation ?

Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ?&nbsp;<img data-src=" />



Edit : Enfin j’veux dire, comment on peut parler de code « source » si on file du compilé. C’est niveau foutage de gueule, quand même.









tazvld a écrit :









Ce sont des fichier généré après linkage. En gros, chaque fichier ici peut être exécuté seul. La gros majorité des fichiers sont copié-coller de déclaration de variable. On retrouve aussi des procédures (des fonctions en quelque sortes) qui sont aussi plusieurs fois copié collé.

Après, ce sont des documents extrêmement documenté (a priori, le projet ayant commencé avant l’existence de logiciel de versionnage moderne, on retrouve des sortes patchnote dans les fichiers)

Enfin, le cobol n’est pas forcément un langage qui soit bon pour faire des économies sur les lignes, on est loin d’un python et sa compréhension de liste.







je me permet de clarifier :




  • le cobol n’est pas un langage interprété mais compilé

  • le .COB est l’agrégation des sources programmes .CBL et des copy .CPY

  • le source .COB est du cobol et non sa forme compilé

  • une fois agrégé, le tout est compilé et génère donc un binaire, un executable en somme (on appelle ça un LOAD)

  • pour lancer un des load, il faut un fichier JCL (Job Control Language) que l’on soumet au système et qui définit le contexte d’exécution (les fichiers d’entrée, de sortie, les queues de sortie, la classe de lancement, le nom du job, la priorité du job etc)

    Malheureusement, on a pas les JCL ici

  • dès le départ, on la possibilité d’utiliser des outils de versionning/livraison sous mainframe mais il est de bon ton de positionner dans les composants des commentaires sur les modifications/ajout avec date, trigramme etc.

    &nbsp;

    le mainframe c’est vraiment un monde à part en fait.









bibiwan14 a écrit :



l’IHM avec des écrans type CICS a existé en effet, mais elle a été abandonnée il y a plusieurs années, aujourd’hui il y a un front Java EE. Il n’y a plus d’IHM générée.&nbsp;





je connais une boite où c’est encore utilisé <img data-src=" /> entre autre pour l’édition de courrier client

je te dis pas la tronche du courrier … back to 80’









TotoDuMoulin a écrit :



je me permet de clarifier :




  • le cobol n’est pas un langage interprété mais compilé

  • le .COB est l’agrégation des sources programmes .CBL et des copy .CPY

  • le source .COB est du cobol et non sa forme compilé

  • une fois agrégé, le tout est compilé et génère donc un binaire, un executable en somme (on appelle ça un LOAD)

  • pour lancer un des load, il faut un fichier JCL (Job Control Language) que l’on soumet au système et qui définit le contexte d’exécution (les fichiers d’entrée, de sortie, les queues de sortie, la classe de lancement, le nom du job, la priorité du job etc)

    Malheureusement, on a pas les JCL ici

  • dès le départ, on la possibilité d’utiliser des outils de versionning/livraison sous mainframe mais il est de bon ton de positionner dans les composants des commentaires sur les modifications/ajout avec date, trigramme etc.

    &nbsp;

    le mainframe c’est vraiment un monde à part en fait.





    Vu le tarif d’un expert COBOL, tu vas finir par devoir facturer tes commentaires&nbsp;<img data-src=" />



pour le batch, pas possible en effet, on a pas les JCL ni la base de données derrière



pour le TP, ca serait possible de se passer de l’ihm bidouillant un programme appelant

mais pareil que pour le batch, on a pas la base de données








tazvld a écrit :



A coté, si on prend le langage C, on voit qu’il y a eu un travail théorique fort autour d’une façon d’appréhender le langage. Il y a une énorme couche d’abstraction. On a un paradigme de programmation qui s’est éloigné du langage machine.







Euh, WTF ?

Je ressort les articles du journal du Bell Labs concernant les débuts d’Unix et du C ?



bah, on va dire que j’essaye de motiver les troupes pour basculer vers cette charmante techno <img data-src=" />

c’est une sorte de récompense)

je suis pas expert car il y a quelque aspect que je ne maitrise pas parfaitement (coté CICS)



mais c’est clair que le cobol n’a pas la cote … (limite c’est une punition) mais sur le lot, on en trouve toujours qui finalement ne trouve pas ca si désagréable que ca



Et je parle même pas pour en trouver qui veulent toucher à de l’assembleur <img data-src=" />


J’ai trouvé sa en cherchant dans le fichier&nbsp; “Code source CNAF/Batch/CGM110.COB”&nbsp; :

&nbsp;

pmonboussin 26 10 2005 CGLKPIMO&nbsp;


&nbsp;Globalement le code est commentée on a juste l’impression qu’il ont rassemblée plusieurs fichier dans un seul fichier.


ça fait 20 ans qu’on fait tourner de l’Unix et du Linux sur Z

<img data-src=" />


Le JCL pour les batchs … pas pour le transactionnel ( on a les 2 ici)








JoePike a écrit :



Le JCL pour les batchs … pas pour le transactionnel ( on a les 2 ici)





oui pour les batchs, on est d’accord



Quand on traine chez Darty ou à la Fnac …. les écrans des vendeurs qui recherchent un article …

ça ressemble étrangement non ?

<img data-src=" />








bibiwan14 a écrit :



l’IHM avec des écrans type CICS a existé en effet, mais elle a été abandonnée il y a plusieurs années, aujourd’hui il y a un front Java EE. Il n’y a plus d’IHM générée.





En reprennant quelque fichier, c’est en faite que le code semble afficher plein de truc (Display, et c’est introduit par la lettre D dans la colonne 7)

En fait, je crois que j’ai pris ce qui semble être un système d’indice dans une table pour un position dans l’écran comme par exemple dans le fichier CGMM01.COB (dans Batch) à la ligne 171643 :



D DISPLAY ‘(CGZPARAK)’ ‘B001-PTXRSC : ’ CGZPARAK



   D          'BTX BMC ALLOC RENTREE SCOLA = ' PP-C1XXXXX (211:007)  CGZPARAK













levhieu a écrit :



Euh, WTF ?

Je ressort les articles du journal du Bell Labs concernant les débuts d’Unix et du C ?





Comparons la façon dont cobol et C gère les variables.

A priori, pour Cobol, la déclaration classique des variables se fait de manière similaire à l’assembleur, ce sont en faite des alias pour des adresses mémoires qui seront allouées à l’avance dans un espace qui sera réservé dès le lancement du programme (l’espace Data si je me souvient bien). En C, (à par peut être pour les variable globale) les variable déclaré à l’intérieur d’une fonction est (même si j’imagine que dans la réalité, ça doit être plus compliqué et optimisé par le compilateur) un espace alloué à la volé (en faite à l’entrée de la fonction) dans la pile. A la fin de la fonction, toutes les variables qui ont été déclarées sont dépilées. Une fonction devient ainsi quelque chose qui est isolé du reste du code, il a ses variables propres.

C n’est surement pas apparu comme ça, je sais qu’il a des ancêtres, mais ce que je veux montrer ici, c’est qu’à travers C, on voit qu’il porte un héritage de pratiques de programmation qu’il y a eu une mise plat de ces pratiques. Et tout ça forme une première couche forte d’abstraction de l’architecture de Von Neumann. On est arrivé au point qu’utiliser l’instruction Goto pourtant possible en C est très déconseillé (alors que le JUMP est quelque chose de base en assembleur).

Dans Cobol, on sent un début d’abstraction, mais ça reste très léger. Pour le cadre d’une utilisation dans des mainframes, c’est justement un avantage, c’est plus efficace (pas d’adressage indirect à tout va) et c’est moins de risque (pas de risque d’avoir une pile qui explose).



La programmation orienté objet n’est surement pas sortie de nul part et doit sans doute être hérité d’une façon d’utiliser les structures. Ca représente une couche supplémentaire d’abstraction.

J’ai fait un peu de CAML et la programmation fonctionnelle, on perd la notion de manipuler un automate. Dernièrement j’ai jeté un œil à Prolog, et la programmation logique, mais c’est complétement un autre univers.



L’AS400 a la peau dure…

Les projets sur lesquels je travaille consistent majoritairement à supprimer les AS400 au profit de progiciels du marché plus jolis et faciles à maintenir, souvent sur de l’interface Web. Alors oui, l’utilisateur est content d’avoir pas mal de nouvelles fonctionnalités et tout et tout… Mais souvent il regrette la réactivité de l’interface.



Quand le vendeur a l’habitude de taper 5 champs à l’avance et que l’engin absorbe tout en quelques secondes et qu’on lui donne ensuite une IHM Web où il faut cliquer des trucs, attendre que la roulette mouline, etc, forcément y’a un petit pincement au coeur.



Bref, pendant que t’as un AS400 en prod depuis 20 ans, il y aura eu 15 technos qui sont nées et ont sombré dans l’oubli entre deux. Ce truc nous enterrera tous. <img data-src=" />



M’enfin encore dans le retail c’est moins compliqué à remplacer. Par contre dans le financier avec des règles du jeu qui changent tous les 4 matins (contextes législatifs) et recettes métiers qui interdisent l’erreur… C’est pas pareil.

Migrer un magasin et corriger deux/trois conneries (recadrer des mouvements de stock, rattraper un CA, etc) pendant une semaine y’a pas mort d’homme… Jouer avec des comptes en banque ou des prestations sociales, c’est pas vraiment le même impact.


Je n’ai jamais travaillé avec de l’AS400, uniquement du Mainframe ( du Z )

Mais comme je paramétrais mes mainframe pour que 80% des transactions se fassent en moins d’une seconde avec quelques milliers d’écrans en ligne ,et les 20% restant en moins de 2 secondes

j’avoue que parfois il y a lieu de se poser des questions sur le “progrès”

Mais bon il faut vivre avec son temps

<img data-src=" />


A peu près aussi lisible qu’un automate de trading


Personnellement si j’ai le choix je choisit l’assembleur y a pas photo.


Ça pourrait être du contenu d’une table “packée”. Mais là je suis beaucoup moins sûr de moi.








tazvld a écrit :



En reprennant quelque fichier, c’est en faite que le code semble afficher plein de truc (Display, et c’est introduit par la lettre D dans la colonne 7)

En fait, je crois que j’ai pris ce qui semble être un système d’indice dans une table pour un position dans l’écran comme par exemple dans le fichier CGMM01.COB (dans Batch) à la ligne 171643 :

.





Le D en colonne 7 c’est pour indiquer que l’instruction n’est valide qu’en mode debug. Donc en temps normal, il n’est pas utilisé.



Pour la donnée PP-C1XXXXX, on va simplement en position 211 et on sélectionne 7 caractères. Quelque soit la structure interne de la donnée. Il arrive que des éléments soient redéfinis les uns sur les autres il y est donc plus simple de juste afficher la sous-chaîne qui intéresse.



Alors ce code il est optimisé ou c’est dégueulasse ?&nbsp;


Je travaille sur ce logiciel depuis 15 ans, même si je suis pas si vieux, j’ai que la trentaine et j’ai écrit plus de 250k lignes de codes…



Et je lis pas mal de conneries, mais c’est normal, c’est un monde à part et que si on connait pas il est très difficile d’en tirer qqchose.



Ici on a qu’une partie très infime du code. On a que la partie qui fait le calcul final des prestations. Il manque toute la partie en amont, riche de plusieurs millions de lignes supplémentaires écrites manuellement. Cette partie permet de préparer les données, en générant des données intermédiaires,&nbsp; pour quelles puissent être consommée par la partie calcul de droit qui est exposée ici. Globalement on a une grosse vingtaine de service cobol fournies sur plus d’un millier existant sur le projet.



De plus, pour faire tourner tout ça il manque la base de donnée de plus de 500 tables, la couche d’accès au données, car oui même en cobol, la couche de donnée (ou se trouve les ordres SQL) est séparée de la couche de traitement exposée ici, elle même séparée de la couche de présentation en JEE.



Donc déjà à ceux qui trouvent qu’il y a beaucoup de lignes de codes dans les programmes, il faut voir que les programmes ici sont une sorte d’enveloppe composée de différentes copys, en vue de la compilation.



Les programmes contiennent des copies qui sont d’un coté des déclarations de variables qui permettent d’échanger des données avec des sous-procédures ou des programmes externes et peuvent être générées par l’AGL Design 1 décrit par&nbsp; bibiwan14, ou être décrites à la main. Et de l’autre coté des sous-procédures qui sont des sortes de librairies inclues dans le programme en vue d’être compilée et la partie applicative en elle même.

Pour un programme CGMM01.COB, tu as sa déclaration propre de variable faite dans la copy CGMM01W et sa partie applicative décrite dans le CGMM01A.



Par exemple dans les copy embarquées, il y a une sous-procédure qui permet de faire des calculs sur les dates qui se retrouvent dans beaucoup de programmes, un peu comme une classe date qui est inclus à la compile dans le package d’un projet objet.



Sinon pour le coup du D et Display, comme ça a été dis, le D, indique que l’instruction est exécutée en mode debug et le display indique juste que l’on va écrire dans la log ou rapport d’exécution selon si c’est du batch ou TP. Dans l’exemple cité, on restitue une valeur d’un des champs d’un fichier paramètre qui n’est pas à disposition…



Après, même si c’est récent, en interne le code tourne sur du linux, le code est sous git et le dév se fait sous éclipse. Donc pas si vieillot que ça. Et ces mêmes services COBOL arrivent à être exposée sous forme d’API REST/JSON au travers une couche JEE.



Maintenant pour toutes les personnes qui espèrent en faire qqchose, je vous souhaites beaucoup de courage, car vu la très faible portion de source, l’absence des spécification et la grande spécificité et difficulté fonctionnelle….



Déjà qu’on considère qu’il faut au moins 6 mois pour une personne arrivant sur ce projet pour commencer à comprendre ce qu’elle fait, sur son périmètre restreint….








carbier a écrit :



Argumentaire typique de mauvaise foi



Les réponses à la plupart des questions que tu poses sont fournies directement dans le site de la CAF (avec explications et barêmes à l’appui)

Les simulations permettent une réponse supplémentaire à ces questions, mais elles ne fournissent que des “estimations” car bien souvent les données entrée par les utilisateurs ne sont pas exactes (estimation) et comme il existe des effets de seuils (décrits par ailleurs dans le site) il se peut qu’il y ait des différence. Si les données que tu rentres sont exactes, les résultats en sortie sont les bons.



Mais en fait chez toi, tout est résumé dans le “coefficient mysterieux qui sort du chapeau”. Ben oui, vous comprenez ma bonne dame, à la CAF ils sont payés à faire des calculs à la main… ou plutot au doigt mouillé.





Écoute, je ne me permets pas de t’insulter, aussi je t’invite à bien vouloir garder tes jugements de valeur à mon endroit. Tu n’es peut-être pas confronté à des changements de situation ou des variations de salaire ou encore des erreurs d’appréciation de la part de la CAF. Grand bien te fasse, mais les erreurs arrivent, et pas uniquement du fait des allocataires.

Les simulateurs restent inexacts même avec une parfaite connaissance de ses ressources et de sa situation à un instant T.



Un autre exemple très concret qui invalide ton argumentation : il faut quatre à cinq semaines à la CAF de mon département pour recalculer le montant de l’APL après réception des documents justifiant du loyer. C’est du reste un délai moyen de traitement et tu peux questionner à loisir un(e) opérateur/trice de la CAF qui te donnera à peu de choses près le même délai. J’imagine bien que ces quatre ou cinq semaines ne sont pas destinées uniquement à faire le calcul de MON aide au logement et qu’il n’y a pas 50 personnes qui bossent jour et nuit sur MON dossier, mais pourquoi est-ce si long alors que TOUT est censé être connu, automatisé et diffusé comme tu le prétends. S’il y a bien un organisme qui peut avoir accès à un grand nombre d’informations sur ses usagers, c’est la CAF. Et c’est sûrement très bien ainsi afin d’éviter la fraude, les abus, les omissions.

Quant au coefficient sorti du chapeau, c’était une boutade, mais tu ne goûtes pas ce type d’humour visiblement.

À te lire, je dois être le seul dans tout ce beau pays à considérer que ce n’est pas si clair, à avoir des soucis de compréhension, et à souffrir de trop-perçus (alors qu’à la base, je suis plutôt réactif sur mes déclarations et/ou changements de situation).



Et, dans ce cas, pourquoi demander le code source du calculateur d’aides ? Quel intérêt ? Au doigt mouillé, mon brave monsieur, je dirais que c’est pour l’étudier un chouïa, et peut-être y trouver quelques incohérences.



Vivant c’est un bien grand mot. Je dirais plutot qu’il vivote aux endroits ou on arrive pas a s’en debarasser (par manque de moyens ou de volonte). Rien que niveau maintenance, c’est le caca. Va trouver un dev qui veut encore faire du Cobol aujourd’hui ^^


ça fait 25 ans qu’on entend ce genre de commentaire sur le cobol !

et pourtant certains projets pas encore complètement terminés représentent des centaines de milliers de jours homme et ont utilisé des centaines de dev cobol.

Quant au niveau maintenance ça tient la route depuis plusieurs dizaines d’années, car des projets de cette envergure ne sont pas lancé par des amateurs qui ne se seraient pas souciés de ce genre de problématique .











Cnafien14 a écrit :



…Ici on a qu’une partie très infime du code. On a que la partie qui fait le calcul final des prestations. Il manque toute la partie en amont, riche de plusieurs millions de lignes supplémentaires écrites manuellement. Cette partie permet de préparer les données, en générant des données intermédiaires,&nbsp; pour quelles puissent être consommée par la partie calcul de droit qui est exposée ici. Globalement on a une grosse vingtaine de service cobol fournies sur plus d’un millier existant sur le projet…





Quand j’ai lu “le code source relatif à l’intégralité du calcul des prestations légales gérées par les caisses d’Allocations familiales” je m’attendais à autre chose qu’un infime partie. J’en viens à me demander si nxi a bien obtenu ce qui a été demandé. <img data-src=" />



Dans l’exemple que tu citais avec Fnac et Darty ce sont des AS400 sauf si je me trompe, mais ça a vraiment la même gueule que ceux que j’ai vu chez d’autres enseignes en prestation <img data-src=" /> . Ayant eu l’occasion de voir aussi du MVS lors d’une mission, c’est assez ressemblant au niveau des interfaces. Après je n’ai que très peu mis les pattes en le cambouis sur ces engins-là, me contentant de quelques lignes de commande bien encadrées et écrites dans une proc pour éviter de faire des conneries <img data-src=" />



D’ailleurs, il me semble que l’AS400 partage une origine commune avec les Z ou hérite de plusieurs choses, tout en ayant de nos jours aussi un gros héritage Unix. J’ai souvenir d’un dev AS400 qui me disait qu’ils partagent un tronc commun avec AIX depuis quelques années.


Merci pour ces éclaircissements <img data-src=" />

&nbsp;


Oui je pense honnêtement qu’ils ont ce qu’ils ont demandé, à savoir les sources des programmes calculant des montants de prestation.&nbsp;


A l’évidence c’est du CICS

Donc surement du CICS pour AS/400 (si c’est bien du as400 car à une époque ils avaient encore un OS390 sous VM si je me souviens bien )

https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=DD&subtype=SM&am…


Pour ce que tu nommes tronc commun entre les systèmes si je schématise (en gros) :

Avant il y avait 4 plateformes hardware sur 4 architectures pour les serveurs

le z ( qui pouvait faire tourner du MVS( os390 z/OS) du VM et du DOS/vse et du Linux) qu’on apelle le mainframe

l’AS400 pour l’OS400

l’AIX ( Unix IBM)

et enfin x86 et AMD64 pour du linux et du windows

Il y a pas trop longtemps ils ont changé cela en 4 gammes ( Z,I,P,X series ) sur 2 architectures HW

le Z pour les mêmes OS et toujours du CISC mais avec plus de fonctionalités de vitesses et de taille( par exemple 96 moteurs à 5ghz !!!)

le I series architecture RISC ( les as400)

le Pseries ( architecture RISC ) les POWER series AIX

les X series ( X86/AMD64) avec des Intel ou autres



Aujourd’hui les X series ont été vendus à Lenovo donc yapu!

Les I et P series utilisent le même HW et c’est le microcode qui est différent

Les Z sont toujours la

Par contre il y a toujours eu plein de partage de software commun comme CICS , DB2 etc… ce qui fait qu’un écran CICS d’AS400 peut être exactement pareil que celui d’un MVS.


bien résumé,merci ! <img data-src=" />



&nbsp;








tazvld a écrit :



Comparons la façon dont cobol et C gère les variables.

A priori, pour Cobol, la déclaration classique des variables se fait de manière similaire à l’assembleur, ce sont en faite des alias pour des adresses mémoires qui seront allouées à l’avance dans un espace qui sera réservé dès le lancement du programme (l’espace Data si je me souvient bien). En C, (à par peut être pour les variable globale) les variable déclaré à l’intérieur d’une fonction est (même si j’imagine que dans la réalité, ça doit être plus compliqué et optimisé par le compilateur) un espace alloué à la volé (en faite à l’entrée de la fonction) dans la pile. A la fin de la fonction, toutes les variables qui ont été déclarées sont dépilées. Une fonction devient ainsi quelque chose qui est isolé du reste du code, il a ses variables propres.

C n’est surement pas apparu comme ça, je sais qu’il a des ancêtres, mais ce que je veux montrer ici, c’est qu’à travers C, on voit qu’il porte un héritage de pratiques de programmation qu’il y a eu une mise plat de ces pratiques. Et tout ça forme une première couche forte d’abstraction de l’architecture de Von Neumann. On est arrivé au point qu’utiliser l’instruction Goto pourtant possible en C est très déconseillé (alors que le JUMP est quelque chose de base en assembleur).

Dans Cobol, on sent un début d’abstraction, mais ça reste très léger. Pour le cadre d’une utilisation dans des mainframes, c’est justement un avantage, c’est plus efficace (pas d’adressage indirect à tout va) et c’est moins de risque (pas de risque d’avoir une pile qui explose).



La programmation orienté objet n’est surement pas sortie de nul part et doit sans doute être hérité d’une façon d’utiliser les structures. Ca représente une couche supplémentaire d’abstraction.

J’ai fait un peu de CAML et la programmation fonctionnelle, on perd la notion de manipuler un automate. Dernièrement j’ai jeté un œil à Prolog, et la programmation logique, mais c’est complétement un autre univers.







Donc si je résume, le point qui compte pour toi c’est le fait que les variables sont nécessairement globales.

C’est bien ça ?



C’est vrai qu’avec le C on n’a pas cette limitation, mais en fait, en assembleur non plus dès lors qu’on travaille «proprement»: Avec un registre pointant la pile en permanence, on ajuste ce pointeur à chaque entrée de fonction et une variable locale est repérée par son offset par rapport au sommet de pile courant (on peut complexifier si on veut). Et si on n’est pas fou (ou contraint par un chef sadique), on a des outils/macros qui prennent en charge tout ça.



Mais le plus répendu de ce genre d’outils, c’est le compilateur C, qui finalement fait ce que j’ai décrit.

Ce qui fait que ma perception est que le C est plus près de l’assembleur que le Cobol, pour lequel un certain nombres de notions sont présentes dans le langage mais nécessitent un travail non-négligeable du compilateur.



Quelques perles dans les commentaires du code source :



“Ras le bol de ce truc qui ne fonctionne pas !!! ”



“7 (juillet) en dur - bofbof - zone lt-juillet-truc existe”



“DONC C’est le meme truc, donnee A CREER par l’equipe DATA”



“GRANDE QUESTION : QU’EST-CE QUE C’EST CE TRUC ? ”



“Comme je ne comprends pas tout à ce DATMIN je limite les risques en ne prenant ZDTDEB que si DATMIN &lt; ZDTDEB DATMIN mis à ZDTDEB pour éviter que lecture ramène des occ antérieures à ZDTDEB (c.à.d. dd et df &lt; zdtdeb)”



“N’IMPORTE QUOI, CE PARAGRAPHE. ”



“VOTRE MISSION, SI VOUS L’ACCEPTEZ : TROUVER UNE DEMANDE D’AJ1 POUR MONSIEUR, ANTERIEURE OU EGALE AU 31/MT.”



“LA DEMANDE EXISTE ! WHAT A WONDERFUL WORLD !”



“what is it (x 3) et (x 4) ? Devine - bofbof”



Merci, c’est plus clair vu comme ça qu’avec la vision “terrain” un peu plus éloignée <img data-src=" />


La gestion des variables était là pour montrer mon propos comme quoi pour arrivé à C, il a fallut réunir et théoriser les pratiques du métier. Comme tu le dit toi même, ce sont justement des pratiques en Assembleur, mais c’était fait à la main (et c’est chiant à en mourir) où sinon il fallait passer par des outils annexes. C’est une couche d’abstraction.

Parmi les autres couches d’abstractions, on à par exemple la séparation du code source en 2 fichiers, les fichiers contenant le code lui même (fichier sources .c) et les fichier servant plutôt à synthétiser les outils qu’offre ce code (headers .h).

La question n’est pas tant de dire que c’est impossible en assembleur car normalement, tout ce qui est possible à faire sur un langage exécutable sur un PC est possible à faire en assembleur. C’est à quel niveau d’abstraction ont est.

Là où Cobol laisse paraître un usage assez direct d’une machine de Von Neumann, C fait usage de concepts plus haut niveau.

Après, ça peut poser des problèmes. Il faut voir par exemple la bidouille que Carmarck à du faire pour écrire sa fameuse mise en œuvre de la fonction de racine carrée inverse rapide et tout les cast pour faire un calcule logique sur la représentation en bit d’un entier à virgule flottante (c’est crade et je ne suis même pas sûr que ce soit légal).


Mais le pire est que des fonctions identiques sont générées dans le de multiples sources : recherchez “Definit si un jour est ferie” avec NOTEPAD++ dans le dossier BATCH ou TP et vous allez voir que le même code est dupliqué dans pas mal de sources. Un sous-programme aurait été plus intelligent… Je ne sais combien coûte la maintenance de ce logiciel ,mais ça doit être très cher. C’est un sous programme.



Parfois, il vaut mieux se taire et passer pour un con plutôt que de parler et de ne laisser aucun doute sur le sujet.

P. Desproges.

&nbsp;

&nbsp;Du coup, le petit commentaire sur le coût de la maintenance me semble un peu superflu.


tu cherches trop loin, c’est moins compliqué



en cobol, les variables sont globales au programme, la notion de sous programme dans un programme cobol n’existe pas comme en C ou Pascal par exemple

un sous programme est un programme indépendant appelé par un CALL augmentée si besoin d’une zone de communication

si on n’ajoute pas la directive de compilation adéquate, le programme appelé récursivement occupe le même espace mémoire, on retrouve donc la valorisation des variables telles quelles étaient lors du dernier appel



si par contre la directive est indiquée, chaque appel fera monter le programme dans un espace mémoire différent, avec une valorisation des variables différente (ou à leur valeur par défaut)



le découpage est juste différent (1 pgm pour chaque fonction en cobol, 1 seul source avec toutes les fonctions pour le C)



le cobol se veut être un langage au plus prêt de la langue parlée, limite pseudo code (MOVE this TO that, ADD number TO this, SUBSTRACT number FROM this GIVING that)

d’ailleurs on retrouve pour marquer une fin d’instruction le point, la précision du niveau d’une variable dans un ensemble, des booléens multiples (niveau 88)



Après, le cobol permet de manipuler les variables à la sauce pointeur comme par exemple le REDEFINE

exemple : tu as une chaine de caractères A de 8 de long

tu peux définir une variable B qui redéfini la variable A et étant un ensemble de trois variables :

C de 4 de long,

D de 2 de long

E de 2 de long



si tu met 20180315 dans A, B=20180315=C||D||E=2018||03||15 (B pointe sur la même adresse mémoire que

A)

C=2018

D=03

E=15

&nbsp;

certains concepts concernant la déclaration/manipulation de variables ne se retrouvent pas ailleurs de manière aussi transparente (voire pas du tout)

le cobol est un langage objet comme les autres finalement (on pourrait parler des structures tableaux OCCURS aussi) et est très largement sous estimé et méconnu



&nbsp;


<img data-src=" />



faut voir certain pgm en assembleur des années 70 … je me suis cassé les dents plusieurs fois sur du code supposé mort mais en fait, en dynamique lors de l’exécution, une instruction neutre (NOP) étaient transformée en JUMP vers ce code mort directement en mémoire programme par une autre instruction ….&nbsp;

Et bien sûr, pas de commentaires, pas de doc, rien

&nbsp;

modifier le code machine directement pendant l’execution, c’est plutot plus permis ca&nbsp;



&nbsp;Des vicieux je vous dit <img data-src=" />


un EXPAND de COPY lors de la précompilation pour etre chieur <img data-src=" />



 Edit : on modife une fois la copy et on recompile tous les pgm qui l'utilisent, rien de plus simple et rapide   



&nbsp;

après la connerie c’est surtout de ne pas se renseigner avant ou alors faut tourner la phrase en interrogation <img data-src=" />


C’est pas bien de mettre un 47F0 xxxx dans du code en train de tourner pour éviter un recyclage d’espace adresse ou un IPL.

Mais bon à la guerre comme à la guerre. Hein ?

Et c’est pour ça que j’étais très bien payé <img data-src=" />


Yep je ne connais pas le cobol mais ce dont il parle c’est comme l’option de compile pour exploser les macro en assembleur dans le listing

Enfin c’est à ça que je pensais


oui tout à fait <img data-src=" />


ouais et bien ca nous a donné des sueurs froides (surtout quand on a modifié le code après le NOP et que ça se bananait aléatoirement) <img data-src=" />

heureusement que l’on avait EXPEDITER (outil de débogage pour les non initiés) sinon on y serait encore


J’ai récupéré des vieux bouquins pour lesquels la façon standard de faire une boucle, c’est de remplacer le saut inconditionnel de bas de boucle par un nop une fois que la condition de sortie est atteinte <img data-src=" />


Red, parfois orthographié RED, abréviation anglaise de «Retired and Extremely Dangerous »



https://fr.wikipedia.org/wiki/Red_(film,_2010)



<img data-src=" />


Ce genre de techniques est encore utilisé de nos jours pour tout ce qui est protection logiciel, comme par exemple pour les DRMs.


Avec ce soft pour visual studio, on peut de ce que j’avais entendu, importer des fichier COBOL.

Pendant l’import il va scanner et trouver si il y a des programmes et des copybooks.



https://www.microfocus.com/fr-fr/products/visual-cobol/


Pour ceux qui veulent en apprendre un peu plus sur l’infrastructure mise en place pour faire tourner tout ça :



http://www.lemagit.fr/etude/La-CNAF-va-enfin-eteindre-ses-mainframes-Bull-et-IBM


Merci, super intéressant comme article.


Merci !



la double solution IBM/BULL … quand l’état français imposait Bull dans les années 7080

mais bull n’a jamais réussi à dépasser le maitre <img data-src=" />

&nbsp;


intéressant !

Merci !


Je viens de demander les éléments suivants à la CNAF, si ça pouvait améliorer la compréhension de leur “code source” :

-Les fichiers SQL fonctionnant avec ce code source

-Les spécifications fonctionnelles relatives aux APL

-Les spécifications fonctionnelles relatives au RSA

-Les spécifications fonctionnelles relatives aux allocations familiales

-Les spécifications fonctionnelles relatives à la prime d’activité








Xavier.B a écrit :



Je viens de demander les éléments suivants à la CNAF, si ça pouvait améliorer la compréhension de leur “code source” :&nbsp;





&nbsp;Merci.



Est-ce inclus dans la loi, ou un supplément demandé “amicalement” ?





vieux dicton cynique



A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard



<img data-src=" />


Ah cool merci pour le nom du type d’interface.



Pour connaître très bien une administration du même genre dans un autre,&nbsp; ils étaient aussi en cobol pour leur programme avec une interface de ce genre.



Le programme avait 33 ans.



Ils ont tout recodé en java (pas que l’IHM) la totalité du programme.&nbsp; Chantier énorme mais c’était un paris sur l’avenir vu la difficulté qu’ils avaient a recruter des mecs connaissant le cobol

&nbsp;


Remarque : La taille du ZIP à télécharger n’est pas indiquée.


Et pourquoi pas le mettre sur github ou framagit ? Pas forcement par NextInpact mais directement par les services d’états concernés…


Très intéressant, merci <img data-src=" />


Pour quoi faire ?