JeuWeb - Crée ton jeu par navigateur
Faut-il éviter de distraire les débutants avec l'orientée objet ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Faut-il éviter de distraire les débutants avec l'orientée objet ? (/showthread.php?tid=6291)

Pages : 1 2


Faut-il éviter de distraire les débutants avec l'orientée objet ? - SorenS - 03-08-2012

Vu qu'on parle souvent d'orienté objet etc... un article assez intéressant est paru sur développez.

Faut-il éviter de distraire les débutants avec l'orientée objet ? Ou serait-il préférable de l'enseigner en premier ?

Citation :Faut-il apprendre à un débutant l'orienté objet ? Pour ou contre ? L'avis de James Hague est en tout cas tranché.

Dans un récent billet de son célèbre blog "programming in the twenty-first century", il plaide contre l'introduction de ce concept au nouveau programmeur sous peine de trop les « distraire ».

Hague prend l’exemple de Python, qu’il considère comme un langage où les solutions sont souvent simples à implémenter. Bref, un langage d’introduction idéal pour le débutant, avec une élégance particulière dans l’utilisation des types de donnée de base tels que les dictionnaires. Néanmoins, il estime qu’il faut éviter à tout prix de parler de l'orienté objet, et se contenter de ces outils de base qui s'avèrent assez efficaces pour résoudre la majorité des problèmes pratiques.

Selon Hague, l'introduction de l'orienté objet force le programmeur « à réfléchir non pas en terme de problème et de solution, mais en terme d'architecture ». Pour résumer, l'introduction de nouveaux artefacts issus de la POO ne fera que distraire le programmeur de l'objectif principal, à savoir la résolution du problème.

Ainsi, certains débutants vont jusqu'à abuser de ces concepts, et se retrouvent à créer des hiérarchies inutiles de classes, s'éloignant complètement de ce qu'il faut réellement apprendre.
D'autres groupes se désintéresseront complètement, parce qu’ils trouveront cette couche additionnelle sans sens concret, et rends la programmation encore plus encombrante et lourde.

« À un moment donné, oui, vous devrez aborder la création d'objets sous Python, mais résistez à la tentation de le faire aussi longtemps que vous le pouvez », conseille-t-il.

(je l'ai mis en entier ici parce qu'il n'est pas très long). Vous en pensez quoi ?

Perso, je suis assez d'accord avec l'auteur. Il vaut mieux passer par le procédural puis arriver à l'objet ensuite


Edit Sephi-Chan : je tronque le titre (par ailleurs déjà coupé en plein milieu) car sinon MyBB bug et empêche de poster une réponse parce que le titre est trop long (pourquoi ne l'a-t-il pas empêché à la création !?)… Mise à jour de MyBB 1.6.8 => Grosse merde qui introduit plein de petits bugs insidieux.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Sephi-Chan - 03-08-2012

Quand les mecs apprennent l'objets après le procédural, ils font n'importe quoi. La conception objet, c'est un peu plus compliqué que mettre des fonctions dans des classes.

Et puis quand tu les vois encapsuler leur mysql_* dans ces méthodes, puis construire des objets avec, ça donne envie de se pendre.

Vraiment, je pense qu'il ne faut pas se limiter à l'objet, mais également intégrer le framework dans l'apprentissage. Je suis convaincu qu'il pourrait exister une version "éduction" de Symfony (ou autre).


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Argorate - 03-08-2012

+1 SorenS

L'objet est uniquement de la structure, qui même si apporte beaucoup, ne doit surtout pas être aborder au début.
Il faut d'abord apprendre les bases, car mettre un novice sur de l'objet c'est un peu comme si vous mettiez un débutant en ski sur une piste rouge (et cela devient une piste noir si vous parlez de framework), ça n'a aucun intérêt de parler structure et des gains (aussi reel soit-il) de l'obet des framework, si on ne comprend pas comment marche un while...

Chaque chose en son temps...


C'est un peu comme mon ex-prof d'iut qui nous disait d'attraper la "patternit", c'est à dire abusé intentionnellement des principes de design pattern pour les assimiler...

Quand c'est un TP à l'école pour apprendre, oui... sinon non. Ca sert a rien d'implémenter des trucs dont on a pas besoin.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Sephi-Chan - 03-08-2012

Tu dis ça parce que tu as appris comme ça, Argorate.

Avec d'autres langages, on ne se pose pas la question. Que ce soit des langages de scripts comme Ruby ou Python ou bien des gros langages types Java ou C#.

Dès lors qu'on veut créer une application un minimum complexe, c'est évident que le framework est de rigueur, tu as dû t'en rendre compte vu que tu as passé ton temps à réinventer des roues pour Dévotion (protections CSRF, ORM maison, packagers de scripts/styles, etc.).

En apprenant avec un framework simple et objet (type Sinatra, avec Sequel pour la base de données), ça passe comme dans du beurre et la qualité est infiniment supérieure.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - SorenS - 03-08-2012

J'ai appris le php en procédural. Ensuite j'ai fait de l'objet miteux ^^ Puis j'ai appris correctement le mvc avant de me mettre dans un framework.

Et autant tu dis qu'on voit des horreurs en objet par des types qui font du procédural-objet ^^ autant quand on voit certains code de framework ... ben les types maitrisent pas php ...

(je parle de PHP parce que c'est le langage que je maitrise, mais ça doit être valable dans d'autres langages)


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Globe - 03-08-2012

Je ne sais pas trop pour l'apprentissage, par contre je trouve que trop souvent on guide des petits débutants souhaitant faire un petit site de rien du tout vers de l'orienté objet, c'est comme monter une usine pour fabriquer une cale. Un débutant arrive et demande si il doit commencer par l'objet on lui dit oui oui sans même savoir ce qu'il veut réaliser. Beaucoup de gens font une petite page pour s'amuser un petit site tout simple (ou le php se limite à un formulaire de contact et l'affichage de l'heure), là ces grands débutants n'ont rien à faire de l'objet, après je pense que c'est bien de commencer par l'objet si on veut s'y mettre sérieusement, parce que lorsque je développais encore j'étais complètement bloqué par l'objet qui me perdait totalement.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Damocorp - 03-08-2012

Je pense que chacun doit trouver sa propre voie.

Personnellement, j'en ai plus qu'assez du procédurale. Depuis un moment déjà je me suis aperçu qu'avec un meilleur architecture, je gagnerai énormément en temps, et en lisibilité. Sans parler des futurs modifications !
C'est bien pour cela, que j'ai prévu d'étudier et de tester la POO et les frameworks d'ici peu. Mais je compte faire cela sur un projet tout neuf, ça sera plus simple.

Maintenant il est clair que si j'avais trouvé de bon tuto sur la POO et les framework dans mes débuts, je ne serai certainement pas passé par la procédurale.
Finalement c'est aussi la quantité des tutos qui dirige les nouveaux ^^


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - niahoo - 03-08-2012

Si le langage est totalement objet comme pour python ou ruby alors je dirais qu'il faut faire entrer l'objet naturellement dès la début. Je vois pas comment faire sans de toute façon. Le procédural et l'objet c'est la même chose, c'est juste que dans le second les interfaces sons liées aux structures de données sur lesquelles elles opèrent. Mais ça revient plus ou moins à la même chose.

Certains en ont besoin pour écrire du code correctement structuré, divisé, et voient la POO comme le St-Graal, le sang de jésus qui leur permettra de s'échapper de la programmation procédurale, infâme soupe de variables et de fonctions démoniaques.

Et d'autres codent proprement en PHP.

tiens ça c'est le contenu d'un fichier haskell qui compile

add x y = x + y

Maintenant si tu veux montrer la même chose en java a un débutant, va falloir lui expliquer pourquoi son fichier contient le triple de code inutile. Donc il va falloir lui expliquer en quoi ce code est en fait utile, pourquoi il lui faut une classe et une méthode.

Lui dire "on verra ça plus tard" est une lame à double tranchant : soit il cherche et découvre ça tout seul, et ça sera un gars un une meuf curieux qui aime apprendre et se documenter, soit ça sera un piètre développeur, qui réalisera pourtant des applis de fous en suivant des frameworks.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Myrina - 03-08-2012

Parmi l'ensemble de vos réponses, la seule que je trouve juste et pertinente, c'est celle de Globe.

Maintenant, je vous invite tous à consulter ce site traitant de la logique de programmation; c'est une méthode que j'ai appris il y a bien plus de 20 ans. Il y a le B.A BA de la programmation et à la deuxième lecture (ou peut être la première) vous verrez que, avec les mots de l'époque, il y a déjà des notions orientés objet.
Le langage de prédilection pour l'application de cette méthode est le COBOL, mais elle s'applique à tous les langages.

D'après moi, pour bien débuter, il faut commencer par là et l'algorithmie; puis éventuellement les concept objet et seulement après un langage de programmation pour mettre en pratique cela.


RE: Faut-il éviter de distraire les débutants avec l'orientée objet ? - Maks - 03-08-2012

Il faut aimer l'approche mathématique. Au début, si tu me présentes ça, ça va vite me souler :langue:

Concernant l'éternel débat, je pense que ce qui est important c'est surtout d'avoir un moyen rapide et efficace de mener à bien un projet. Pour cela, un bon framework, et un langage flexible, pas trop verbeux, agréable à programmer c'est cool. Enfin quand on le choix des outils/langages ce qui n'est pas toujours le cas.