The 2009-10-12 at 11:08 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.
Si vous ne connaissez pas Erlang prenez le temps de vous documenter un peu sur le sujet et revenez.
Une chose que j’aime beaucoup avec Erlang et la philosophie suivante :
C’est une philosophie non conventionnelle dans le domaine de la programmation de systèmes complexes et pourtant elle fonctionne très très bien. Elle fonctionne très bien non pas parce que les programmeurs Erlang sont meilleurs que les autres, mais de part la nature du langage et de la VM associées et par l’utilisation abondante du principe :
Check at the interfaces and trust inside.
Grosso modo, faites votre travail de vérification en entrée mais ensuite faites confiance une fois les données dedans.
La rapidité de Pluf provient en très grande partie de l’application de ces choix, pas de type hiting, pas d’interfaces, le minimun de vérifications en interne et surtout un error_handler qui va très joliment retourner toutes les erreurs aux administrateurs avec une copie de la pile.
Pourquoi pas de type hinting et pas d’interfaces ?
Je réponds par une question : Pourquoi forcer le type et l’interface au niveau du code quand cela coûte des cycles d’exécution et que de toute façon vous faites des tests unitaires de vos programmes ? Quel bénéfice cela apporte-t’il vraiment ? Quel problème peut apporter le duck typing ?
La performance de PHP vient de sa simplicité, la résilience d’Erlang vient de la simplicité de son modèle de process… La performance vient du dépouillement pour aller à l’essentiel.
Saint Exupéry écrivait "Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher.
" et ce qui aurait très bien pu être la réponse d’Einstein : "Everything should be made as simple as possible, but not simpler."
Note : Je ne suis pas un programmeur de formation, mon travail qui me fait vivre est d’optimiser ça, j’ai donc une déformation professionnelle pour la simplicité et la performance et je prends donc des raccourcis dans le formalisme de la programmation. Chacun voit midi à sa porte, c’est bien connu.
Comments from readers
Tantek said:
C'est beau, l'humilité.
Loïc said:
Effectivement, il faut savoir rester humble et reconnaître ce que des générations de personnes avec bien plus de sagesse que nous ont trouvé. Toute la philosophie, les sciences et même pour partie les religions reconnaissent l'importance de la simplicité. La simplicité et le dépouillement tiennent toujours une place centrale dans le développement des hommes et de la science.
(Par ailleurs, Tantek, vos commentaires devront dans le futur être accompagnés de l'adresse de votre site internet sur lequel on puisse clairement lire votre nom ainsi qu'un historique de votre activité positive dans le développement de logiciels libres. En l'absence de cette adresse, vos commentaires seront supprimés.)