Post by Olivier MassonPost by Bruno DesthuilliersPost by Olivier MassonBonjour,
Je continue mon apprentissage actif avec la lecture de "PHP5 avancé"
qui est un peu creux, comme de nombreux livres de ce type,
s/de nombreux/la grande majorité/
Post by Olivier Massonmais bon, ça parle un peu objet, c'est déjà ça.
Je pense qu'il y a plus intéressant comme littérature sur l'OO...
Mais qui ne parlent pas de PHP (tu me diras, c'est normal, puisque
pnepulo - on va abréger à partie de maintenant pour dire "PHP n'est pas
un langage objet -)...
C++ n'est pas "purement" objet, loin s'en faut, et il est pourtant très
présent dans la littérature objet.
Ce que je voulais dire est qu'il y a deux aspects dans l'OO : la
"théorie générale" (je devrais mettre ça au pluriel, mais bon...), et
les implémentations spécifiques (modèles objet des différents langages).
Le plus important à comprendre en OO se trouve dans la partie "théorie
générale". Après, selon l'implémentation, certaines éléments théoriques
auront plus ou moins de pertinence, mais c'est un autre troll^débat.
Post by Olivier MassonPourquoi m'obstiner avec PHP ? D'autant que Python n'est pas bien
compliqué.
Python est effectivement relativement accessible - la barrière d'entrée
n'est pas très haute, et la cohérence de l'ensemble (pas parfaite, mais
incomparablement supérieure à celle de PHP) aide beaucoup.
Par contre, quand tu commence à entrer dans les détails, tu t'aperçois
que le modèle objet est _loin_ d'être simpliste - et permet des choses
dont tu ne rêverais même pas si tu ne connais que le modèle objet de PHP.
Post by Olivier MassonRuby je ne connais pas.
On est toujours dans la même cours - langage OO très dynamique -, et la
syntaxe ressemble à première vue à celle de Python. Le modèle objet et
la "philosophie" sont par contre totalement différents - mais offrent au
final à peu près les mêmes possibilités au point de vue expressivité et
dynamisme.
Point de vue implémentation et bibliothèques dispos, Python a - pour le
moment - l'avantage de l'antériorité.
Post by Olivier MassonEst-ce que PHP6 prend davantage un
chemin OO où poursuit-on le chemin hybride ?
Ca reste un bricolage incohérent de toutes façons.
Post by Olivier MassonMais un langage purement objet est-il finalement plus adapté au web ?
Ni plus ni moins qu'un langage purement procédural ou purement
fonctionnel ou n'importe quel hybride. Ce qui compte est:
- l'adéquation entre le modèle d'exécution et l'approche utilisée
- l'adéquation entre l'approche utilisée et la façon dont tu te
représente le monde !-)
Par contre, il est clair que, comparée à du procédural pur et dur,
l'approche objet peut très nettement favoriser la réutilisabilité - ce
n'est pas un hasard s'il y a plus frameworks OO que de frameworks
procéduraux. Non pas que ça réduise la complexité, mais ça aide à la gérer.
Après, c'est sûr qu'on peut aussi, avec un peu de créativité, concevoir
un framework PHP très simple et complètement procédural (j'y ai déjà
réfléchi, plus d'une fois). Je crains par contre que ça n'ait pas la
souplesse et la maintenabilité d'un bon framework OO.
Post by Olivier MassonEn fait je me fous d'utiliser PHP, Python ou Ruby,
Mmm... pas moi, en fait. Quand tu a l'habitude de langages comme Python
ou Ruby, PHP fait figure de punition.
Post by Olivier Massoncoder en objet ou
procédurale. Je cherche la rapidité de développement et la facilité de
maintenance ;
L'une et l'autre dépendent en partie de la complexité du projet et de
ses besoins en évolutivité.
Post by Olivier Massonpour la performance, vu les machines actuelles, ça semble
finalement secondaire.
Pas tant que ça - regarde les problèmes de Twitter !-)
Mais sans aller des ces cas "rares", les problèmes de performance - et
surtout les problèmes de capacité à tenir la monté en charge, mais ça se
rejoint en partie - sont à prendre en compte.
Post by Olivier MassonDoctrine, il sent des pieds comme ORM ?
connait pas.
Post by Olivier MassonPost by Bruno DesthuilliersHem... Y a a boire et à manger. Et certains trucs dont, quand tu
regarde le code, tu te dis que tu es probablement trop modeste, et
qu'il y a nettement plus incompétent que toi.
Dès que je vois une class avec plein de choses magnifiques (final,
abstract, extends, protected, des doubles underscore...), j'estime que
le mec à un skill level (je vais me faire censurer par Olivier ;)) de folie.
Mouarf. Si je te montrais ce à quoi je m'amuse en Python (métaclasses,
surcharge de la résolution d'attributs etc), tu me prendrais pour un
dieu alors !-)
Personnellement, ce qui m'impressione le plus, c'est le code tellement
simple et évident qu'il n'y a même pas à se servir de ses neurones pour
tout piger tout de suite. Ca a pas l'air, mais c'est probablement le
plus difficile à atteindre.
Post by Olivier MassonJe commence à relativiser en me disant que ce sont surtout des gamins
qui ont bien appris leur cours et font la même chose en PHP qu'on leur a
appris en C++. Ce qui est surement bien, en partie.
Mmm...
Post by Olivier MassonJe dis ça après ce que tu affirmes ainsi que d'autres, mais également en
regardant le code de Drupal (peut-être pas un ref pour toi mais moi oui)
Le code de drupal - ce que j'en ai vu quand j'ai du mettre les mains
dans le cambouis, et ce pour des choses tellement triviales que ça
n'aurait jamais dû nécessiter de devoir mettre les mains dans le
cambouis - est AMHA une pure horreur. Et ne parlons pas de la
"structure" de la base de données :(
Post by Olivier MassonPost by Bruno Desthuilliers"lourdeur" dans quel sens ? Complexité, ou mauvaises performances ?
Comme PEAR : l'obligation de te trimballer la pelle mécanique pour
planter ton pied de tomate.
Si tu savais ce que je pense de PEAR...
Post by Olivier MassonUtiliser Symfony pour un petit site, ça me semble être du même acabit
que tous ces créateurs de site qui utilisent Joomla pour le site d'un
artisan qui va faire 300 visites/mois : démesuré.
Démesuré si tu dois apprendre tout le framework (ou tout le CMS)
uniquement pour ça. Quand tu fais des dizaines de site par an avec ces
outils, tu va *beaucoup* plus vite comme ça qu'en réinventant la roue à
chaque projet. C'est d'ailleurs souvent comme ça que naissent les
framework : en factorisant, petit à petit, tous les trucs récurrents
d'un projet à l'autre.
Post by Olivier MassonAu final je me rends compte que je veux faire comme les autres. Ce qui
est loin d'être dans mes habitudes, mais comme je me dis qu'un jour ou
l'autre, je vais finir par être salarié (nooooooooon !), faut que je
m'adapte à la demande. Et en province, on a pas trop le choix.
D'un autre côté, comme je disais, je cherche également à développer plus
intelligemment (rapidement, correctement...)
Est-ce compatible ?
Plus ou moins !-)
Post by Olivier MassonIl faut que je trouve cette compatibilité.
L'essentiel est d'avoir des bases solides - protocole HTTP, DOM, modèle
relationnel etc, plus si possible une bonne compréhension - au moins
générale - de l'OO et de la PF. Coder une appli en pur CGI peut être
très instructif, et développer son propre framework aussi - même s'il
est totalement bancal, ça permet de mieux comprendre les choix de
conception des autres, et aussi de mieux juger de la pertinence de ces
choix.
Pour ce qui est des "outils du marché", tu ne coupera pas à PHP
(procédural ET objet), ni à un "gros" CMS (genre Drupal ou Joomla). Un
framework comme Symphony serait certainement un plus. Après, une bonne
connaissance de Python+Django ou Ruby+Rails peut faire une grande
différence. Mais en tout état de cause, si tu n'a pas les bases, tu va
galérer quelque soit l'outil.