Déclaratif. Impératif. Intentionnel.

Les développeurs parlent de paradigmes de programmation tout le temps.

Nous utilisons la programmation impérative. Nous utilisons la programmation déclarative. Nous utilisons des styles fonctionnels ou orientés objet.

Mais il nous manque une couche.

L'avenir est intentionnel.

La programmation impérative dit exactement à un ordinateur quoi faire. Vous fournissez des instructions étape par étape. Vous vous concentrez sur le processus. Vous contrôlez la séquence. Cela vous donne de la précision, mais vous portez le fardeau de chaque étape.

La programmation déclarative a changé cela. Vous décrivez ce que vous voulez, pas comment le faire. SQL est un exemple parfait. Vous demandez des données. Vous n'écrivez pas les boucles et vous ne gérez pas la mémoire. Le système s'occupe du travail. Cela augmente la productivité.

Pourtant, même les systèmes déclaratifs vous obligent souvent à réfléchir à l'implémentation.

Regardez le responsive web design. Vous écrivez du code pour des colonnes et des points de rupture. Vous décrivez toujours de la mécanique. Vous décrivez comment une mise en page doit fonctionner.

Le système sait ce que vous faites, mais il ne sait pas pourquoi.

La programmation intentionnelle change l'objectif.

Au lieu de décrire le CSS, vous décrivez le comportement souhaité. Vous dites au système de s'adapter. Vous dites au système de se réorganiser en fonction du contexte. L'accent passe du mécanisme à la finalité.

Le logiciel évolue dans cette direction.

  • SQL : Vous décrivez des données.
  • Infrastructure as Code : Vous décrivez des ressources.
  • Nectarine : Vous décrivez des schémas et des API.

Le système s'occupe du reste.

Les meilleures bibliothèques logicielles font plus que fournir des fonctionnalités. Elles fournissent un langage. Elles vous apprennent à penser. Chaque API et chaque nom aide à construire une philosophie.

L'implémentation compte, mais elle ne devrait pas déborder sur chaque couche. Les développeurs ne veulent pas exprimer de la mécanique. Ils veulent exprimer une intention. Ils savent ce qu'ils veulent accomplir.

Les bonnes abstractions cachent la complexité. Les grandes abstractions rendent l'intention évidente.

Les styles impératifs et déclaratifs resteront. Mais nous nous dirigeons vers des systèmes qui comprennent les objectifs. Nous avons besoin de systèmes qui traduisent une finalité en résultats.

Concentrez-vous sur ce que vous voulez dire, pas seulement sur la manière dont cela fonctionne. Le sens est plus important que la mécanique.

Source: https://dev.to/stinklewinks/declarative-imperative-intentional-4j60