Protocol Buffers : Un désastre amateur ?

2025-09-05

Cet article critique les défauts de conception de Protocol Buffers (protobuf), arguant que son système de types est médiocre, sa conception est ad hoc et qu’il entraîne une série de problèmes qui envahissent le code. Les nombreuses restrictions de protobuf proviennent de ses solutions médiocres à des problèmes déjà résolus, manquant de compositionnalité. Des exemples incluent l’impossibilité de répéter les champs oneof et plusieurs limitations des champs map. L’article critique également les affirmations de protobuf concernant sa compatibilité ascendante et descendante sans effort, et comment il pollue les bases de code, rendant le code difficile à écrire et à maintenir. L’auteur soutient que protobuf ne convient qu’aux grandes entreprises comme Google, pas à la plupart des entreprises, et conseille aux développeurs d’abandonner l’utilisation de protobuf.

Lire plus
Développement Conception Logicielle

D'un an à quelques semaines : optimisation du partage de graphes de programmes dans un compilateur

2025-05-13

L'auteur a passé plus d'un an à résoudre un problème de sérialisation de graphe de programme dans un compilateur. La solution initiale était désordonnée et difficile à maintenir. En collaborant avec d'autres et en reformulant le problème comme la recherche du plus petit ancêtre commun unique (LSCA) dans le graphe, il a tiré parti des bibliothèques d'algorithmes LCA existantes et de techniques intelligentes de programmation paresseuse. Le résultat est une solution élégante à temps linéaire, un tiers de la taille de la solution initiale, résolvant efficacement les goulots d'étranglement de performance.

Lire plus