Introduction

Larry Wall, auteur de « Programming Perl », a défini les trois vertus d'un programmeur comme la paresse, l'impatience et l'orgueil. La paresse est considérée comme la plus profonde de ces vertus, car elle pousse les développeurs à créer des abstractions puissantes et simples.

Contexte Technique

La paresse dans la programmation signifie créer des systèmes simples, mais pas trop simples. Cela nécessite un travail intellectuel important pour développer des abstractions qui permettent de faire plus avec moins d'efforts. Les développeurs qui travaillent de manière paresseuse, en fait, effectuent un travail difficile pour optimiser leur temps futur, même si cela signifie consacrer plus de temps actuellement.

Les modèles de langage de grande échelle (LLM) ont révolutionné la création de logiciels, mais ils ont également donné lieu à une fausse industrieuxité, où la quantité de code produit est plus importante que la qualité. Cela a conduit à l'émergence de « brogrammeurs » qui se vantent de leur productivité, sans se soucier de la simplicité et de la puissance de leurs systèmes.

Analyse et Implications

Les LLM ont accentué ce problème en permettant aux développeurs de produire rapidement de grandes quantités de code, sans se soucier de la qualité ou de la simplicité. Cela a conduit à des systèmes plus grands, mais pas nécessairement meilleurs. Les LLM manquent de la vertu de la paresse, car ils ne sont pas limités par le temps ou la charge cognitive, et peuvent donc produire du code sans optimiser pour l'avenir.

Cela souligne l'importance de la paresse humaine dans la création de logiciels. Les développeurs doivent travailler pour créer des abstractions puissantes et simples, car leur temps est limité et ils ne veulent pas gaspiller leur temps sur des conséquences de code mal conçu.

Perspective

Les LLM peuvent jouer un rôle important dans l'avenir de la création de logiciels, mais ils doivent être utilisés de manière à servir la paresse vertueuse des développeurs. Cela signifie utiliser les LLM pour résoudre des problèmes complexes, comme la dette technique, et pour promouvoir la rigueur de l'ingénierie, mais toujours dans le but de créer des systèmes plus simples et plus puissants.