|
|||||||
| Débuter Forum d'entraide : Comment débuter en programmation ? |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#41 | |||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
La POO pour moi sous entant des objets ayant un etat et qu'on peut considerer comme appartenant a plusieurs types. Les nombres sont donc un tres mauvais exemples, les manipuler comme des objets ayant un etat plutot que comme des valeurs est completement anti-intuitif. Dans de la gestion de piles, de files, de tableaux, je vois bien des objets avec un etat, mais appartenant a un type bien determine, pas de polymorphisme la-dedans, pas de de POO. Aucun de tes exemples ne me semblent montrer l'interet de la POO. Pile, file, tableaux montre au contraire l'interet de la genericite (ce sont des types de donnees abstraits generiques). Citation:
A nouveau, je n'y vois aucune utilisation de polymorphisme. Citation:
vision OO aboutit a une structure non optimale, parfois batarde (heriter d'une classe simplement pour pouvoir utiliser sin et cos comme ca se faisait en Eiffel, ca reste du niveau du hack). Citation:
commencer par les autres. Citation:
d'autres que j'aborderais avant (en particulier la modularisation qui a un interet plus vaste, plus facile a percevoir et s'appliquant aussi dans des programmes moins complexes; d'ailleurs on peut voir la POO comme une modularisation avancee -- voir comment faire de l'OO en Mainsail par exemple).
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|||||
|
|
00
|
|
|
#42 |
|
Membre du Club
![]() Inscription : août 2002 Messages : 124 ![]() |
Et bien ... Merci pour toutes ces réponses ... J'espérais mais n'imaginais pas récolter autant de succès avec ce post!!!
Je vois que certains sont pour et d'autres contre commencer avec la POO... Pour ma part, j'ai été très hésitant : j'ai commencé avec la prog classique (en LOGO et puis BASIC) et ai donc adopté un raisonnement très séquentiel... Les procédures / fonctions sont venues compléter ma "formation" (basic : fort autodidacte...), mais ... mon paradygme est fort resté "séquentiel" (je sais que c'est comme ça qu'une machine travaille, mais ... pas un humain!)... Quand je me suis mis au Java, j'ai à nouveau pensé "très séquentiel" ... Je pensais faire de l'objet, mais ... rien du tout!!! Il m'a fallu un bon moment avant de réellement comprendre tout un tas de notions ... tout simplement parce que mon esprit raisonnait impératif! (ça a d'ailleurs été un véritable "voile qui se lève" quand j'ai capté quelques trucs, je me souviens, c'étais vraiment chouette D'ailleurs, encore maintenant (mais il est vrai que je ne suis pas programmeur professionnel, je suis enseignant), ma première pensée de résolution d'un problème s'oriente naturellement vers la PI... Pour "penser POO", je dois faire un chtit effort (mais ... de moins en moins, quand même Avec le constat qu'il n'est pas simple d'amener les 2 paradygmes correctement en 2 ans (2h/sem puis 4h/sem), et le fait d'avoir lu quelques pages d'un bouquin qui à l'air de prôner l'apprentissage de la programmation par la POO (voir le premier post), je vais tenter l'an prochain ... Commencer par la POO en Java, avec le logiciel BlueJ (qui permet notamment de "camoufler" tout un tas de truc, comme par exemple la classe exécutable et sa méthode principale - parce que c vrai que le "public static void main (String [] a) " est quand même un peu lourd...-) : il permet de se concentrer uniquement (au moins ds un premier temps) sur les objets... A ce propos ... quelqu'un utilise-t-il BlueJ? si oui : Qu'en pensez-vous? Quand je l'ai ouvert la première fois ... j'ai été un peu dérouté (j'aimais pas trop), mais ... en y regardant de plus près (surtout avec le bouquin), je l'ai trouvé pas mal ... enfin ... toujours dans l'optique de l'enseignement, évidemment! A bientot |
|
|
00
|
|
|
#43 | |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Citation:
Je ne suis pas du tout d'accord avec toi, l'héritage (sous-typage)+polymorphisme n'est pas l'unique intéret de la POO. L'intéret est aussi que si on retire cela on se retrouve avec la généricité classique. Donc la généricité est un cas particulier de la POO. Je ne vois absolument pas ce qu'il y a de choquant a utiliser la POO comme cela, d'ailleur tout le monde fait comme ça. Enfin tu vois les choses comme tu veux mais pour moi c'est fondé et intuitif. (tu doit effectivement détester Eiffel vu comme ca )
|
|
|
|
00
|
|
|
#44 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
-- Jedaï |
|
|
|
00
|
|
|
#45 | |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Citation:
|
|
|
|
00
|
|
|
#46 | |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 246 ![]() |
Citation:
Pas tellement de différence entre MaClasse.MaMethode(); et MaFonction(&MaStructure);, si ce n'est la notation. |
|
|
|
00
|
|
|
#47 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Citation:
Citation:
Citation:
Au fait, j'aime bien aussi Eiffel pour la programmation par contrat.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
||||
|
|
00
|
|
|
#48 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#49 |
|
Membre actif
![]() Inscription : avril 2006 Messages : 269 ![]() |
ce que je trouve le plus agreable c'est l'encapsulation (l'aspect boite noir).
mais bine sur que l'heritage qui permet une meilleur organisationet une plus grande reutilisation du coe est une pierre angulaire de la POO. cedric |
|
|
00
|
|
|
#50 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#51 |
|
Membre actif
![]() Inscription : avril 2006 Messages : 269 ![]() |
salut,
selon le propre d'un bon analyste (d'un bon programmeur) est la rigueur. Si on lui donne une norme ou une syntaxe, il l'a respecte. Pour le reste si il commet des erreurs, c'est par manque de rigueur. cedric |
|
|
00
|
|
|
#52 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 738 ![]() |
Citation:
La rigueur, ça demande de la concentration, et ça fatigue un humain. Et si en plus on ne facilite pas sa tâche... |
|
|
|
00
|
|
|
#53 |
|
Expert Confirmé Sénior
![]() ![]() |
Tout à fait, un bon programmeur écrira du bon code dans tous les langages du monde, mais aussi bon soit-il, il commettra toujours des erreurs, c'est là que le langage peut aider à éviter ces erreurs ou à les détecter aussitôt qu'il les fait.
Quant à l'encapsulation, je confirme qu'elle n'est pas liée à la POO : OCaml entre autres a des types de donnée abstrait qu'on ne peut manipuler qu'avec l'interface autorisée. -- Jedaï |
|
|
00
|
|
|
#54 |
|
Membre actif
![]() Inscription : avril 2006 Messages : 269 ![]() |
j'ai pas dis qu'on ne trouvait pas ailleurs ce concept.
Simplement les bon langage OO l'intègre. Lié a l'heritage, on possède quelque chose de tres pratique. Il est aussi vrai que des langage (non psecialisé POO) qui proposent l'approche OO ne possède pas d'encapsulation strict. PHP4 est tres laxiste (je suis pas encore aller voir si PHP5 avait resolu ce probleme). et c'est dans ces cas precis que la rigueur regle le probleme. elle nous evitera meme de rencontre certai probleme. cedric |
|
|
00
|
|
|
#55 | |
|
Membre émérite
![]() ![]() Michaël Conseil - Consultant en systèmes d'information Inscription : juin 2003 Messages : 669 ![]() |
Citation:
A ce moment là, je peux te dire qu'Ada95 aussi gère les Types Abstraits de Données et même Ada83 !!! C'est dire ! Tu utilises dans tes packages les attributs private/limited private et tu obliges l'utilisateur à passer par les fonctions du packages pour manipuler ton TAD ! Encapsulation != Objet L'objet permet de simplifier l'encapsulation !!!
__________________
Michaël Mary Consultant PLM dans une société de conseil toulousaine Auditeur CNAM-IPST depuis septembre 2008 "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods mon cv et mon domaine et mon blog Aucune question technique par MP, svp |
|
|
00
|
|
|
#56 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
-- Jedaï |
|
|
|
00
|
|
|
#57 |
![]() ![]() Matthieu BrucherDéveloppeur HPC Inscription : juillet 2005 Messages : 9 697 ![]() |
Pour être plus précis, c'est ObjectiveCaML.
|
|
|
00
|
|
|
#58 | |||||
|
Membre éclairé
![]() Inscription : avril 2004 Messages : 503 ![]() |
Bonjour à tous,
C'est un sujet qui m'interpelle très fortement car je me suis retrouvé en Licence Système Info et Logiciel, avec un bagage uniquement électronique jusque là, lors de ma reprise d'études. Premier cours de programmation, premier cours de JAVA. Je me suis donc retrouvé avec des DUT qui avait déjà fait 2 ans de programmation procédurale en C et autres langages, et qui maitrisaient donc tous les aspects d'algorythmie et de synthaxe de programmation. Néanmoins, on se retrouvait tous au même niveau puisqu'ils ne connaissaient pas non plus la POO. 1) Cela ne m'a pas dérangé de commencer par un langage POO, puisque j'ignorais tout des autres langages. 2) On retrouve tous les aspects d'algorythme qu'on peut rencontrer dans un langage procedurale dans un langage POO 3) Les concept de langage POO sont tellement difficile à integrer, digerer, et mettre en application qu'il ne fait aucune différence de temps d'apprentissage entre un developpeur qui connait les langages procéduraux et un autre qui commence par le langage POO. 4) C'est la qualité de l'enseignant à prendre du temps, des exemples simples et bien construits qui fera que les élèves comprendront. A éviter les exemples du style : J'ai mis quelques mois à comprendre que voiture était la réference de l'objet de type Voiture, et qu'on pouvait nommer la réference comme on le souhaitait...à cause d'un enseignant quio ne s'est pas mis à la place d'étudiant n'ayant jamais vu une telle synthaxe. Donc pour l'exemple, choisissez plutôt un truc du genre: Code :
6) Je n'ai développé à titre privé et professionnel qu'en Java jusqu'à il y a quelques mois, avec une approche PU (Conceptualisation, analyse, Design, ...) Je suis un convaincu de Java (et des langages POO). 7) Ma maitrise d'un langage POO me permet d'appréhender très facilement un langage procédural car il suffit de se familiariser avec une synthaxe, le reste n'est qu'algo. Citation:
Je pense que cette ligne effraye d'avantage un développeur habitué à d'autres langages qu'un vrai néopyte de la programmation. Voila pour mon experience personnelle. Je pense être un bon développeur, en tout cas j'essaie de l'être, et si le POO à l'inconvenient de devoir assimiler des concept très difficiles, il a l'avantage de former, avec le temps et pour ceux qui n'auront pas décroché (lol), des développeurs soucieux d'architecturer leur travail en ayant à l'esprit l'importance des phases d'analyse dans un projet orienté POO. Je pense, par exemple, qu'un développeur n'ayant qu'une connaissance de langages procéduraux à plus de mal à apréhender l'importance et l'avantage de la phase d'analyse et de test.
__________________
L'interêt du doute est que cela fait avancer. (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs. mon cv: http://charegis.netcv.org/ |
|||||
|
|
00
|
|
|
#59 |
|
Invité de passage
![]() Inscription : février 2006 Messages : 5 ![]() |
Commencer directement par la POO est infiniment plus motivant...
Je le pratique depuis des années en mettant directement des débutants à Delphi. Ils sont confrontés tout de suites aux objets et aux pointeurs sur méthodes et propriétés. L'avantage, c'est qu'il voient tout de suite concrètement à quoi ça correspond : un bouton, un champ de saisie... Et c'est très ludique Vient ensuite le temps de coder le bouton pour faire inscrire le résultat d'une multiplication dans un label... Et c'est parti... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com