Au cours du développement d'un programme, le développeur doit prendre des décisions en fonction de différentes contraintes.

Un programme informatique est donc un ensemble de compromis.

Ainsi, le programmeur va par exemple choisir entre stocker un résultat en mémoire ou bien le recalculer à la demande, ou bien encore décider d'utiliser de l'assembleur ou le dernier langage objet à la mode.

Chacune de ces décisions vont avoir un impact à la fois sur le développeur et l'ordinateur qui éxécutera le programme.

En effet, vu que rien n'est infini, rien ne se perd, rien ne se crée et tout se transforme, si le développeur choisit d'utiliser moins de mémoire, il va perdre des cycles au niveau du micro-processeur.

Et s'il choisit de privilégier l'utilisation de la mémoire, il va récupérer des cycles, mais il ne pourra plus stocker autant de chose dans la RAM de l'ordinateur.

De même, s'il choisit d'utiliser un langage de bas niveau, tel que l'assembleur, l'ordinateur sera très efficace lorsqu'il éxécutera le programme, ce dernier étant pratiquement dans le langage naturel de la machine, mais l'effort intellectuel que le développeur devra fournir sera plus long que si un langage à haut niveau d'abstraction est utilisé.

Et donc, à contrario, si le développeur utilise un langage qui lui permet de développer d'une manière naturelle, l'ordinateur aura un travail beaucoup plus important à fournir lors de l'éxécution du programme, puisque ce dernier devra en quelque sorte être traduit par la machine.

LaurentJ a donc parfaitement raison Lorsqu'il dit qu'un programme qui utiliserait une version complétement objet du langage PHP serait forcément moins efficace que le même programme écrit en langage procédural, voir même avec le modèle objet imparfait de la version actuelle du langage, du point de vue de la machine.

Mais du point de vue humain ?

De ce point de vue, la donne n'est plus la même.

Permettre à un développeur d'utiliser pleinement le modèle objet et la puissance qu'il apporte, via le polymorphisme et la surcharge, lui permettrait d'être plus efficace, plus productif, dans son travail, grâce au haut niveau d'abstraction que ce type de langage autorise à travers l'héritage et la généricité,

L'utilisation de l'objet aurait donc du point de vue humain un impact bénéfique.

La relecture, le test, la maintenance et l'évolutivité d'un code PHP seraient encore facilité et/ou amélioré, autant d'arguments supplémentaires qui permettraient de faire pénétrer PHP un peu plus dans le monde des entreprises ou des langages tel que JAVA régnent en maître.

Alors, est ce que cela vaut vraiment la peine de perdre quelques cycles sur nos micro-processeurs quadri-code à 4 Ghz ?

Personnelement, j'ai fais mon choix il y a longtemps lorsque j'ai découvert les lois de Moore.

Je préfère que la machine me facilite mon travail, pas qu'elle me le complique ou me le rende plus difficile.

Dernier point, en ce qui concerne PHP, son créateur est le premier à dire que si la performance est l'objectif, il ne faut pas l'utiliser pour les traitements lours mais faire appel pour cela à des langages compilés...