Connexion
Abonnez-vous

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

AbraCADAbra

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

Le 13 mars 2018 à 13h56

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 ».

Commentaires (211)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Le cobol a encore de beaux jours devant lui

votre avatar

Normalement le cobol est assez remarquablement lisible.



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



#cestdanslesvieuxpotsgnagnagna

votre avatar

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

votre avatar

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

votre avatar

@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.

votre avatar

Vive le cobol, vive pacbase

<img data-src=" />

votre avatar







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 ?


votre avatar

Mais pourquoi est-ce si compliqué ?

Les fichiers sont énormes…

votre avatar

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.

votre avatar

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.

votre avatar

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=" />

votre avatar

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.

votre avatar

“Parait-il”

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

Les subtilités … comment dire ….

<img data-src=" />

votre avatar







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=" />


votre avatar

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=" />

votre avatar







NSophis a écrit :



Le cobol a encore de beaux jours devant lui





Absolument, https://forum.geekzone.fr/t/petite-blague-du-lundi-pour-remettre-en-forme/651


votre avatar

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

votre avatar







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;


votre avatar

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…

votre avatar

C’est une blague ce code source.

votre avatar







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…


votre avatar

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

votre avatar

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)

votre avatar

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

votre avatar

“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 …?

votre avatar

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;

votre avatar

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

votre avatar

@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…

votre avatar

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é

votre avatar

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

votre avatar

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

votre avatar

<img data-src=" /><img data-src=" />

votre avatar

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

votre avatar







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;


votre avatar







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.

votre avatar







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;


votre avatar

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=" />

votre avatar

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

votre avatar

&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)


votre avatar

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.

votre avatar



<img data-src=" />

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

votre avatar







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


votre avatar

  • 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.

votre avatar

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

votre avatar

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;

votre avatar

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.

votre avatar

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)

votre avatar







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).


votre avatar

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

votre avatar

votre avatar







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=" />


votre avatar







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 ;)


votre avatar







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 ;-)


votre avatar







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.


votre avatar

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.

votre avatar

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

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

votre avatar

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 ?

votre avatar

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.

votre avatar







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=" />


votre avatar

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;

votre avatar

“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…

votre avatar







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;


votre avatar

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é.

votre avatar







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.


votre avatar







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).

votre avatar







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.


votre avatar







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;


votre avatar

+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=" />

votre avatar

&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.

votre avatar







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.


votre avatar







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=" />


votre avatar

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.

votre avatar

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.

votre avatar

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) ?

votre avatar







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).


votre avatar

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é)

votre avatar







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).


votre avatar







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;


votre avatar







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”.


votre avatar

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, …)

votre avatar







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.


votre avatar

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.

votre avatar

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.

votre avatar

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.

votre avatar







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é …


votre avatar

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.

votre avatar







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 ?


votre avatar

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.

votre avatar

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.

votre avatar







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 :/


votre avatar

On est d’accord.

votre avatar

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!?

votre avatar







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;


votre avatar







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=" />


votre avatar







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.


votre avatar

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…

votre avatar

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.

votre avatar

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



&nbsp;

votre avatar







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.


votre avatar

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”


votre avatar

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

votre avatar

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).

votre avatar

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.

votre avatar

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;

votre avatar