POO oui mais pourquoi ?

Mammouth du PHP | 1668 Messages

20 juin 2008, 13:40

Réinventé la roue...certes il y a des bibliothèques, mais l'appel d'un bibliothèque est plus longue que si c'est déjà inséré dans un langage...
"À 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

lux
Eléphant du PHP | 372 Messages

20 juin 2008, 13:55

Le dernière en date...
Oui bah c'est un peu une blague la POO dans phpBB3, ils ont fait des objets pour dire, "hé, regardez, nous aussi on fait des objets"…
Ils ont simplement mis leurs fonctions dans des objets, mais ils n'utilisent à aucun moment les avantages d'une architecture bien structurée comme la modularité, la facilité de maintenance, la réusabilité, etc…
Si je me prends moi en exemple, c'est tout ce que j'ai sur faire avec des objets. Mettre toutes mes fonctions dans une classe. Et c'est tout ... j'aurai pu laisser en procédural, ça aurait donnée la même chose. Et je n'arrive toujours pas à trouver ce que je pourrais faire d'autre avec la POO ... :cry:

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 13:56

Javascript n'est pas du tout un langage orienté objet, c'est un langage orienté prototype.
Attention, jeune chevelu !!

la programmation orienté prototype, c'est de l'objet ! comme le dit le bon wiki, c'est un "style" de programmation orientée objet. Tout comme la programmation orientée "classes". On y retrouve les mêmes concepts mais sous d'autres appellations, comme l'héritage, qui se fait par clonage.

Et pour l'instantiation, on a soit le clonage, soit la création ex nihilo. (personnellement, je suis un grand fan de la création d'objets ex nihilo)
mais l'appel d'un bibliothèque est plus longue que si c'est déjà inséré dans un langage...
Des sources ? Sans sources, aucune crédibilité.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 13:59

Si je me prends moi en exemple, c'est tout ce que j'ai sur faire avec des objets. Mettre toutes mes fonctions dans une classe. Et c'est tout ... j'aurai pu laisser en procédural, ça aurait donnée la même chose. Et je n'arrive toujours pas à trouver ce que je pourrais faire d'autre avec la POO ... :cry:
Je vois mal un MVC en procédural.. c'est d'ailleurs mutuellement exclusif. Au fait, j'y pense, il y a des design patterns qui n'emploient pas l'OO ?

Pour ce qui est de regrouper les fonctions, une simple classe statique fait très bien l'affaire.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 1668 Messages

20 juin 2008, 14:01

En théorie, moins un langage à de fonction plus il est rapide car la liste est moins longue à vérifier, lorsqu'on inclus une bibliothèque, on doit chercher dans deux liste, donc ça ralentit...

Voilà ce que je pense...

Si je savais faire les bench en C/C++ je te montrerais...

Pas besoin d'être agressif...

PS : [HS] Je suis de l'avis de HyWaN en ce qui concerne PHP et le JS...[/HS]
"À 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 | 4039 Messages

20 juin 2008, 14:30

En théorie, moins un langage à de fonction plus il est rapide car la liste est moins longue à vérifier, lorsqu'on inclus une bibliothèque, on doit chercher dans deux liste, donc ça ralentit...

Voilà ce que je pense...
Je suis pas agressif. Asséner des théories personnelles en les prenant pour des vérités immuables, si..

Je suis plutôt d'avis que l'impact de l'inclusion d'une bibliothèque (statique ou dynamique, c'est selon) dans du code à un impact virtuellement inexistant sur le temps d'exécution. A la limite une pico-seconde de chargement, et encore. Et pour ce qui est de la partie recherche dans des listes.. non. La fonction est déclarée ou ne l'est pas, l'ordi ne va pas commencer a faire une recherche floue sur ce que ton code peut bien vouloir dire.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 2144 Messages

20 juin 2008, 14:36

J'ajouterai que la question du typage de données n'est pas du tout lié à la notion de POO.
Il se trouve pas mal de langage OO qui n'ont, comme PHP pas un typage stricte.

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 14:46

Il se trouve pas mal de langage OO qui n'ont, comme PHP pas un typage stricte.
Yep, comme Smalltalk, rien que ça :twisted:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4674 Messages

20 juin 2008, 14:52

On a aussi le typage naturel et inductif, c'est à dire que c'est le programme qui détermine le type des données. On retrouve ça en Objective Caml par exemple, c'est l'inférence de type, c'est super balèze. Bon après, il faut se gaver Caml, je crois que c'est le pire langage sur lequel j'ai du bosser aujourd'hui, mais très puissant, pour sûr. Je préfère la famille LISP à ML dans cette catégorie de langage de toute façon :?.

Je prenais l'exemple de Caml car il est impératif, fonctionnel, et aussi objet, tout comme … PHP ? Comme quoi …
Pourtant PHP est à mille lieux de faire la même chose que Caml. PHP traite des données en tout genre, alors que Caml est orienté Mathématiques avant tout (preuve formelle en fait).
« 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).

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 15:55

Je prenais l'exemple de Caml car il est impératif, fonctionnel, et aussi objet, tout comme … PHP ? Comme quoi …
php? fonctionnel ? Je ne pense pas. Pas dans le sens de Haskell, Lisp et Ml.

Moi, j'aime bien Erlang, je m'y étais intéressé un moment, mais je me demandais l'intérêt que ça aurait dans le dev web.

Mais en fait, j'ai trouvé ^-^
http://www.process-one.net/en/blogs/art ... in_erlang/

Tremble, twitter, tremble !!
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 1668 Messages

20 juin 2008, 16:08

Je ne prend rien pour acquis, j'atends qu'on me prouve le contraire...

Revenons au sujet, je penses que la question à bien été argumenté et à dissipé le "doûte" qui plannait sur le faite qu'il y a de la POO dans PHP...

PS : Je me demandait un truc tout bête, pourquoi PHP n'a pas été développé en C++ ?
"À 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 | 4039 Messages

20 juin 2008, 16:22

Comme tu dis..
Pourquoi perdre du temps à apprendre quand l'ignorance est immédiate
:-*
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4674 Messages

20 juin 2008, 16:37

Pourquoi Java n'a pas été développé en C++ ?

La réponse sera la même, à savoir que C est encore plus permissif que C++. Enfin, là encore, ça demande à être vérifié mais bon …
En tout cas, C s'adapte plus pour un interpréteur de langage, ça s'impose. Je ne vois pas pourquoi on utiliserait de l'objet pour interpréter un langage, ce ne serait pas nécessaire. À la limite, on aurait pu hésiter entre C et Perl, mais C est plus rapide, donc on prend C, c'est tout.

Il faut comprendre une chose, c'est que les langages ne sont que des représentations d'une certaine réalité selon une philosophie. Oui, c'est un peu fumeux, mais c'est ça quand même (ou pas loin). Qu'on travaille en PHP, Java, Smalltalk, Prolog, peu importe. Chaque langage permet certaines choses que d'autres langages ne permettent pas. Allez faire du Prolog en PHP, on en reparlera. Allez coder un automate ou une machine de recherche en Ruby. Mais, la philosophie informatique, la conception, l'idée de la programmation, ça, ça change très peu.
On a l'idée de réaliser telle tâche, on a pas mille façons de le faire, en revanche, certain langage nous empêche de faire cette tâche efficacement. On va donc utiliser un autre langage car il s'adapte mieux à ce type de problème.

Quand j'entends (ou lis) qu'on connaît 30 langages, alors on est trop fort, ça me fait beaucoup rire. Ça montre bel et bien que la personne n'a rien compris à l'informatique et à la programmation. C'est un état de compréhension, et pas un capacité à afficher un Hello World.

Je pense que plus on avance en informatique, et plus on s'affranchit du langage. Certes, le langage est utile pour réaliser la tâche, mais peu importe le langage à utiliser, on a l'idée. Il ne nous reste qu'à utiliser le langage adapté, apte à répondre au problème.
À la limite, j'aime bien connaître plusieurs langages car ils mettent en relief des méthodes de résolution plus intéressantes que le ferait d'autres langages. Mais là encore, le langage est un outil pour explorer. Il faut être au-dessus et … comprendre.

Un langage n'est qu'une représentation. Même si chacun apporte son lot de subtilité je l'admets.
C'est pour ça que je considère deux choses. On peut être bon en programmation mais ne connaître aucun langage à fond, être un guru d'un langage. Et alors ? A contrario, on peut être très bon dans un langage mais quand on se retrouve sur une autre plate-forme, on est perdu, car la logique n'est pas là (bon, c'est moins crédible, car si on est très bon dans un langage, on est forcément bon en programmation).

Pendant ma formation universitaire, je suis appelé à manipuler plusieurs langages, je ne vois où c'est un problème. Quand on veut faire de la preuve, j'utilise Caml. Certes, la syntaxe est lourde, mais il est adapté à ce genre de problème. Après, on fait du système, on passe à du C, pareil pour l'algo. Ensuite, programmation fonctionnelle, on utilise Scheme ou LISP (même famille).

Un langage n'est qu'une syntaxe, une représentation, c'est très abstrait.
Alors s'il doit y avoir un débat sur les meilleurs langages, c'est par rapport à un problème précis, c'est tout, sinon ça ne sert à rien, à part faire monter son compteur de message.

Au final, voilà comment je pense : j'ai un problème, je trouve une solution à ce problème, et ensuite, je trouve le langage adapté pour mettre en place ma solution. Ça passe par : vitesse, mémoire, etc. Mais … c'est ça qu'il manque a beaucoup de « nouveau programmeur », c'est la notion de programmation. Un informaticien, c'est quelqu'un qui pense informatique, qui pense algorithme, qui pense programmation, le langage n'est que secondaire.
« 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 | 1668 Messages

20 juin 2008, 17:29

Ok, j'ai comprit, tu devrait faire un discours sur la programmation, tu serais bon ^^

En effet le C est plus permissif que le C++

Tiens, je viens d'apprendre que JAVA à été fait fait sur C...

Il me semblait qu'il avait été codé en lui même, comme Python, mais aprè vérification je me suis trompé, voilà, c'est bon pour moi ^^'
"À 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 | 5924 Messages

20 juin 2008, 17:33

Si la JVM est codée en java, comment tu l'exécutes, avec la JVM ? … :-/