View
2.362
Download
1
Category
Preview:
DESCRIPTION
Conférence donné lors de l'apéro PHP lillois du 11 juin 2010, au sujet du futur de PHP suite à l'arrêt du développement de PHP6. Pourquoi ? Quelles ont été les réactions de la communauté des contributeurs ? Que se passe t'il maintenant ? À quoi ressemblera la prochaine version de PHP ? Autant de questions auxquelles j'essaye de répondre dans cette présentation. Un complément d'informations sur l'apéro en lui-même est disponible à l'adresse http://blog.mageekbox.net/?post/2010/06/12/%24aperoPhp
Citation preview
PHP : Retour vers le futur !
Apéro PHP du 11 juin 2010
Frédéric Hardy
frederic.hardy@mageekbox.net \ http://blog.mageekbox.net \ @mageekguy
« Vous savez, l'histoire, elle va changer. »Marty Mc Fly à M. Strickland – Retour vers le futur
2
PHP : Retour vers le futur !
Plan
1. ...Le passé
2. Le paradoxe temporel et ses conséquences
3. Le futur...
4. Conclusion
3
PHP : Retour vers le futur !
...Le passé
« Par tous les pépins de la pomme de Newton, que s'est-il passé ici ? »
Emmet Brown à Marty Mc Fly – Retour vers le futur II
4
PHP : Retour vers le futur !
● 1995 : Naissance du langage.● 1996 : PHP 2 (+ 1 an).● 1998 : PHP 3 (+ 2 ans).● 2000 : PHP 4 (+ 2 ans).● 2004 : PHP 5 (+ 4 ans).● 2005 : Formalisation de PHP 6.● 2009 : PHP 5.3 (+ 5 ans).
Quelques dates
5
PHP : Retour vers le futur !
Les principales nouveautés de PHP 6
● Ajout de l'instruction GOTO.
● Fermetures et fonctions anonymes.● Résolution statique à la volée.● Contrôle du type (arguments et valeur de retour).● Espaces de nommage.● Support natif d'Unicode.
6
PHP : Retour vers le futur !
Le support Unicode dans PHP 6
● Utilisation de UTF-16.● Mis en œuvre au niveau du source et des
données.● Conversion à la volée de l'ensemble du source.● Complique le développement de PHP.● Gourmand en ressource.
7
PHP : Retour vers le futur !
Les effets de bords induit par PHP 6
● Tout doit être fait en double.● PHP 6 est plus complexe que PHP 5.● PHP 6 est plus lent que PHP 5.
➔ Charge de travail plus importante pour les développeurs.
➔ Désintérêt des contributeurs pour PHP 6.➔ Concentration sur PHP 5.
8
PHP : Retour vers le futur !
La politique de développement de PHP 6
● Le trunk est dédié au développement de PHP 5.
● PHP 6 dispose de sa propre branche.● PHP 6 est développé parallélement à PHP 5.● Tout ajout dans PHP 5 doit être intégré à
PHP 6 pour assurer la compatibilité ascendante.
9
PHP : Retour vers le futur !
Le paradoxe temporel et ses conséquences
« Cette rencontre créerait un paradoxe temporel dont l'issue engendrerait une réaction en chaîne qui pourrait déchirer le tissu-même du continuum
espace-temps, provoquant la destruction totale de l'univers. »
Emmet Brown à Marty Mc Fly – Retour vers le futur II
10
PHP : Retour vers le futur !
2010 : L'année du paradoxe temporel
● Le développement de PHP 6 dure depuis 5 ans et il stagne.
● PHP 5.3 embarque la plupart des fonctionnalités majeures de PHP 6.– Ajout de l'instruction GOTO.
– Fermetures et fonctions anonymes.
– Résolution statique à la volée.
– Espaces de nommage.
● PHP 5 évolue (contrôle de type, traits...).
11
PHP : Retour vers le futur !
La réaction...
● Le 11 mars 2010, Rasmus Lerdorf annonce officiellement l'abandon du développement de PHP 6.
● 5 ans de développement partent à la poubelle... ou pas !
12
PHP : Retour vers le futur !
... en...
● La prochaine version majeure de PHP est développée dans la continuité de PHP 5.3.
● Elle n'est plus développée à partir d'une branche parallèle mais à partir du trunk.
● Tout à été fait pour que le développement reprenne dans les meilleurs délais.
13
PHP : Retour vers le futur !
... chaîne...
● Les pratiques de développement inaugurées par PHP 5.3 sont reprises :– Tandem de gestionnaires de version.
– Utilisation des Request for Comment (RFC).
● Il y a une réelle volonté de raccourcir les cycles de développement.
14
PHP : Retour vers le futur !
... ne détruit finalement pas l'Univers...
● Les décisions prisent portent leurs fruits :– Les développeurs sont à nouveau motivés.
– Ils travaillent.
15
PHP : Retour vers le futur !
... même s'il y a encore des problèmes
● Il n'y a aucune discussion publique au sujet du support d'Unicode.
● Lukas Kahwe Smith a quitté le projet.● La communauté des contributeurs a toujours un
problème de communication.● Il n'y a aucune planification.● Le trunk n'est pas représentatif de la prochaine
version.● Le nom de la prochaine version est inconnu.
16
PHP : Retour vers le futur !
Le futur...
« Tout ça c'est du passé. »
« Du futur, vous voulez dire. »
« Si tu préfères. »
Dialogue entre Emmet Brown et Marty Mc Fly – Retour vers le futur II
17
PHP : Retour vers le futur !
PHP sera plus « propre »
● Suppression de register_globals.
● Suppression des magic_quotes.
● Suppression des fonctions ereg_*().
● Suppression du safe_mode.
● Correction de bugs.● Suppression des fichiers devenus inutiles.
18
PHP : Retour vers le futur !
PHP sera plus rapide
● Des performances en hausse grâce :– À des optimisations au niveau du Zend Engine.
– À la mise en place d'API plus efficace.
19
PHP : Retour vers le futur !
PHP sera plus puissant
● Trait● Dtrace● FPM● Déréférencement des tableaux en valeur de
retour des fonctions/méthodes.● Contrôle du type des arguments.● Etc.
20
PHP : Retour vers le futur !
Les « traits »● Injection dynamique de méthodes dans une
classe.trait jsonSerializable { function toJSON() { return json_encode($this->getJSONProperties()); } public abstract function getJSONProperties();}
class A { use jsonSerializable; ...}
class B { use jsonSerializable; ...}
$a = new A(uniqid(), array(uniqid(), uniqid()));$aJSON = $a->toJSON();
$b = new A(uniqid(), uniqid());$bJSON = $b->toJSON();
21
PHP : Retour vers le futur !
DTrace
● Outil de traçabilité conçu par Sun Microsystems.
● Permet de tracer en temps réel l'éxécution d'un script.
● Même en production.● Peu de pertes de performances.● Utilise le langage D.
22
PHP : Retour vers le futur !
FPM
● Nouveau module CGI (alternative à FastCGI).● Adapté aux sites à fort trafic.● Sécurisé.● Offre une gestion fine des processus.● Garde la trace des scripts lents.● Etc.
23
PHP : Retour vers le futur !
Déréférencement des tableaux● Permet d'accéder à un élément de tableau à
partir d'un appel de fonction/méthode :
function returnArray(){return array(uniqid(), uniqid(), uniqid());
}
echo returnArray()[1];
class toto {protected $tableau = array(1, 2.3);
public function truc() {
return $this->tableau;}
} $toto = new toto();var_dump($toto->truc()[1]); // float(2.3)$toto->array[] = $toto;var_dump($toto->truc()[2]->truc()[2]->tableau[0]); // int(1)
24
PHP : Retour vers le futur !
Contrôle du type des arguments
● Possible d'indiquer le type numérique attendu pour les arguments de fonctions/méthodes.
● Conversion à la volée pour correspondre au type demandé.
● Génération d'une erreur si la conversion entraîne une perte de précision.
function typeJuggling(int $int, float $float, array $array, aClass $object) { ...}
25
PHP : Retour vers le futur !
PHP sera (encore) plus professionnel
● Le langage est actuellement en cours de professionnalisation.– Publication.
– Compétences en hausse sur le marché de l'emploi.
● La tendance va s'amplifier.– Les « frameworks » populaires migrent vers PHP
5.3.
– Le langage évolue pour répondre aux besoins du marché.
26
PHP : Retour vers le futur !
Conclusion
« Le futur n'est jamais écrit à l'avance, pour personne. »
Emmet Brown à Marty Mc Fly – Retour vers le futur III
● PHP 6 n'était pas le futur.● PHP 5 était le futur.● Le développement a repris sur des bases plus
saines et les contributeurs sont motivés.● Le langage évolue et se professionnalise.● Le langage sera ce que nous en faisons.
27
PHP : Retour vers le futur !
Questions ?
« Mon but, c'est d'élargir notre perception de l'humanité, d'où nous venons, où nous allons, les soubresauts et les péripéties, les périls et les promesses, peut-être
même trouver une réponse à cette éternelle question : Pourquoi ? »
Emmet Brown à Marty Mc Fly – Retour vers le futur II
28
PHP : Retour vers le futur !
Remerciements
● Nicolas Lœuillet pour l'organisation de l'apéro.● SQL Technologies pour la première tournée.● Jean-Marc Fontaine pour la logistique.● Robert Zemeckis, pour « Retour vers le futur ».
29
PHP : Retour vers le futur !
Frédéric Hardy
frederic.hardy@mageekbox.net \ http://blog.mageekbox.net \ @mageekguy
Recommended