Commentaires : IBM a besoin de programmeurs en langage COBOL, longtemps considéré comme obsolète

Le langage machine c’est une suite de 0 et de 1. Assembleur n’est pas du langage machine. C’est le langage qui s’en rapproche le plus, parce qu’une simple « traduction littérale » permet de passer de l’asm au binaire, mais ce n’est pas similaire.

Pas tout à fait.

Le langage machine binaire et sa forme symbolique compréhensible par l’humain sont juste deux représentations différentes de la même chose.

A l’origine, le mot « assembleur » désigne le programme qui permet de passer de passer de la forme compréhensible par l’humain à celle compréhensible par la machine. Et le désassembleur permet de faire l’inverse. Au passage, je précise que j’ai écrit dans ma vie plusieurs compilateurs et même un assembleur.

Donc, c’est par abus de langage qu’on a utilisé le mot assembleur pour parler du langage machine et de la forme symbolique compréhensible par l’humain. Mais bon, ce n’est pas un problème puisqu’en général on se comprends.

Et puis, si on était rigoureux en informatique, on ne pourrait plus s’amuser à voir les mathématiciens et les scientifiques devenir fous :wink:

Ah le kilo à 1024, quel bonheur pour tromper l’ennemi. Et le signe égal pour les assignations… :wink:

Ce n’est pas qu’un langage de programmation ne peut fonctionner sans langage machine, ce sont deux choses différente. L’un permet une représentation compréhensible par l’homme d’un programme, l’autre est le représentation compréhensible par le processeur de ce même programme.

Ce qui ne change rien à ce que j’ai affirmé, à savoir que votre joli programme écrit en langage évolué ne servira jamais à rien s’il n’est pas traduit en langage machine ou interprété par quelque chose qui est exécutable.
D’ailleurs, pour les langages évolués, ce que vous dites la peut se discuter (même si ce n’est pas non plus complètement faux) dans la mesure ou il s’agit plus d’une translation que d’une représentation différente. Il n’existe pas de correspondance directe entre une instruction en langage évoluée et une instruction en langage machine.
Même si on considère le concept de groupes d’instructions, il n’existe pas non plus de correspondance simple, ni une manière unique de traduire une instruction en langage évoluée vers un groupe d’instructions en langage machine. Deux compilateurs ne vont pas générer le même code et la compilation n’est que partiellement réversible (dé-compiler est très difficile).

Mais, je ne vois pas pourquoi tu réponds ça par rapport à mon commentaire… ASM est ultra performant (s’il est bien utilisé), puisqu’il représente exactement ce à quoi le processeur s’attends, il n’en reste pas moins que, lorsque l’on peut l’évider, on l’évite, parce que le gain en performance ne justifie que rarement l’énorme perte de temps, de risque d’erreur et difficulté de maintenabilité.

Programmer en langage machine n’est ni une perte de temps, ni une source d’erreur si vous utilisez ce langage à bon escient, quand son utilisation est indiquée et de la manière dont il faut le faire.

Ce qu’il faut comprendre c’est que contrairement aux idées reçues, la programmation en langage machine n’est pas obsolète et ne le sera jamais si l’on considère les usages qui sont pertinents pour ce langage.

Je doute que, comme tu le dis, beaucoup de développement se font encore en ASM. Même la part de code ASM des noyaux Linux ou Windows est minime, le reste c’est du C/C++, pareil en électronique.

Sauf que la quantité de lignes de code ne dit rien sur la pratique d’un langage. Car cela n’est ni représentatif du temps passé, ni de l’importance de ce code.

Aujourd’hui, le langage machine est utilisé pour de petites portions de code très fortement optimisées (donc qui comptent beaucoup dans la performance d’un ordinateur) ou pour utiliser certaines fonctions particulières des processeurs. Dans ce cadre, cela peut demander plus de temps d’écrire 10 lignes de code en langage machine que 5000 lignes pissées en Java.
Donc ce n’est pas en comptant les lignes de code que vous aurez une idée du nombre d’heure que les programmeurs consacrent a du langage machine.

Au passage, il n’y a pas que les noyaux et les drivers qui utilisent des portions de code en langage machine. C’est le cas de beaucoup de logiciels performants.

Et il y a bien d’autres usages, par exemple dans le déverminage de programmes. Devant un comportement aberrant et incompréhensible dans un programme dont le code est correct, il faut soupçonner un bug du compilateur. L’étude et le traçage au niveau langage machine permet de savoir rapidement ce qui se passe.
Même si c’est un cas de figure qui n’arrive pas tous les jours, j’ai rencontré le cas plus d’une fois. Et ceux qui ne pratiquent que les langages évolués seront incapables de trouver le problème.

On pourrait ajouter que la maîtrise et la compréhension du langage machine améliorent beaucoup la compréhension des programmeurs par rapport à ce qu’ils écrivent en langage évoluées. Ce qui améliore en pratique beaucoup leur capacité à écrire du code efficient.

pareil en électronique.

Pas vraiment.
Dès lors qu’il y a besoin d’un contrôle du timing au delà d’une certaine précision, on peux oublier tous les langages évolués, même le C.

Et il existe bien d’autres cas de figure. Par exemple sur les petits microcontrôleurs, la programmation en langage évoluée peut s’avérer pénible. J’ai vu plus d’un programmeur s’y casser les dents à tenter de faire ça en C. « je comprends pas, j’appelle la fonction et ça fait n’importe quoi, ça fait 3 semaines que je tourne en rond ». Bah ouais jeune padawan, t’as une pile riquiqui et c’est vraiment vite fait de l’écraser. T’aurais fait ça en langage machine, t’aurais gagné du temps… et cerise sur le gâteau, t’aurait encore des cheveux :wink:

4 « J'aime »

:joy::joy::joy:

L’Intel Z80 vaincra :laughing:

1 « J'aime »

La force du cobol est dans la manipulation des fichiers, maintenant que tout le monde s’oriente vers les bases de données, le cobol perd de son attirance; on continue à s’attacher au cobol pour la définition des variables en display, aucune perte de données monétaires, ce que cherchent les financiers
Je pourrais bien rendre service à ceux qui le désirent en télétravail

Je pense qu’il a fait exprès :

Quelques posts plus haut, a été posté « Motorola 6502 » (peut-être par erreur), or le 6502 a été créé par Mos Technology et non Motorola. :wink:

Edit : Mais oui, en effet, le Z80 c’est Zilog. :wink:

1 « J'aime »

Je pense qu’il a fait exprès

Ouaip… :wink:

T’a mordu mon troll :wink:

Ah et c’est où ta région? Je suis un ancien développeur Cobol recyclé.

Attention, les TV Samsung depuis 2018 ne supportent pas le dts, et c’est très gênant !

Il y a longtemps qu’il manque de programmeurs Cobol

Je ne sais pas qui est le plus rancunier …
ce qui est certains c’est que si tu continues sur cette voie là, tu vas avoir vite fait d’y retourner.

Edit : Il n’y aura pas 50 avertissements.

Comme Denis_PHILIBERT, je suis coboliste en recherche d’une nouvelle mission et ce dans le grand-ouest.

Bonjour Denis_Philibert, bonjour jpato72,
Énormément de disponibilités en région Parisienne, sur Strasbourg, Nantes, Dijon, etc.
(« Énormément ? Mais ça fait 20 fois moins de postes qu’en C# par exemple » => oui, mais pour 100 fois moins de développeurs).
Peu d’annonces car la main d’oeuvre n’existe pas: le mieux est de contacter les services informatiques des banques, assurances, ou encore des ESN (si possible les grosses qui ont des contacts privilégiés avec ces entreprises).

Pour ceux qui apprennent le cobol en une journée : félicitations, vous pensez qu’un « Hello World » avec Visual Cobol représente le monde du mainframe donc vous n’y connaissez rien. Batch, cics, IMS, jcl, etc, sont nécessaires à maîtriser : devient-on développeur web parce qu’on a appris uniquement le HTML une journée ? Niet :slight_smile:
Oui, le cobol est très verbal comme langage, mais il évolue régulièrement et l’optimisation du code est primordial sur les mainframes!

3 « J'aime »

On ne doit pas être dans la même région. En recherche d’emploi, ayant pratiqué le COBOL plusieurs années, personne n’est venu me demander …

1 « J'aime »

Le COBOL s’utilise aussi très bien avec les SGBD

2 « J'aime »

Demain, ne vont-ils pas réclamer des programmeurs en GAP ?

IBM c´est vraiment des rigolos, c´est les premiers à avoir persuadé les clients d´outsourcer la programmation COBOL ou l´administration de systèmes AIX le tout en Inde et ensuite ils viennent pleurnicher que les compétences n´existent plus ailleurs.
Au bout d´un moment il faut être cohérent…
Ils ont fermé la Gaude (et tous les experts sont partis) et ensuite pareil ils viennent essayer de trouver les mecs qu ils ont remercié car tu comprends y a des clients bah non fallait y penser un peu avant…

Tkt IBM ils vont leur envoyer les indiens qu´ils ont formé en masse en COBOL… Ca évitera de payer les charges sociales occidentales.