Bonne question. Concernant PHP il a débuté sur du pur procédural (avant PHP3) pour implémenter de l'objet au fur et à mesure. Bref le language lui-même est passé du procédural à l'objet, tout en restant compatible avec le procédural. Je pense que c'est justement cet héritage procédural qui fait de PHP un language difficile à faire évoluer sans tout casser. Il faudrait (presque) le forker et tout transformer en profondeur pour fonder un PHP6 où tout serait objet, et non fonctions et, ou objets (comme l'extension SQLite 2), etc.
Je n'ai pas suivi l'évolution de PERL, mais il me semble que c'est ce qu'ils ont choisi de faire pour la version 6 : repenser tout le language. D'ailleurs après avoir lu quelques trucs, il a l'air pas mal du tout ce PERL 6.
PHP intégre les changements graduellement. C'est pratique, car si on programme de manière propre, l'évolution du code est simple. Il suffit de lire les guides de migration, et on passe sans trop de difficultées d'une version à sa suivante. Mais c'est aussi un très gros inconvénient en ce que le language est inconstant.
D'autres languages, comme Ruby, ne devraient pas avoir ce problème à mon avis. Ils ont été conçus pour un style de programmation (pur objet), et ne mélangera pas plusieurs formes en un seul language (ce serait contraire à sa philosophie).
[^] # Re: Incompatibilités ?
Posté par Julien Portalier . En réponse à la dépêche L'arrêt du support de PHP4 annoncé. Évalué à 3.
Je n'ai pas suivi l'évolution de PERL, mais il me semble que c'est ce qu'ils ont choisi de faire pour la version 6 : repenser tout le language. D'ailleurs après avoir lu quelques trucs, il a l'air pas mal du tout ce PERL 6.
PHP intégre les changements graduellement. C'est pratique, car si on programme de manière propre, l'évolution du code est simple. Il suffit de lire les guides de migration, et on passe sans trop de difficultées d'une version à sa suivante. Mais c'est aussi un très gros inconvénient en ce que le language est inconstant.
D'autres languages, comme Ruby, ne devraient pas avoir ce problème à mon avis. Ils ont été conçus pour un style de programmation (pur objet), et ne mélangera pas plusieurs formes en un seul language (ce serait contraire à sa philosophie).