Mon rêve de ce soir, un PHP normalisé…
23:25 27 09 2007J’adore PHP, je travaille avec ce langage depuis maintenant 8 ans et je le trouve vraiment pratique et tellement facile d’utilisation.
Mais rien n’est parfait dans ce monde et PHP n’échappe pas à cette règle.
A quoi pensaient les développeurs de PHP lorsqu’ils ont pondu les fonctions de gestion des chaînes! Rien n’est normalisé, ni les noms des fonctions, ni leur prototypage, ni les valeurs qu’elles renvoient.
Des exemples ?
C’est parti, trouvez les erreurs :
str_repace() VERSUS strstr()
strip_tags() VERSUS stripslashes()
stripos() VERSUS str_ireplace()
strcasecmp() VERSUS stristr()
html_entity_decode() VERSUS htmlentities()
nl2br() VERSUS strtolower()
str_replace ( mixed $search, mixed $replace, mixed $subject [, int &$count] ) VERSUS strstr ( string $haystack, string $needle )
etc…
Il semblerait que deux bibliothèques ont été réunies, chacune avec des normes à l’opposée de l’autre.
Quelqu’un en saurait plus?
Autre exemple : isset() VERSUS is_int()
Rasmus Lerdorf donne quelques explications dans cet article.
Sinon d’autres personnes ont avancé quelques explications…
Bonjour Romain,
Je déterre ce post non pas pour entamer une ébauche d’explications, mais plutôt afin d’exposer mon expérience personnelle avec PHP.
Au début des années 90, je m’adonnais essentiellement à de la programmation en C (j’ai même fait de l’applicatif Minitel ^^).
Lors des mes premières années en tant qu’ingénieur (milieu des années 90), j’ai pu m’exercer sur des projets Web basé sur du développement en Perl et mSQL (un ancêtre de MySQL).
En 97/98, j’ai eu l’opportunité de pouvoir faire du développement en PHP, mais après évaluation, le manque de normalisation (par rapport au C et Perl) et le nombre de failles de sécurité potentielles m’avait poussé à voir ailleurs.
Je vois qu’en 2007 les choses n’avaient pas forcément bougé de ce côté là
Par contre, je suis agréablement surpris par le sérieux des frameworks et autres appli Open source disponibles maintenant (Symfony, CakePHP, Prestashop, Magento…).
Cordialement