|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 | |||||||||||
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
Citation:
On utilise la notion de "callbacks", ou de fonctions enregistrées (exactement simlaires aux callbacks d'un widget dans une IHM) Un petit exemple en C : (je simplifie un peu : je ne mets pas toutes les fonctions, et plusieurs options sont possibles) Soit un include de définitions d'actions diverses : Code C :
et un include de définition d'une structure de fonction callback commune : Code C :
On a un module de gestion des events : Code C :
On a un code de création des "classes" et de leurs méthodes : Code C :
et on a un code d'utilisation : Code C :
Tu vois, c'est pas bien long Pour étendre les moyens d'envois, il suffit de créer la classe correspondante dane le module de création, et d'ajouter le choix dans l'IHM par exemple.. (on ne touche même pas les modules applicatifs) Il y a d'autres moyens de faire, mais là je te donne un exemple... Utilisé absolument couramment en procédural un peu évolué (on peut même rajouter des structures dépendantes des actions (ce qui se fait dans les callbacks de widgets)) D'autre part, comme le code de gestion des handlers est général, le même module (oui oui, juste ces 45 petites lignes) peut s'appliquer pour enregistrer des fonctions d'édition, d'IHM, d'accès à des BD, de traitement d'image, ce qu'on veut..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|||||||||||
|
|
10
|
|
|
#22 | ||||||||||
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
J'ajouterais que, pour réaliser l'héritage d'une classe, voire un héritge multiple, c'est aussi simple.
Comme j'ai dit, diverses options sont possibles.. On pourrait aussi se passer du paramètre ObjectType dans les EventHandler,, et faire une vraie "classe" avec une structure, qui ne nécessiterait même pas de ré-enregistrer la fonction du parent (par contre, dans ce cas on a besoin d'une structure de callback, contenant au minimmum l'id de l'objet émétteur) : Code C :
La première version, quoique moins "objet", est plus facile.. Mais on peut utiliser d'autres manières.. Tout ceci pour dire que oui, c'est absolument faisable.. Et c'est normal, puisque par exemple C++ est dérivé du C : les notions de void, void*, et structures imbriquées du C sont à la base de l'objet, donc on peut faire tout ce qu'on fait en objet en C... Note: faire une implémentation "full object" n'est pas vraiment plus compliqué (voire plus simple encore).. Il suffit se créer un objet global, et de se servir de ça dans les eventhandler à la place des types d'objets : Code C :
Code C :
Et là le module des "classes" devient : Code C :
Dans ce cas, la fonction EnvoyerPar.. recevra en premier paramètre un pointeur sur l'objet, l'équivalent du "this" en C++. et l'héritage est géré en interne.. Et là, ajouter (ou changer) la classe d'un élément est direct...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
||||||||||
|
|
10
|
|
|
#23 |
|
Membre confirmé
![]() Jérôme FrossardEnseignant Inscription : décembre 2007 Messages : 73 ![]() |
|
|
|
20
|
|
|
#24 | |||||||||||
|
Membre actif
![]() Inscription : mars 2011 Messages : 91 ![]() |
Citation:
En fait le choix de tel ou tel paradigme se fait assez naturellement pour peu qu'on a la culture suffisante et que l'on ne soit pas psychorigide. Citation:
En situation réelle, il est possible que la finalité du dev m’amène à penser le code autrement. Cela en changerait l'aspect pour plus de compréhension/efficacité. En procédural implémenté les deux "classes" donnerait: Code :
Code :
Code :
Code :
Citation:
Il est également possible de créer un système d'héritage avec des macro ou des fonctions mais j'ai la flemme d'en concevoir qui soit élégante. Si je dois pousser aussi loin la ressemblance avec OO, autant passer sur un langage OO. Petite pique cependant: Le système d'héritage c'est bien pour organiser le code non pas au niveau de l'architecture du code mais au niveau des librairies(appelé framework chez les 00). J'ai déjà perdu des heures à faire de beau framework. C'est amusant mais ça ne rapporte rien au projet: ni à la compréhension, ni à l'optim. J'enchainerai avec la notion d'attribut de classe. D'un point de vue de programmation procédurale structuré, un attribut de classe en OO se rapproche d'une variable globale. Il est vrai qu'elle est protégée et disponible uniquement au niveau de l'instance ou des instances de la classe dans le cas d'un attribut statique. L'exemple donné par Souviron34 est souvent préféré à celui que j'ai donné comme exemple parce qu'il s'affranchit totalement des variables statiques. Cela veut dire que si je veux utiliser une méthode de Souviron34 dans ma classe CentreDeTri pour x raisons, il me suffit de récupérer sa "méthode" et uniquement sa méthode. Je n'ai pas a récupérer toute sa "classe" à cause des variables d'instance et encore moins son "framework" dans le cas ou sa classe serait en bas d'une arborescence d'héritage. En terme de modularité il n'y a pas photo ! Il est possible d'avoir une modularité équivalente en POO mais la plupart des dev OO n'ont pas cette culture. Quand un dev OO qui n'a cette culture de la programation vient raconter à qui veut l'entendre que l'OO permet plus de modularité ben le dev élevé à l'école du procédural grince des dents... La modularité est une question de méthode et non de langage ! |
|||||||||||
|
|
20
|
|
|
#25 | |
|
Membre confirmé
![]() Jérôme FrossardEnseignant Inscription : décembre 2007 Messages : 73 ![]() |
Citation:
C'est d'ailleurs la raison pour laquelle j'essaie autant que possible dans mon enseignement de remettre les choses dans un contexte historique et montrer autant que faire peut que ces concepts ne sont pas tombées du ciel un beau jour. |
|
|
|
10
|
|
|
#26 | |
|
Membre actif
![]() Inscription : mars 2011 Messages : 91 ![]() |
Citation:
J'ai eu un cursus plutôt universitaire. J'y ai vu indifféremment plusieurs familles de langages. J'ai été encouragé à les critiquer et les comparer. Lorsqu'il m'a fallut trouvé du boulot j'ai séché lors des entretiens techniques parce que je ne connaissais pas telle syntaxe de tel fonction de tel langage. Il faut voir les vieux piège qu'ils mettent (ordre des paramètres, underscore, cases de caractère, etc...) .Aujourd'hui on forme d'avantage sur un type de techno à coup d'éloge sur les possibilités offertes par telle version. La programmation en tant que matière tend à disparaitre. Ceux qui sortent de ces écoles sont très prisés sur le marché du travail, jusqu’à ce que l'on change de techno... |
|
|
|
11
|
|
|
#27 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
Citation:
bref, que "historique" ne veut pas die "obsolète"..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
10
|
|
|
#28 | |
|
Membre confirmé
![]() Jérôme FrossardEnseignant Inscription : décembre 2007 Messages : 73 ![]() |
Citation:
|
|
|
|
00
|
|
|
#29 | ||||
|
Membre éprouvé
![]() Inscription : janvier 2011 Messages : 155 ![]() |
Citation:
Maintenant, je n'ai pas lu le code de souviron, si vous dites que c'est possible et que vous le faites tous les jours dans un langage procédural (C en l'occurrence) je vous fais confiance et c'est tant mieux. Le fait est que je préfèrerais même avoir à maintenir ce genre de code que du code écrit avec les pieds dans un langage objet. Citation:
Citation:
Le fait de pouvoir utiliser l'héritage pour utiliser ou étendre des fonctionnalités d'une bibliothèque tierce me parait secondaire et la corrélation avec le manque d'intérêt des frameworks, douteuse. Citation:
Bref... je ne crois pas que l'objectif de la personne qui a posté la question d'origine était d'obtenir un troll de 12 pages sur le thème "anciens langages vs nouveaux langages" (il y a la taverne pour ça), et à vrai dire ça m'intéresse aussi assez peu. Pour revenir au sujet de départ, je vais donc rester sur ma réponse (avec laquelle chacun a le droit de ne pas être d'accord) : non, orienté objet ne veut pas dire 100% objet, orienté objet ne veut pas dire bannir les services, et orienté objet ne veut pas dire objets métier obèses et charger 250 Mo de données en mémoire. Je conseillerais aussi la lecture du PoEAA de Fowler qui pour le coup reste assez neutre sur l'utilisation d'un Transaction Script procédural ou d'un Rich Domain Model objet. |
||||
|
|
00
|
|
|
#30 | ||
|
Membre actif
![]() Inscription : mars 2011 Messages : 91 ![]() |
En fait je suis d'accord avec ta réponse. C'est une solution élégante.
Quand tu dis: Citation:
mais quand tu ajoutes. Citation:
Les bonnes pratiques, les techniques d'optim, d'encapsulation, de modularité, presentation sont bien antérieure à la POO. Ce sont des techniques transverses valable pour tout type de langage. Le truc bien avec l'OO c'est que le langage facilite la mise en œuvre de certaines d'entre elles. En contre partie dans certain cas l'OO complique la mise en œuvre de certains type d'algo, optim ou manière de présenter le code. C'est pour cela que l'on a créé les patterns. Pour quelqu'un qui à fait du procédural les patterns n'ont rien de révolutionnaire. C'est de la traduction de ce qui se fait simplement en procédural vers de l'objet. De la même manière les exemples que l'on ta montré plus haut pourraient etre des "patterns procéduraux" pour retranscrire en procédural ce qui se fait simplement en objet. Si tu piges ça, un jour tu pourras écrire ton propre bouquin sur les patterns. Cela dit, tu as raison, ce n'est pas le sujet d'origine. Enfin si un peu. Par exemple il y en a qui ont créer des ORM pour ne pas trahir la philosophie 100% objet du code (ou pour combler les lacunes des devs). C'est plus lourd à l'utilisation, plus dur à optimiser et moins souple que le SQL, si on se donne la peine d'apprendre ce langage. Personnellement, je crois en le multi-pradigme. |
||
|
|
10
|
|
|
#31 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
Citation:
(encore une fois, le modèle en couche ISO, ou l'architecture du Web , d'un navigateur, des sockets, ou la bibliothèque et serveur X, en sont des exemples "anté-diluviens" pour reprendre les termes actuels ![]() moi je crois encore plus en l'absence de paradigme Ayant appris sur le tas, un "paradigme" est pour moi un truc de théoricien.. Je prend le langage qu'on m'impose (j'ai rarement le choix), et je me débrouille pour faire ce qu'on me demande avec, de la manière la plus élégante et la plus maintenable possible... Que ce soit en C, en Fortran, en Pascal, en Delphi, en C++, en Postscript, Prolog, Java, ou n'importe quoi.. Le seul "paradigme" auquel je crois c'est que toute norme est mauvaise, car elle est (à 99%) prise à la lettre, alors que ce n'est censé être qu'un guide... Et qu'on formatte des "ouvriers à la chaîne" à qui on a bourré le crâne de certitudes, au lieu de former des gens ouverts et polyvalents, dotés d'esprit critique et de doutes.. Que ce soit en "paradigme", en "méthodologies", ou en "postes".. Ce qui me déçoit beaucoup en info, c'est que ce qui devrait être du domaine de la Recherche et d'équipes de chercheurs tombe très souvent dans les formations, et donc sur le "marché"... Autant je peux comprendre qu'en médecine un nouveau médicament soit immédiatement mis sur le marché et/ou enseigné, autant dans des sciences plus éloignées de la santé, j'ai beaucoup de mal à comprendre. Je viens de l'astronomie... Je ne pense pas qu'on enseigne la Matière Noire et les réactions nucléaires au sein des étoiles aux élèves/étudiants se destinant à faire de l'électronique ou même aux futurs ingénieurs physiciens. Personnellement je ne l'ai vu qu'en DEA... De même on n'enseigne pas la Relativité Générale aux futurs mécaniciens.. Alors c'est certainement dû à l'aspect "nouveauté" (et j'oserais dire marketing) de l'informatique, mais ça me fait irrésitiblement penser à la course aux bio-technos et aux annonces de clonage, ou ces derniers temps à tout ce qui a touché le Réchauffement Climatique.. ou dernièrement le Gluten... On crée un buzz, on forme des gens, on reçoit des subventions.. Je suis peut-être pessimiste... ce soir
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
23
|
|
|
#32 | ||||
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 562 ![]() |
Citation:
Citation:
Après on peut sûrement mixer et opter pour un objet métier qui utilise les services pour se procurer des données. Attention à ce moment là, si l'on utilise des collections de ces objets à ne pas tomber dans les pièges du n+1. Citation:
.Citation:
Le problème c'est que l'un des buts recherchés par certains développeurs à travers ces outils, ce serait de pouvoir faire abstraction du fait que derrière, c'est une base de données relationnelles. Le problème c'est que la réalité vous rattrape assez vite, mais pas forcément assez pour ne pas nuire à la réussite d'un projet. |
||||
|
|
00
|
|
|
#33 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
Citation:
Et le post suivant de LuckyLuke semblait se baser sur de telles faussetés concernant le "procédural" qu'on ne pouvait pas le laisser passer..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
00
|
|
|
#34 | |
|
Membre confirmé
![]() Jérôme FrossardEnseignant Inscription : décembre 2007 Messages : 73 ![]() |
Citation:
c'est, je pense, la meilleures conclusion qu'on puisse donner à ce file. La programmation n'est pas une science, encore moins de la mathématique et surtout pas une religion; rien n'y est "pur". J'aime voir la programmation comme un artisanat; les programmeur comme des artisans avec plus ou moins les mêmes outils et savoir faire de base mais chacun avec ses petites recettes et même si tous n'ont pas la même habileté, la plupart ont cette passion qui distingue l'artisanat de l'industrie. |
|
|
|
30
|
|
|
#35 | |
|
Membre actif
![]() Inscription : mars 2011 Messages : 91 ![]() |
Citation:
Bien que le paradigme fonctionnel (en cours de démocratisation) se soit fait connaitre après le paradigme objet objet, le Lisp est apparu avant le Simula. Alors la programmation structurée est elle apparu avec le paradigme fonctionnel me demanderez vous ? Ben non, ce n'est pas le cas non plus. La programmation structurée est née et s'est développée en même temps que la programmation. Elle est le bébé de techniciens qui avaient le souci de répondre à des exigences de lisibilité, d'efficacité et de modularité. En cela la programmation vient enrichir d'autres sciences qui ont précédé l'informatique comme logique, la linguistique et toutes les autres qui peuvent regrouper sous la bannière des sciences du langage. Le but ultime est de programmer en utilisant le langage naturel. Nous autres avec nos langages et nos technos sommes perdu quelque part entre le début et la fin de cette aventure. |
|
|
|
02
|
|
|
#36 |
|
Membre émérite
![]() ![]() Inscription : janvier 2006 Messages : 525 ![]() |
Bonjour à tous,
je viens de lire ce post très intéressant, car très "passionné". J'ai lu beaucoup de choses, et je vous rassure je n'ai pas tout compris. Du coup, comme d'habitude, je vais faire le terre-à-terre. Au final, et quoi qu'on en dise, notre cher bon vieux PC (ou MAC suivant les cas) est encore basé sur 2 principes de base : le binaire et Von Neumann. Donc toutes les couches OO et consors ne sont à mon avis qu'une façon certes élégantes mais artificielle de piloter la logique d'un soft. Je m'explique... Autrefois, des gens faisiaent des applis en BASIC, ou en COBOL ou en PASCAL. On avait quoi ? L'affichage d'un menu et ensuite une boucle qui tournait (idle process) et qui en fonction de l'option sélectionnée, exécutait une fonction ou une autre contenant du code. Maintenant on a quoi ?
Comme le disait une personne dans ce post, la POO permet d'avoir une vue d'ensemble de ce qu'il est possible de faire, en programmation structurée (ou procédurale), on s'attache plus à la logique de l'application. D'un côté on regarde les possibilités, de l'autre on regarde la logique... En programmation structurée, on sait ou on en est. Suffit de suivre le déroulement. En POO, ca devient tout de suite plus difficile, car le déroulement peut être interrompu par un appel de méthode... La POO introduit des concepts comme l'héritage et la réutilisabilité du code. On faisait pareil sans, avec les librairies... Masi il faut reconnaitre que ça semble plus simple en POO puisque justement c'est prévu pour. Maintenant, comme tous les dogmes, et la POO en est un, il y a du bon et du mauvais. Du bon car bien utilisé ça s'avère redoutable d'éfficacité. Mais mal utilisé, ca devient un calvaire pour ceux qui passent après. Un peu comme SAP. Un peu comme les BDD. Un peu comme l'assembleur. Un peu comme la plomberie. Un peu comme la maçonnerie. Un peu comme l'informatique...
__________________
"L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent." Général George S. PATTON. Messine 1943. |
|
|
13
|
|
|
#37 | |||||||||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2012 Messages : 9 ![]() |
Bon, je suis tombé sur cette file un peu par hasard et un peu tard. Je n'ai pas pu m’empêcher de donner mon avis sur les différents échanges.
Citation:
Citation:
Qui décide de ce qu'un objet peut faire ou ne pas faire ? son concepteur Pour ce qui est de l'humain, c'est aussi une question de conception. Il n'y a pas si longtemps que çà :
Citation:
Citation:
L'importance que prend l'OO depuis des dizaines d'années vient surtout du fait que ces technologies permettent de construire des systèmes complexes (au sens systémique) plus facilement. Pour maîtriser la complexité, on n'a pas inventé mieux (pour l'instant) que le polymorphisme, la généralisation/spécialisation et la séparation interface/implémentation. Les langages non OO en sont dépourvus mais cela ne veut pas dire que l'on ne peut pas développer avec eux des systèmes complexes avec du code clair, facile à lire, modulaire,... c'est juste plus long et plus difficile : plus de code à écrire pour un résultat équivalent donc plus de bugs potentiels, plus de code à lire quand on modifie,... Citation:
Juste un exemple, avec la dernière version d'Android, votre téléphone apprend et réagit.
Il y a ne serait-ce que 10 ans, on aurait dit que c'est de la science fiction. Bien sur, il existe aussi des objets inertes. Un verre est tout ce qu'il y a de plus inerte, il ne porte que des informations de type contenance, couleur, structure physique, etc... Cela dit, lorsqu'il tombe par terre, un verre de cristal se casse. Est-ce un comportement, une fonction ? encore une fois, c'est une question de conception. Dans le logiciel, on ne prendra en compte que les caractéristiques pertinentes. Dans un site de vente, les caractéristiques seront essentiellement financières. Dans un jeu vidéo, le verre n'aura peut-être pas de prix mais il aura peut-être une capacité à se déformer. Bon, je ne serais pas contre des verres qui auraient la capacité de se remplir lorsqu'ils sont vides... ok , c'est de la SF Citation:
Citation:
Citation:
Citation:
Dans les gros projets avec des équipes importantes et beaucoup de débutants, il est important de repérer les composant qui seront développés par tel ou tel développeur en fonction de sa sensibilité et des exigences de maintenabilité, testabilité, évolutivité,... dont fait l'objet le composant Citation:
Et pour ce qui est des oeillères, elles dépendent de la capacité à adopter le point de vue de quelqu'un qui pense différemment de soi, bref c'est de la tolérance. Et je suis d'accord avec toi, ce n'est pas professionnel, toute conception qu'elle soit OO, procédurale ou autre, est valable dès lors qu'elle se justifie de manière factuelle. Citation:
Pour ce qui est des normes, elles sont là pour faciliter les choses. Un exemple : tous les téléphones vendu depuis quelques temps ont des chargeurs standardisés. Le chargeur d'un Samsung fonctionne sur un HTC, etc... bon çà marche pas pour les iPhones mais Apple paie des amendes pour préserver sa connectique non-standard. Citation:
Citation:
Pour ce qui est des couches OO et consors, elles sont toutes autant artificielles que le binaire et Von Neumann : toute construction humaine n'est-elle pas artificielle (valable pour les systèmes politiques, religieux, informatiques,...) ? Juste une comparaison imagée Pour faire une paella il faut du riz, des fruits de mer, des epices,... Le riz, c'est quoi ? c'est un féculent qui contient des protéines, des glucides, des fibres, du phosphore,... Le phosphore, c'est quoi ? c'est un élément chimique dont le numéro atomique 15. C'est quoi un atome ? c'est la plus petite partie d'un corps simple pouvant se combiner chimiquement avec une autre, constitué d'un noyau et d'un nuage électronique Ok, et le noyau ? Bon après on en vient à parler de protons, neutrons, quarks, gluons et compagnie et on a le vertige. Tous ces éléments cités constituent le monde tel qu'on le connait et sont stratifiés (en info, on parle de couches) dans des mondes très différents avec des lois différentes (on pourrait parler de paradigmes (cuisine, chimie moléculaire et organique, physique nucléaire,...). Ces couches sont super intéressantes : je ne dois pas être un spécialiste de la physique quantique pour faire une paella. Sympa, non ? On a le même vertige lorsqu'on se dit qu'un jeu vidéo comme Assassin's Creed est le résultat d'un séquencement d'instructions élémentaires dans le micro-code embarqué dans les CPU et GPU. De tels softs ne peuvent se développer que parce qu'il y a des couches qui démarrent avec le hardware et qui finissent avec des objets animés eux mêmes en interaction avec des moteurs de rendu 3D, des moteurs physique, des moteurs d'IA,... Ces derniers sont construits avec des composants logiciels qui eux-mêmes se décomposent en objets interagissant ensemble. Si des jeux comme Pacman peuvent être développé en procédural (j'en ai développé un quand j'étais jeune), ce n'est plus le cas avec les jeux d'aujourd'hui non pas parce que c'est impossible mais tout simplement parce que ce serait trop cher. Combien coûterait une paella en partant de la physique quantique ? combien de temps faut-il attendre pour manger ? En résumé par rapport à OO vs procédural, il y a du procédural dans l'OO mais il y a aussi des concepts de haut niveau comme le polymorphisme et autres. Ces derniers permettent de construire des abstractions qui constituent des systèmes plus complexes, plus interactifs, plus ergonomiques. Comme cela a été dit dans les différents posts, on peut simuler en C le polymorphisme avec des pointeurs de fonctions et des pointeurs de pointeurs, des macros, etc... mais c'est plus long à écrire et lire, à comprendre, à modifier, il est aussi plus difficile de trouver des personnes compétentes pour monter une équipe projet. La quantité d'OO par rapport au procédural (si tant est que cette notion de quantité ait un sens) dans un système dépend de la maturité des développeurs et de l'effort que cela leur demande pour le concevoir et le développer. |
|||||||||||||
|
|
31
|
|
|
#38 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 569 ![]() |
je ne répondrais pas sur tout - ni l'envie ni le temps - tellement ton post est orienté...
Citation:
![]() Je ris.... Quant aux billevesées sur "la maîtrise de la complexité passe par le polymorphisme" et autres "Il y a ne serait-ce que 10 ans, on aurait dit que c'est de la science fiction", ou "Dès lors que le traitement en question consiste en de la reconnaissance de forme", ils montrent simplement une ignorance crasse de ce qui se faisait avant... Tes exemples sur Android sont simplement dûs au fait que la majorité des gens maintenant - ici - a un smartphone.. Mais dans les années 80 et 90 cela se faisait aussi, avec ce qui à l'époque s'appelait des "pagets" ou "pager", et mais leur utilisation était restreinte aux gens en ayant réellement besoin... Et pour infos sur tous les OS SAUF Windows les sockets étaient asynchrones depuis le début des années 80... Et donc les serveurs/services surveillaient en temps réel des arrivées sur les ports et pouvaient prendre des dcisions tels qu'envoyer des messages, le tout en C, Fortran , Pascal, ou n'importe quoi, avec des programmes conçus en procédural... Bref, tes arguments pourraient être intéressants si ils n'étaient pas aussi orientés et basés sur des conceptions fausses (en particulier par rapport à l'historique) Je ne répondrais donc pas plus...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
23
|
|
|
#39 |
|
Membre émérite
![]() Inscription : décembre 2008 Messages : 188 ![]() |
Quand j'ai commencé mes études d'informatique (1998-1999), l'OO était le monothéisme à la mode. Je n'avais auparavant fait que du procédural impératif et j'ai accroché tout de suite à l'OO, devenant moi-même fanatique du truc. Heureusement, nos profs avaient équilibré leurs contenus pédagogiques pour qu'il n'y en ait pas que pour l'objet.
Quelques années plus tard (je dirais qu'il a bien fallu attendre 2003-2004), j'en suis un peu revenu, de la POO. Quand je programme je fais ce qu'il y a à faire avec un soucis de correction, de maintenabilité et de performance. Savoir si mon code tient, au final, plutôt de tel paradigme ou de tel autre n'a aucune importance ; cela dépend bien évidemment des projets et de mon évolution intellectuelle. |
|
|
40
|
|
|
#40 |
|
Membre éclairé
![]() Didier ChaumondDirecteur de projet Inscription : octobre 2012 Messages : 111 ![]() |
L'approche de skip en tout début de post n'est pas "son" approche mais celle utilisée par tous et qui, bien heureusement, n'utilise pas la vision "puriste" de l'OO. Un exemple tout bête, si on suivait a la lettre l'OO, un pattern comme un MVC serait une aberration et en poussant le bouchon plus loin, il faudrait n'utiliser que du polymorphisme en lieu et place des délégations.
Bâtir son architecture sur des objets simples, voir même simplistes, séparer les responsabilités et orchestrer le tout avec d'autres composants, heureusement que nous n'avons pas écouté l'OO a la lettre et avons découpé en tranche les objets en layers réduisant par la même la complexité relative a intégrer lors de tout changement. |
|
|
30
|
Copyright © 2000-2013 - www.developpez.com