Pour votre tribunal, c’est plutôt une question d’article, un raisonnement d’article et, à certains endroits, une perplexité. D'une part, nous avons reçu l' avis faisant autorité de Leslie Lamport, «La programmation devrait être plus que le codage», qui place la programmation et le codage dans un tableau de classement impromptu. Du côté opposé, moi qui n'ai pas un statut suffisant pour des disputes avec le maître et l'université légendaire qu'il représente ... mais je ne peux pas me refuser tant de plaisir et de risque. J'espère que des camarades plus expérimentés corrigeront mes défauts de raisonnement.
Je comprends intellectuellement que le codage dans le monde moderne est généralement perçu comme le niveau d'activité d'ingénierie le plus bas, ce qui, sur la carte de l'évolution, est plus proche d'un chimpanzé que d'un programmeur. Et c'est peut-être notre grosse erreur, car le code est comme l'ADN. Seulement quatre nucléotides, et quelle biomasse hétéroclite dans la gamme de produits.
En tant qu'ingénieurs expérimentés, nous sommes maîtres de l'abstraction. Par conséquent, il ne sera pas difficile pour nous de présenter un programmeur conditionnel nommé Leslie Lampport (tous les noms et correspondances ne sont pas aléatoires) et son principal outil est la machine de Turing. Il est maître de son métier, en grande partie grâce au fer tao:
- Décidez de ce que le programme doit faire.
- Déterminez exactement comment il doit remplir sa tâche.
- Écrivez le code approprié.
La dernière étape, bien qu'elle lui semble importante, ne l'aime manifestement pas et suggère de l'ignorer. Et c'est difficile de contester cela. Déplacer le pointeur le long du ruban sans fin d'une machine de Turing est un désir mortel.
Et ici son génie est pleinement révélé. Mais ce processus, comme un Sharpie avec des dés à coudre, doit être surveillé très attentivement. Il prend trois points de son programme et met une balle avec un code sous le dernier. Nous hochons la tête et faisons des paris. Ensuite, les dés à coudre sont délibérément mélangés lentement. Où est le code?
Nous n'avons pratiquement aucun doute où se trouve le troisième dé à coudre, et le code est ... sous le dé à coudre numéro 1. Les spectateurs sont sous le choc, M. Lamport a également l'air déconcerté, mais dans son cœur, il sait qu'il a triché. Et précisément à ce moment, quand il a tranquillement roulé la balle avec le code de l'élément 3 dans l'élément 1, je voulais vraiment l'attraper par la manche.
Ce qui ressemble à un canard charlatan comme un canard, et même il est sûr que le canard est le plus susceptible d'être. Si vous avez développé le langage TLA + pour les spécifications, en criant avec toute son apparence et son comportement que c'est un code, c'est tout. Le fait que vous l'ayez utilisé au stade de la spécification du programme, c'est-à -dire le point 1 de la "décision ce que le programme devrait faire", vous ne vous êtes pas débarrassé de la nécessité pour le point 3 "d'écrire le code approprié".
Interpolons Leslie pendant dix ans, au cours desquels il utilise méthodiquement le TLA + qu'il a créé pour écrire des spécifications. Je pense, que les analystes, nous, les architectes ou les ingénieurs de bases de données, admettons à contrecœur que nous devenons un codeur au sens le plus courant du terme. Différents dialectes, différents dictionnaires, mais le même appareil réflexe, qui avec un aspect ennuyé donne des modèles de conception, des diagrammes ER ou des spécifications dans le cas de notre personnage. Et maintenant, sous le point spécieux n ° 1, l'auteur de la thèse selon laquelle "le codage n'est pas si important" cache ce même codage.
Pour illustrer cela, j'inviterai un autre témoin, appelons-le John McCarthy. La programmation d'une machine de Turing est si exaspérante pour quiconque que John, surtout quand il s'agit des tâches qu'il aime tant dans le domaine de l'intelligence artificielle. Et dans le salut, il invente un nouveau style de codage déclaratif pour décrire comment la tâche doit être effectuée (paragraphe 2 de la liste Leslie). Appelons-le conditionnellement LISP.
Supposons que John n'ait écrit aucun programme de sa vie, ce qui, selon la formule de Lamport, le place dans le classement au niveau du plancton, bien qu'il ait la relation la plus directe avec le code. La question se pose, quel est son degré de perplexité et que lui dira-t-il lors d'une réunion?
Je ne porterai pas des dizaines d'exemples identiques, mais j'essaierai d'offrir un résumé à la cour de mes collègues. Le codage est le pouls du développement. Il est présent à toutes les étapes sous une forme ou une autre. Un cardiogramme a l'air ennuyeux, mais c'est un indicateur nécessaire que le projet est vivant. Par conséquent, le libellé * -as-a-Code apparaît de plus en plus.
Nous sommes tous des codeurs. Nous avons un certain appareil et des règles pour cela, tout le monde le fait sur son propre étage. Il n'y a aucune raison valable qu'une personne qui produit du code PHP soit un peu plus stupide qu'un analyste qui crée des spécifications exécutables, et qu'ensemble ils perdent face à un jeune hacker qui pense immédiatement aux codes machine.
La différence est que certains d'entre nous verront quelque chose que d'autres n'ont pas remarqué et ajouteront de la valeur à ce processus. McCarthy - LISP, Lampport - LaTeX et TLA +. Et lorsque vous triez des codes tels que le système de nombres décimaux, le braille, la radio ou les émoticônes, votre langue ne se lève pas pour dire que «la programmation devrait être plus que le codage».
PS Peut-être que quelqu'un des visiteurs de la conférence veut poser les questions posées. S'ils semblent idiots à l'orateur et au public, apportez-moi tout.
PPS Il se trouve que j'ai beaucoup de matériel sur le sujet du code et du codage, et si ce sujet vous intéresse, je le partagerai avec plaisir.