OVH Cloud OVH Cloud

limite de php

12 réponses
Avatar
Stan
Bonsoir,

D'après ce que j'ai pu observer, j'ai l'impression
que pour des projets relativement ambitieux, php
trouve ses limites...
Je m'explique : étant donné la souplesse de ce langage,
les programmeurs sont amenés à faire n'importe quoi.

J'ai constaté de nombreuses heures de perdu dans du débug
sur des problèmes qui, à mon avis, n'apparaissent pas
sur d'autre type de développement.
Peut être est-ce dû à une utilisation inadaptée ( utilisé pour bien plus que
de la présentation ).

J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.

( pour partager, pas pour troller ;-)

--
-Stan

10 réponses

1 2
Avatar
Michel Billaud
"Stan" writes:

Bonsoir,

D'après ce que j'ai pu observer, j'ai l'impression
que pour des projets relativement ambitieux, php
trouve ses limites...
Je m'explique : étant donné la souplesse de ce langage,
les programmeurs sont amenés à faire n'importe quoi.


* il y a des langages beaucoup plus flexibles (par exemple LISP) où
les programmeurs ne font pas n'importe quoi, parce qu'ils adoptent
une discipline de programmation. Ce n'est pas une question de
langage, mais de compétence et de formation.

* Les programmeurs qui font n'importe quoi existent depuis plus de 40
ans. L'espèce, qui n'a jamais été en voie de disparition, est en
pleine expansion avec les programmeurs (pardon, développeurs)
autoproclamés.

La conclusion, c'est qu'il ne faut pas employer de programmeurs qui
font n'importe quoi sur des projets ambitieux, quel que soit le
langage !

MB
--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)

Avatar
CrazyCat
J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.


Je ne pense pas que ce soit spécifique à PHP mais à tous les langages de
programmation, voire à tous les projets.
Si aucun cahier des charges technique n'est clairement défini et fixé
(pas d'évolution tant que le projet n'est pas achevé), si aucune
documentation viable n'est faite *en même temps* que le projet, alors ça
deviendra vite un énorme brol.

Ensuite, la structure elle-même du projet peut jouer. Si on décide que
c'est quelque chose de /modulaire/, c'est à dire que chaque partie
reçoit des informations structurées et en renvoit d'autres (clairement
définies), il y a peu de soucis, les modules peuvent être des "boites
noires" programmés n'importe comment (heu, sans exagérer).

Par contre, si tout est imbriqué comme dans certains projets (prenons
par exemple phpBB), la moindre modif dans un fichier explose tout le
reste et là c'est une horreur à débugger.

--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net

Avatar
Gilles FEVRIER
Salut,

Bonsoir,

D'après ce que j'ai pu observer, j'ai l'impression
que pour des projets relativement ambitieux, php
trouve ses limites...
Je m'explique : étant donné la souplesse de ce langage,
les programmeurs sont amenés à faire n'importe quoi.


Je suis capable de faire n'importe quoi avec n'importe quel langage. :-)
Je pense que dès que l'on travaille en équipe (et même seul d'ailleurs),
il faut avoir des règles claires de programmation et que tout le monde
s'y tienne. Hors de question que chacun fasse ce qu'il veut dans son
coin, utilise le nommage qu'il veut et la présentation qu'il veut.
Mais c'est valable pour n'importe quel langage et pour n'importe quelle
taille de projet.

J'ai constaté de nombreuses heures de perdu dans du débug
sur des problèmes qui, à mon avis, n'apparaissent pas
sur d'autre type de développement.


Change de développeurs ou dresse les ! ;-)

Peut être est-ce dû à une utilisation inadaptée ( utilisé pour bien plus que
de la présentation ).

J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.


Durant les 6 dernières années, j'ai travaillé sur des projets de
relativement grande envergure en PHP, la plupart du temps avec une ou
plusieurs bases Oracle derrière (en fait, je n'ai quasiment pas bossé
sur des sites web, un seul en 6 ans, mais plutôt sur des applications
Intranet/Extranet).
Un des plus gros sur lesquels j'ai travaillé a nécessité une équipe de 6
à 10 développeurs (la charge de travail variant durant la vie du projet)
sur une période d'environ 18 mois (ajouter quelques mois de conception,
architecture...). La partie "présentation" était relativement
minoritaire par rapport à la partie "métier".
Naturellement, un tel projet nécessite un bon chef de projet, une
architecture solide, et surtout des règles de développement communes qui
font que n'importe lequel des développeurs de l'équipe peut reprendre le
code d'un autre le plus rapidement possible. Ca simplifie également
l'intégration de nouveaux membres dans l'équipe.

Je pense donc qu'il faut étendre un poil ta réflexion et ne pas
forcément attribuer les problèmes rencontrés sur un projet à PHP
(l'image "PHP = couche de présentation" est obsolète, pour moi, PHP est
une plateforme applicative à part entière), mais élargir ton champ de
vision et te demander pourquoi tu as perdu du temps en debug (code
merdique, développeurs pas assez expérimentés/encadrés, mauvais outils
de développement ou outils mal maîtrisés, tests unitaires mal planifiés
ou gérés... et/ou tout simplement mauvaise gestion du projet...

Ce n'est qu'une opinion parmi d'autre issue de mon expérience dans des
projets PHP pour différents "grands comptes". :)

A+

Gilles

Avatar
Bruno Desthuilliers
Stan wrote:
Bonsoir,

D'après ce que j'ai pu observer, j'ai l'impression
que pour des projets relativement ambitieux, php
trouve ses limites...


Mmmm.... Oui et non.

Je m'explique : étant donné la souplesse de ce langage,
les programmeurs sont amenés à faire n'importe quoi.


Souplesse et permissivité (voire laxisme) sont deux choses différentes.
Il y a des langages bien plus souples que PHP, et pour lesquels le
niveau moyen du code existant est bien supérieur. les programmeurs qui
"font n'importe quoi" en PHP ne feraient pas forcément beaucoup mieux
avec d'autres langages.

J'ai constaté de nombreuses heures de perdu dans du débug
sur des problèmes qui, à mon avis, n'apparaissent pas
sur d'autre type de développement.


Lesquels ? je veux dire, quels types de problèmes, et quels autres types
de développement ?

Personnellement, les deux points qui me font perdre le plus de temps sont:
- les conversions "automagiques" de types
- le passage sous silence de l'utilisation de variables non définies
- l'absence d'espaces de nommages (et donc la soupe de globales qui en
découle, avec les risques d'"écrasement" accidentels de noms)

Peut être est-ce dû à une utilisation inadaptée ( utilisé pour bien plus que
de la présentation ).


<troll>
Bien que ce soit plus à l'origine un langage de template qu'autre chose,
PHP est devenu un langage de programmation à part entière. Un langage
hideux, mal ficelé, bricolé (dans le mauvais sens du terme),
inconsistant, incohérent, et complètement inepte sur beaucoups de
points, mais un langage quand même.
</troll>

Dans la pratique, j'en suis venu à la conclusion que la meilleure façon
d'utiliser PHP était de faire au plus simple. Attention, ça ne signifie
pas tout mélanger et faire n'importe quoi, mais plutôt éviter de vouloir
se calquer sur des modèles qui n'ont rien à voir (Java par exemple).

J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.


En PHP ? J'évite autant que possible. Pas que ce ne soit pas possible
(un logiciel comme Spip prouve le contraire), mais je ne vois pas de
raison de m'infliger ça si je peux faire autrement !-)

( pour partager, pas pour troller ;-)

Trop tard...


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
Stan
"Bruno Desthuilliers" a écrit dans le message de news:
45127f9a$0$22492$

Lesquels ? je veux dire, quels types de problèmes, et quels autres types
de développement ?

Personnellement, les deux points qui me font perdre le plus de temps sont:
- les conversions "automagiques" de types
- le passage sous silence de l'utilisation de variables non définies
- l'absence d'espaces de nommages (et donc la soupe de globales qui en
découle, avec les risques d'"écrasement" accidentels de noms)


C'est aussi ce que j'ai constaté.
Concernant les autres types de développements, je pensais à
des projets en C++ ( que je connais plus que Java ).

J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.


En PHP ? J'évite autant que possible. Pas que ce ne soit pas possible
(un logiciel comme Spip prouve le contraire), mais je ne vois pas de
raison de m'infliger ça si je peux faire autrement !-)


Je sais aussi que des projets relativement conséquents ont
été fait en php.
Mais j'ai le sentiment que tout les efforts engendrés
pour 'blinder' le développement pourait être utilisé à des fins
plus utiles.

( pour partager, pas pour troller ;-)

Trop tard...




Tant pis.

--
-Stan


Avatar
Michel Billaud
"Stan" writes:

Je sais aussi que des projets relativement conséquents ont
été fait en php.
Mais j'ai le sentiment que tout les efforts engendrés
pour 'blinder' le développement pourait être utilisé à des fins
plus utiles.


Comme essayer de contourner les blindages d'un truc plus restrictif et
donc moins souple ?

--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)

Avatar
Bruno Desthuilliers
Stan wrote:
"Bruno Desthuilliers" a écrit dans le message de news:
45127f9a$0$22492$
Lesquels ? je veux dire, quels types de problèmes, et quels autres types
de développement ?

Personnellement, les deux points qui me font perdre le plus de temps sont:
- les conversions "automagiques" de types
- le passage sous silence de l'utilisation de variables non définies
- l'absence d'espaces de nommages (et donc la soupe de globales qui en
découle, avec les risques d'"écrasement" accidentels de noms)


C'est aussi ce que j'ai constaté.
Concernant les autres types de développements, je pensais à
des projets en C++ ( que je connais plus que Java ).


Ah oui aussi, j'en oubliais un pourtant majeur : le temps passé dans la
doc pour retrouver le nom exact de la fonction (str_lower ? strlower ?
tolower ? str_to_lower ? strtolower ? lower ???) et l'ordre des
paramètres... Bon, je sais bien qu'un nommage consistant et cohérent
n'est pas si évident que ça, mais là on bat des records...


J'aimerai avoir vos sentiments sur cette réfexion, notamment de ceux qui
développent des projets de taille importante.
En PHP ? J'évite autant que possible. Pas que ce ne soit pas possible

(un logiciel comme Spip prouve le contraire), mais je ne vois pas de
raison de m'infliger ça si je peux faire autrement !-)


Je sais aussi que des projets relativement conséquents ont
été fait en php.
Mais j'ai le sentiment que tout les efforts engendrés
pour 'blinder' le développement pourait être utilisé à des fins
plus utiles.


Il ne s'agit pas tant de "blinder" (les conséquences d'un bug sont
usuellement moindre que pour du C ou du C++ - problèmes de sécurité mis
à part of course) que de devoir faire avec les limitations et
inconsistances du langage...

PHP fonctionne mieux AMHA avec une approche "script" (dans la tradition
Unix) qu'avec une approche "applicative" plus traditionnelle. Le
problème, c'est d'arriver à organiser proprement la chose... Et puis
bien sûr à s'y retrouver après. Mais AMTHA, les délires OO / Frameworks
etc en PHP sont un antipattern. Ca n'empêche pas d'utiliser par exemple
un MVC, mais revu sauce script:

- modèle -> petite bibliothèque de fonctions pour récupérer/mettre à
jour les données (que ce soit dans une base, sur le filesystem ou autre)

- controleur : un bon view script PHP qui parse les arguments, appelle
le modèle, et soit redirige, soit inclus une 'vue' après avoir
positionné les variables qui vont bien

- vue: un (des) fichiers html/php inclus par le controleur, et accédant
au jeux de données positionné par ledit controleur.

Evidemment, il y a des limites à l'exercice, mais entre ça et quelques
bricoles de rewrite_rules et de liens dans le filesystem, on peut quand
même faire pas mal de choses sans trop se perdre dans des délires
usinagazsques à la Java.

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"



Avatar
David JOURAND
Bonjour,


Le Fri, 22 Sep 2006 08:03:44 +0000, Bruno Desthuilliers a écrit :

Mais AMTHA, les délires OO / Frameworks etc en PHP sont un antipattern.


Je suis entièrement d'accord avec vous. Mais comment expliquer cet
engoument pour la POO et la profusion de framework presque tous plus
lourds les uns que les autres ? Comment les applications développées
avec de tels framework arrivent-elles a être performantes (sans cache
Zend) ?


Ca n'empêche pas d'utiliser par exemple un MVC, mais revu sauce script:


C'est la démarche que j'ai suivi pour le projet que je réalise.
J'utilise cependant quelques objets par commodité. Je ne pense pas qu'il
faille absolument éviter les objets, mais les utiliser uniquement quand
ils apportent un véritable plus.


on peut quand même faire pas mal de choses sans trop se perdre dans des
délires usinagazsques à la Java.


Venant du monde Java, je ne comprends pas ce besoin qu'a la communauté
PHP de vouloir faire comme Java...

Pour revenir à la question initale, il faut bien avouer que, même avec
la plus grande rigueure, PHP est source d'erreur que Java ne permet pas.
Les développeurs ont effectivement tendance à faire n'importe quoi (mais
tant qu'on les considérera comme des ressources interchangeables, cela ne
changera pas), et on ne choisi généralement pas son équipe quand on
bosse dans une entreprise...

Pour un gros projet dans une entreprise, dans laquelle les programmeurs
sont considéré comme des ressources, je déconseillerai PHP au profit de
Java.


--
David JOURAND - http://www.numabilis.com
Supprimer "site." et ".invalid" de mon adresse mail pour me répondre.

Avatar
Stan
"David JOURAND" a écrit dans le message
de news:
Je suis entièrement d'accord avec vous. Mais comment expliquer cet
engoument pour la POO et la profusion de framework presque tous plus
lourds les uns que les autres ? Comment les applications développées
avec de tels framework arrivent-elles a être performantes (sans cache
Zend) ?



La POO, puffff ;-)

C'est sûr que c'est à la mode, mais au niveau
de l'application de cette méthodologie dans les projets...
ca fait parfois plus de mal que de bien...
Y en a qui n'ont pas compris qu'on pouvait
faire plus que d'encapsuler des données...

Et ça, c'est vraiment dommage ( mais c'est pas la faute à php ;-) )
--
-Stan

Avatar
Bruno Desthuilliers
David JOURAND wrote:
Bonjour,



Mais AMTHA, les délires OO / Frameworks etc en PHP sont un antipattern.


Je suis entièrement d'accord avec vous. Mais comment expliquer cet
engoument pour la POO et la profusion de framework presque tous plus
lourds les uns que les autres ?


Complexe d'infériorité par rapport à Java ?-)

(snip)


on peut quand même faire pas mal de choses sans trop se perdre dans des
délires usinagazsques à la Java.


Venant du monde Java, je ne comprends pas ce besoin qu'a la communauté
PHP de vouloir faire comme Java...


Ne venant pas du monde Java, je me pose la même question !-)

Pour revenir à la question initale, il faut bien avouer que, même avec
la plus grande rigueure, PHP est source d'erreur que Java ne permet pas.


Sans vouloir troller, il y a beaucoup de choses que Java ne permet pas
(ou alors avec une telle complication que ça n'en vaut pas le coût). Ce
n'est pas l'aspect dynamique du langage qui pose problème, mais bien son
laxisme et son inconsistence.

Les développeurs ont effectivement tendance à faire n'importe quoi (mais
tant qu'on les considérera comme des ressources interchangeables, cela ne
changera pas),


Dans mes bras (tm).

et on ne choisi généralement pas son équipe quand on
bosse dans une entreprise...


change de boite.

Pour un gros projet dans une entreprise, dans laquelle les programmeurs
sont considéré comme des ressources, je déconseillerai PHP au profit de
Java.



"Personne n'a jamais été viré pour avoir choisi Java"...

Le problème, c'est qu'on forme des développeurs Java parce que le marché
demande des développeurs Java parce que ce sont les plus faciles à
trouver parce qu'on forme des développeurs Java parce que...

-> InfiteRecursionError

Un autre aspect de la question est que ce qui est un gros projet en Java
peut très bien devenir un moyen projet dans des langages plus agiles. Un
langage n'empêchera jamais un mauvais programmeur de pondre du mauvais
code. Le vrai problème est ailleurs AMHA...


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"


1 2