Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides
AbraCADAbra
Le 13 mars 2018 à 13h56
3 min
Droit
Droit
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.
Déjà abonné ? Se connecter
Abonnez-vousLe 13/03/2018 à 14h13
Le cobol a encore de beaux jours devant lui
Le 13/03/2018 à 14h18
Normalement le cobol est assez remarquablement lisible.
Bien plus facile à reprendre que de l’objet designpaterné je dirais.
#cestdanslesvieuxpotsgnagnagna
Le 13/03/2018 à 14h19
‘tin des fichiers de 200 000 lignes de code, ça envoi du pâté " />
Le 13/03/2018 à 14h21
Alors, vous avez trouvé des bugs à NXI en lisant le code ?
Le 13/03/2018 à 14h22
@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.
Le 13/03/2018 à 14h23
Vive le cobol, vive pacbase
" />
Le 13/03/2018 à 14h26
Le 13/03/2018 à 14h28
Mais pourquoi est-ce si compliqué ?
Les fichiers sont énormes…
Le 13/03/2018 à 14h28
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.
Le 13/03/2018 à 14h30
Non, j’ai un métier moi " />
Au pire même un code obfusqué en cobol sera plus facile à détricoter qu’un code objet, ce que j’indique reste vrai.
Le 13/03/2018 à 14h36
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 " />
Le 13/03/2018 à 14h37
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.
Le 13/03/2018 à 14h37
“Parait-il”
C’ est assez bien résumé " />
Les subtilités … comment dire ….
" />
Le 13/03/2018 à 14h48
Le 13/03/2018 à 14h50
Le temps de remonter une machine qui va bien (z/os, os/400 ?), de compiler le code et de tester mes gamins seront majeurs…" />
Le 13/03/2018 à 14h51
Le 13/03/2018 à 14h53
Leur autorisation d’usage se rapproche de quelle licence connue ?
Le 13/03/2018 à 14h57
Le 13/03/2018 à 14h58
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…
Le 13/03/2018 à 15h01
C’est une blague ce code source.
Le 13/03/2018 à 15h02
Le 13/03/2018 à 15h02
L’urssaf c’est du fortran… " />
Le 13/03/2018 à 15h02
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)
Le 13/03/2018 à 15h05
j’ai pas fait mieux " />
Le 13/03/2018 à 15h05
“Ce document public nous a été transmis par la Caisse nationale des allocations familiales, dans le cadre d’une demande dite « CADA ».” “Moins d’un mois plus tard, la Caisse nationale des allocations familiales (CNAF) répondait favorablement à notre requête”
Du coup vous avez pas eu besoin de la CADA …?
Le 13/03/2018 à 15h05
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.
Le 13/03/2018 à 15h07
La CAF… toujours là pour nous apporter un dose d’humilité :p
Le 13/03/2018 à 15h09
@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…
Le 13/03/2018 à 15h13
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é
Le 13/03/2018 à 15h15
Excellent travail ! J’admire votre pugnacité sur ce genre de sujets qui réclame du temps…. beaucoup de temps et de patience…
Le 13/03/2018 à 15h16
Je crois que la partie en gras est censée résumer l’article.
Le 13/03/2018 à 15h17
" />" />
Le 13/03/2018 à 17h06
qui sait ? Peut-être qu’elle compilait le C aussi. (attention, contrepèterie ! " />)
Le 13/03/2018 à 17h09
Le 13/03/2018 à 17h14
Le 13/03/2018 à 17h17
Le 13/03/2018 à 17h27
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 " />
Le 13/03/2018 à 17h32
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
Le 13/03/2018 à 17h37
Le 13/03/2018 à 17h37
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.
Le 13/03/2018 à 17h37
" />
des gens qui n’ont jamais fait d’assembleur ?
Le 13/03/2018 à 17h38
Le 13/03/2018 à 17h44
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 13/03/2018 à 17h52
le batch c’est du batch , le TP c’est du transactionnel
Le 13/03/2018 à 17h56
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 !
A998.CCR1308B : Zone devant disparaitre mais impossible CGLKPIMO
* IMPOSSIBLE n’est pas français, madame. CGLKPIMO
* Breton, peut-etre, mais pas français, c’est sûr. CGLKPIMO
* (le 25/04/02) à cause de la SIMULATION
* Version : V01500 CGBCALAK
* CGBCALAK
* Chantier : AQ015 Début : 12/05/2004 Fin : 12/05/2004 CGBCALAK
* CGBCALAK
* Texte : Le jour, tous les chats gris sont gris. CGBCALAK
* Chantier : 1R150 Début : 08/07/2004 Fin : 08/07/2004 CGBCALAK
* CGBCALAK
* Texte : Après la nuit blanche, ce fut un jour noir pour tous leCGBCALAK
* bleus.
Le 13/03/2018 à 18h01
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.
Le 13/03/2018 à 18h31
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)
Le 13/03/2018 à 18h40
Le 13/03/2018 à 22h36
Chapeau pour le temps que tu as dû passer à cette analyse.
Le 13/03/2018 à 22h43
…
Le 13/03/2018 à 22h57
Le 13/03/2018 à 22h59
Le 13/03/2018 à 23h01
Le 13/03/2018 à 23h09
Le 13/03/2018 à 23h17
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.
Le 13/03/2018 à 23h28
Je parlais bien sûr de Transaction Processing ( du CICS par exemple)
WikipediaLe temps partagé date des années 60 quand on ne faisait même pas encore de multiprocessing mais seulement du multitasking.
Le 13/03/2018 à 23h29
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 ?
Le 13/03/2018 à 23h32
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.
Le 14/03/2018 à 00h42
Le 14/03/2018 à 04h44
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.
Ca en dit long sur l’efficacite de la CAF et sur leur gestion interne…
Le 14/03/2018 à 04h47
“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…
Le 14/03/2018 à 05h30
Le 14/03/2018 à 06h24
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é.
Le 14/03/2018 à 06h36
Le 14/03/2018 à 07h00
Le 14/03/2018 à 07h20
Le 14/03/2018 à 07h24
Le 14/03/2018 à 07h35
+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.
" />
Le 14/03/2018 à 08h01
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.
Le 14/03/2018 à 08h10
Le 14/03/2018 à 08h14
Le 14/03/2018 à 08h27
Pardon pour la formulation, c’est vrai qu’à l’écrit elle ne passe pas." /> 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 14/03/2018 à 08h28
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.
Le 14/03/2018 à 08h35
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) ?
Le 14/03/2018 à 08h35
Le 14/03/2018 à 08h38
Dis comme ça je comprends." />
(et je constate que nos critère de perception d’un langage diffèrent fortement, vive la diversité)
Le 14/03/2018 à 08h40
Le 14/03/2018 à 09h06
Le 14/03/2018 à 09h10
Le 14/03/2018 à 11h39
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, …)
Le 14/03/2018 à 11h40
Le 14/03/2018 à 11h42
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.
Le 14/03/2018 à 11h49
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.
Le 14/03/2018 à 11h54
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.
Le 14/03/2018 à 12h05
Le 14/03/2018 à 12h19
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 ? " />
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.
Le 14/03/2018 à 12h33
Le 14/03/2018 à 12h43
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.
Le 14/03/2018 à 12h43
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. 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.
Le 14/03/2018 à 12h47
Le 14/03/2018 à 12h50
On est d’accord.
Le 14/03/2018 à 12h50
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!?
Le 14/03/2018 à 13h14
Le 14/03/2018 à 13h15
Le 14/03/2018 à 13h28
Le 15/03/2018 à 07h29
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…
Le 15/03/2018 à 07h59
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.
Le 15/03/2018 à 09h25
bien résumé,merci ! " />
Le 15/03/2018 à 10h13
Le 15/03/2018 à 11h10
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 < ZDTDEB DATMIN mis à ZDTDEB pour éviter que lecture ramène des occ antérieures à ZDTDEB (c.à.d. dd et df < 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”
Le 15/03/2018 à 12h17
Merci, c’est plus clair vu comme ça qu’avec la vision “terrain” un peu plus éloignée " />
Le 15/03/2018 à 13h03
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).
Le 15/03/2018 à 13h21
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.
Du coup, le petit commentaire sur le coût de la maintenance me semble un peu superflu.
Le 15/03/2018 à 13h52
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
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
Le 15/03/2018 à 14h00