POO oui mais pourquoi ?

Eléphant du PHP | 422 Messages

20 juin 2008, 17:58

+1, la POO, ce n'est pas une syntaxe de langage,
Attention à ne pas confondre la COO (OOD en anglais) : Conception Orientée Objet et POO : programmation orientée objet.
On peut tout à fait faire de la COO sans ensuite utiliser un langage orienté objet. Mais faire de la POO sans utiliser de langage orienté objet, là, ça devient vachement inquiétant.
A sa grande époque, Thomson CSF avait développé une méthode de COO adaptée pour le langage ADA complètement procédural.
Ensuite, un langage 100% orienté objet, ce serait plutôt Java par exemple.
Pinaillons un peu. Un langage 100% orienté objet est un langage dans lequel il n'y a strictement aucune possibilité de faire autre chose que de l'objet. C++ est l'un des pire langages objets qu'il soit, car on peut complètement faire du C avec C++. Une déclinaison beaucoup plus objet de C est ObjectiveC. On peut dire que Java est à 99% objet, mais à ma connaissance, seul Smalltalk est 100% objet, puisque même les structures de contrôle du langage sont des méthodes de classes (par exemple, ifTrue: ifFalse: est une méthode de la classe Boolean et while est une méthode de la classe BlockClosure)
de problèmes ne peuvent se résoudrent qu'en procédural (voir le langage Prolog),
Personnellement, je ne classerais pas Prolog dans les langages procéduraux (Pascal, Basic, C) mais dans les langages logiques d'intelligence artificielle
Je vois mal un MVC en procédural..
En PHP, ça peut se faire sans problème. du HTML et des templates pour la Vue, des bibliothèques de fonctions complètement procédurales pour le modèle et un code PHP qui lit les deux pour le contrôleur. Alors pour faire joli, on peut empaqueter toutes ces fonctions dans un objet, mais cela n'apporte scrictement rien.

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 19:48

Je vois mal un MVC en procédural..
En PHP, ça peut se faire sans problème. du HTML et des templates pour la Vue, des bibliothèques de fonctions complètement procédurales pour le modèle et un code PHP qui lit les deux pour le contrôleur. Alors pour faire joli, on peut empaqueter toutes ces fonctions dans un objet, mais cela n'apporte scrictement rien.
Tout comme on peut faire du fortran dans tous les langages, de fait :wink:

le "mal" signifiait plutôt "difficile". J'imagine qu'on puisse réaliser du mvc sans écriture objet, mais franchement, se sera masochiste que de se passer de l'objet.. enfin, je ne parle qu'a partir de mon expérience, et je vois le mvc plutôt comme un ensemble de design patterns (ce qui en fait un composite pattern, ou quelque chose comme ça). Et j'ai comme l'impression que les design patterns utilisent surtout des concepts liés au langage objet. (bien qu'il s'agisse que de "bonnes pratiques", et concernent tous les paradigmes)
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 422 Messages

21 juin 2008, 17:16

Tout comme on peut faire du fortran dans tous les langages, de fait
euh ... ben non. Tu ne peux pas faire du PHP en Pascal, du Pascal en Basic et du Fortran en PHP.

ViPHP
ViPHP | 4039 Messages

22 juin 2008, 20:47

Tout comme on peut faire du fortran dans tous les langages, de fait
euh ... ben non. Tu ne peux pas faire du PHP en Pascal, du Pascal en Basic et du Fortran en PHP.
c'est un façon de parler, faut pas prendre à la lettre, hein :wink:
http://www.acmqueue.com/modules.php?nam ... ge&pid=271
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mouais...
Invité n'ayant pas de compte PHPfrance

23 juin 2008, 10:18

Il reste tout de même évident que si l'on veut faire du vrai développement objet, il faut (à mon avis) utiliser un langage comme Java. Sachant que Java Web Server est gratuit, tout comme Apache et PHP.

PHP à l'avantage d'être un peu plus souple à développer, mais reste toutefois un langage communautaire, certes apprécié et utilisé, mais qui à le défaut de ne pas toujours répondre au exigences du marché et à ses conformismes.

Je ne suis pas forcément convaincu que PHP puisse être utilisé pour le développement d'une web application lourde, exigeant sécurité, maintient et performance (je parle d'applications de gestion, financière, compta...). PHP me semble surtout utilisé pour des sites web et des web applications pas trop gourmandes.

ViPHP
ViPHP | 4039 Messages

23 juin 2008, 10:46

[troll incorporated]
je pense surtout que si twitter avait été développé en php, il ne crasherait pas sans cesse.. :twisted:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 514 Messages

23 juin 2008, 11:08

L'objet n'a pas pour but d'être plus performant. La vraie finalité de l'objet, c'est :

portabilité
aller plus loin
représenter la réalité

Une application bien programmée en objet représente le terrain, la réalité. Elle isole les composants non portables, trop métiers pour être utilisés dans d'autres applications, des composants génériques.

L'objet, entre autres, c'est de la modification aisée. J'ai un formulaire construit en objet, si j'ai une erreur dans ma construction, je sais ou la modifier en quelques secondes, et ce pour TOUS mes formulaires. Donc les chances de bugs à long terme, pour quelqu'un qui utilise bien l'objet, sont quasi inexistantes.

Ensuite, l'intérêt de l'objet, c'est sa capacité à s'adapter au langage "humain", à travers des modèles. Un modèle bien conçu est intermédiaire entre objet et terrain. Les deux communiquent alors très bien ensemble. C'est là qu'intervient UML.

De toute manière, l'objet, qu'on le veuille ou non, c'est l'avenir professionnel de php.

Eléphanteau du PHP | 42 Messages

23 juin 2008, 16:39

De toute manière, l'objet, qu'on le veuille ou non, c'est l'avenir professionnel de php.
Oui, mais encore faut-il que PHP propose un typage des données plus abouti et un vrai code objet. Pour le moment, il est encore un peu limité dans ces 2 domaines, même s'il s'en sort mieux que d'autres langages web.

Je pense qu'aujourd'hui, un langage qui permet de développer du code non-structuré (je veux dire hors modélisation, "à l'arrache") ne peut pas permettre une sécurité suffisante dans le domaine pro.

Zecreator.
Rien ne sert de courir. En plus tu risques de tomber.

ViPHP
ViPHP | 4674 Messages

23 juin 2008, 16:42

Et qu'est-ce qu'il manque à PHP au niveau objet ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphanteau du PHP | 42 Messages

23 juin 2008, 17:44

PHP a longtemps été catalogué comme un langage utilisant du prototypage, et je pense qu'aujourd'hui encore, malgré l'intégration de Zend Engine depuis la version 5 et désireux de se rapprocher de Java (dans sa forme), PHP a encore besoin de murir dans le domaine de POO.

Même si l'on peut faire de l'implémentation, de l'héritage... ça demande à être assoupli, tout du moins dans la structure du code, et le typage de données doit être étendu et plus clair.

A la rigueur, il ne faudrait pas pouvoir utiliser une valeur nom typée par défaut. Obliger le codeur à référencer ces données, afin d'avoir un code plus propre.

PHP a besoin de grandir encore un peu, s'il veut se placer parmi les langages pros.

Zecreator.
Rien ne sert de courir. En plus tu risques de tomber.

ViPHP
ViPHP | 4039 Messages

23 juin 2008, 20:00

C'est du grand n'importe quoi. Énorme. Abyssimal.

Wikipedia,
Digg,
WordPress,
Youtube (dans ses débuts),
Facebook,
TIOBE,
Yahoo...
(si mes souvenirs sont bons)

Que des p'tits trucs hein.. On peut faire des trucs horribles en php. Comme dans toutes les langages. Mais on peut aussi faire des trucs fabuleux. Et contre les trollistes, avec leur arguments à la "oui mais non", moi je dis qu'un langage se juge par la popularité. Par le procédé démocratique de "qu'est-ce que les gens choisissent".

Ben voilà : http://www.tiobe.com/index.php/content/ ... index.html
1) Java 2) C 3) C++ 4) PHP. Et puis le reste.

On dit la même chose de JS. Qu'il est horrible, qu'il pue, qu'il sent mauvais, qu'il est mal fait.. Ah ben, le gros buzz du web 2.0, c'est AJAX. Et ça, c'est 100% JS. Ah, on dit ce qu'on veut, mais les faits sont la. Du coup y'a rien à dire, même pas à défendre. On peut regretter, mais tout ce qu'on peut dire on le dit tout seul, en vers et contre tous.

:idea:

Et s'il y a bien un langage pourri, c'est VbScript. :P
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 1668 Messages

23 juin 2008, 20:20

Qu'es-ce que tu entends par langage pro ? Un langage qui est développé par un privé ? Un langage qui n'évolue plus ? Un vieux langage ?

A ce moment là PHP est un langage noob, désolé, PHP évolue tout le temps, il est libre, tout le monde y contribue...PHP est jeune, mais avec PHP5 il a passé l'âge de raison ;)
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4674 Messages

23 juin 2008, 20:58

PHP n'a pas passé son âge de raison … Tu devrais peser tes mots katagoto. PHP est un langage jeune, il a seulement 14 ans, et la dernière version stable (5.2.6) est sortie le 1er mai 2008 ! PHP 5.2.6 apporte plusieurs choses sympa d'ailleurs. PHP 6 sera vraiment intéressante également, mais je doute qu'il soit mâture. À l'échelle d'un langage, 15 ans, c'est pas grand chose … Compte déjà 8 à 10 ans pour qu'il commence à intéresser les environnements de production et qu'on s'y intéresse vraiment (pas juste une bande de jeune geek au fond d'une salle obscure).

Zend via son framework — du même nom — investie beaucoup de temps et d'argent pour donner une autre image de PHP. Une image dynamique, sérieuse, et productive. Comme le dit très bien Berzemus, on peut faire n'importe quoi dans beaucoup de langage (même en C, si si …). Certes PHP permet de plus vite faire n'importe quoi, mais il attire aussi beaucoup de monde. Sa flexibilité est sa force et sa faiblesse, je l'ai déjà expliqué dans ce sujet.

PHP cherche un peu encore sa place, entre le PHP 3 et Java 5 (voire 6). Pour moi, PHP s'impose de plus en plus comme un langage prévu pour le Web, et c'est normal, il est fait pour ça !
Plus on va s'y intéresser, et plus il va gagner en maturité.
Et justement, on s'y intéresse, et on se rend compte que PHP fait ses preuves. C'est très bon signe.

Je conclus sur le fait que PHP regroupe une très grande communauté, avec que des pros dedans, des pointures du domaine, des méga tronches, allé, n'ayons pas peur des mots : des Dieux vivants (!), j'ai nommé : PHPFrance :').

(clap clap clap clap)
Merci pour eux, merci :roll:.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 514 Messages

23 juin 2008, 22:02

(mode plaidoyer pour PHP ON)

Alors,

dire que PHP n'est pas un "langage objet" est une boulette. On peut dire, par contre, qu'il n'a pas toutes les fonctionnalités des gros langages objets (JAVA, C# ...), parmi elles les namespaces et les niveaux de surcharge (à cause, ou grâce au faible typage).
Tiens, java ne propose pas le multi héritage ... C'est peut être finalement pas un langage objet ...

Mais ceux qui suivent son évolution, du coup, s'enrichissent à mesure qu'il grandit. Et j'aurai tendance à dire, quitte à faire hurler les communautés Java et autres, qu'il permet une meilleure compréhension de l'objet, justement parce qu'il oblige le développeur à s'investir sur le concept objet, contrairement aux autres langages, qui ne propose plus qu'une "utilisation" de l'objet. Ca a des avantages et inconvénients, j'en conviens.

Ensuite, ayant fait il y a peu ma recherche d'emploi, j'ai remarqué (mais ça reste personnel) que PHP vient toujours dans le TOP 3 des annonces, depuis sa version 5. Java étant le plus demandé, suivi des technologies .net.

En matière de popularité, PHP n'a à rougir devant aucun langage. En matière de communauté, ils ont quasiment tous à rougir devant lui, en terme de documentation il y a de tout, parfois du n'importe quoi, mais c'est le lot d'un langage libre et puissant (parce que oui, php est puissant), et en terme d'image, il a certainement subi la meilleure amélioration de tous les langages.

Ce qu'il lui manquerait en objet, réellement ? Surcharges intra classes ? Une meilleure différenciation d'agrégation et composition ? Multi héritage ? Plus de typage ?
Des broutilles, en réalité.

Il lui manque peut être encore un peu de maturité, mais on dit ça depuis des années. Au fond, il évolue à un rythme suffisamment soutenu pour rester attractif, il reste accessible aux débutants et ne fait pas des développeurs des pisseurs de code sectaires, il propose des fonctionnalités accessibles à ceux qui ont grandi avec l'objet, il renvoie des erreurs plus précises que tous les autres langages pour ceux qui ne savent pas coder ...

Bref, PHP n'a pas à rougir devant les autres langages, même s'il propose moins de choses, il permet de faire presque autant, professionnellement et en s'amusant.

Eléphanteau du PHP | 42 Messages

23 juin 2008, 22:56

Le PHP est un super langage, fruit de la communaute du logiciel libre. Je suis le premier a en boire son jus tous les matins :). Mais difficile pour lui de terrasser des langages comme Java ou .NET, peut-etre parce qu'il a encore cette image de logiciel libre (une bande de doux-dingues-rebels anti-crosoft qui ont cree leur propre vie informatique). Il pourra etre leader un jour. Mais pour cela, peut-etre faudra t-il qu'il passe de l'autre cote de la barriere.

Enfin pour repondre a la question d'origine, car tout de meme, je m'eloigne du sujet premier.

La POO sous PHP, pourquoi faire ? Question interessante, et je dois avouer que je me la suis posee aussi, bien des fois. Pourquoi faire des objets, dans plusieurs fichiers eparpilles, alors qu'au final, je peut tout faire dans un seul et meme script ?

Je dirai tout d'abord dans un souci de confort de maintenance du code. Travailler en objet oblige a structurer son code, a le decouper en parties independantes, et a les assembler afin de concevoir une seule et meme application. Si un langage le permet, autant l'utiliser.

Mais cela implique d'etre un developpeur organise, et a maitriser un tant soi peu le concept objet. C'est pas evident, c'est parfois prise de tete, c'est long, mais c'est pro, c'est propre et ca simplifie bien la vie, surtout si un autre developpeur vient a reprendre le boulot.

PHP propose cela. On peut creer des classes, des heritages de classes, des interfaces... Bref, il propose le bea-ba de l'objet (meme si je trouve qu'il reste encore des efforts a faire dans ce domaine), et donc il est de bon gout aujourd'hui, d'utiliser ce concept.

Zecreator
Rien ne sert de courir. En plus tu risques de tomber.