Talking about dev, mostly PHP, Go and FP
PHP se met au fonctionnel, le pipe arrive !
J’en parle partout : j’aime de plus en plus programmer avec des concepts fonctionnels. Même en PHP. Ce n’est pas pour rien que j’ai créé Variant et le projet Hopr, avec son Result tout droit inspiré de Gleam.
PHP n’est pas vraiment connu pour sa pureté fonctionnelle, c’est surtout un langage multi-paradigme, principalement utilisé comme langage orienté objet. Mais depuis quelques versions, PHP nous donne des outils pour écrire du code plus expressif. Et l’opérateur pipe qui arrive en PHP 8.5 ? C’est un vrai changement.
…Une brève histoire du frontend
Au cours des 14 dernières années, ou plutôt 15 dans quelques jours, le développement front-end a vécu quelques bouleversements. Pendant ce temps, je n’étais pas là.
Durant ce temps, j’étais loin du développement. Je commençais mes études en économie et j’appliquais mes formules du Lagrangien. J’apprenais à optimiser sous contrainte des équations à plusieurs inconnues pour comprendre les agents économiques. L’économie mathématique, c’était sympa, mais j’ai vite découvert une discipline qui m’a bien plus passionné : l’histoire des faits et de la pensée. Au fond, j’avais la curiosité de comprendre la genèse d’une théorie économique, à quelles conditions elle émerge et comment elle évolue, modifie nos perceptions de la réalité et notre façon de penser les problèmes. Cette information va compter pour la suite de cet article.
…Hippo : des pages réactives en pur PHP
Gleam est un changement
J’en parle partout, j’aime de plus en plus programmer en Gleam.run
.
C’est un relativement nouveau langage. La version 1 est sortie en mars 2023, mais c’est un peu moins de 10 ans de developpement au total.
Qu’est-ce que Gleam ⭐?
Gleam is a friendly language for building type-safe systems that scale! (source: gleam.run)
Ou suivant les mots de lpil, son créateur:
Gleam is Go ideas but from the perspective of a FP nerd instead of a C nerd (source: Discord Gleam)
…
title
Hopr\Result - ma librairie de Result
Ces 6 derniers mois j’ai assez intensivement utilisé le ResultType
de GrahamCampbell sur divers projets, dont un projet Laravel.
Je fais beaucoup de PHP et de Laravel pour le travail. C’est une technologie qui est efficace pour du web mais qui manque de beaucoup de choses quand on a regardé un peu ailleurs.
Et comme tout dev, j’ai forcément envie de transposer ce qui est bien ailleurs, dans le langage que je dois utiliser. Pour me simplifier la vie, pour faire ce que je préfère dans le langage que je suis censé utiliser.
L’usage de de la monade Result
en fait parti.
Variant Is Out
La semaine dernière je parlais de la gestion des erreurs en PHP et comment mieux faire.
De plus en plus je suis lassé de créer mes ValueObjets ou d’utiliser les Results de GrahamCampbell. Non pas que ce derniers soient mauvais, loin de là, mais plutôt que je n’apprécie pas tellement la DX qu’il propose.
Et puis on a tous nos petites habitudes. Ca ne convient pas, tout simplement à mes goûts. Quand j’ai le choix d’utiliser autre chose, j’en profite.
…Gérer les erreurs en PHP
La gestion des erreurs est centrale dans la conception de programme résilient, pourtant c’est un sujet que je n’avais jamais vraiment réfléchi. C’est comme ça en quelque sorte, comme s’il n’y avait pas lieu de s’en préoccuper. Pourtant, j’ai toujours programmé dans divers langages de programmation, pas seulement en PHP.
Ce n’est que très récemment que j’ai travaillé un peu avec Rust pour suivre l’engouement, puis Go qui lui est souvent opposé en raison des approches très différentes… J’ai aussi papillonné sur Gleam, fait des aller-retours dans le monde des langages fonctionnels. C’est là que j’ai appris à penser la gestion des erreurs autrement que celle que j’ai toujours connue, celle de PHP et des langages dont il s’inspire..
…