Magie noire dans la correspondance de motifs de Python 3.10 : exploitation de `__subclasshook__`

2025-08-22

Cet article explore les capacités inattendues résultant de la combinaison de la correspondance de motifs de Python 3.10 et de la méthode `__subclasshook__` des classes de base abstraites (CBA). En utilisant habilement `__subclasshook__`, l’auteur montre comment « pirater » la correspondance de motifs, permettant de définir de manière personnalisée les types qui correspondent, et même la correspondance en fonction des attributs d’objet, et pas seulement des types. Tout en présentant des fonctionnalités puissantes, comme la création de correspondances personnalisées, l’auteur met fortement en garde contre l’utilisation de cette technique dans le code de production en raison de sa nature imprévisible et potentiellement dangereuse.

Lire plus

L'influence étonnamment profonde des langages de programmation « morts »

2025-07-16

Cet article explore l'impact étonnamment significatif de langages de programmation historiquement influents qui ne sont plus largement utilisés, tels que COBOL, ALGOL, APL et BASIC. En examinant leurs antécédents, leurs contributions et les raisons de leur déclin, l'auteur révèle leur influence durable sur les langages modernes. Des exemples incluent les structures de données d'enregistrement de COBOL, la portée lexicale et la programmation structurée d'ALGOL, et le traitement de tableaux d'APL. L'article souligne l'importance d'étudier l'histoire des langages de programmation et les contributions souvent négligées des langages qui n'ont jamais atteint une popularité généralisée.

Lire plus

Les origines mal comprises de la POO : éclaircissements

2025-05-10

Cet article réfute l’idée reçue selon laquelle Alan Kay aurait inventé la programmation orientée objet (POO) et le concept d’objet. En réalité, le langage Simula a été un précurseur important de la POO, un fait reconnu par l’équipe Smalltalk. Bien que Kay ait inventé le terme « objets », il l’a regretté par la suite, soulignant que la transmission de messages était l’idée centrale de la POO. L’article explore plus avant les contributions uniques de Smalltalk à la POO, notamment son principe de conception consistant à traiter tout comme un objet et son mécanisme innovant de gestion des messages. L’auteur soutient que l’évolution de la POO n’a pas été un événement unique, mais une confluence d’idées et de besoins, différents développeurs comprenant et appliquant la POO de différentes manières dans divers contextes.

Lire plus
Développement

L'histoire curieuse des commentaires JavaScript : pourquoi `<!--` et `-->` fonctionnent

2025-03-12

Cet article dévoile l'histoire curieuse de l'utilisation de `` comme caractères de commentaire en JavaScript. Initialement, pour assurer la compatibilité avec les anciens navigateurs, les développeurs encapsulaient leur code JavaScript dans des commentaires HTML à l'intérieur des balises ``. Étonnamment, les navigateurs modernes prennent encore en charge cette syntaxe en raison de problèmes historiques de compatibilité des navigateurs et de l'engagement du comité de normalisation à « ne pas casser le web ». L'article explique comment cette syntaxe fonctionne et pourquoi `-->` doit apparaître au début d'une ligne.

Lire plus

Application de la hiérarchie des contrôles à l'ingénierie logicielle

2025-03-08

Un ingénieur mécanicien a présenté à l'auteur la hiérarchie des contrôles (HoC), un concept crucial en matière de sécurité sur le lieu de travail. L'auteur applique la HoC à l'ingénierie logicielle, en analysant un incident de base de données de production causé par une requête incorrecte il y a dix ans. L'article explore l'application de l'élimination, de la substitution, des contrôles d'ingénierie, des contrôles administratifs et des équipements de protection individuelle (EPI) pour atténuer les risques dans le développement de logiciels. Les avantages, les inconvénients et les limitations de chaque niveau sont discutés ; par exemple, des politiques d'accès trop strictes peuvent ralentir la résolution des problèmes. L'auteur souligne la nécessité de considérer de manière holistique l'impact des contrôles sur la sécurité du système, en évitant l'introduction de nouveaux risques.

Lire plus
Développement