[Paradigmes] La programmation par objets, pour qui ? pour quoi ? - Page 2
Discussion fermée
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 42 sur 42

[Paradigmes] La programmation par objets, pour qui ? pour quoi ?



  1. #31
    Jack
    Modérateur

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?


    ------

    j'aurai tendance à dire que les objets sont essentiellement des données sur lesquelles ont fait des opérations. Ce qui est assez en accord avec l'architecture des processeurs
    Mais que viens faire l'architecture ds processeurs dans cette discussion?

    Je doute que l'architecture matérielle soit une des principales préoccupation des développeurs java ou C#

    -----

  2. #32
    pm42

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par Ludwig1 Voir le message
    Selon les différents auteurs, la programmation objet n'a pas la même signification, par exemple, les gens qui travaillent avec Rubis disent que tout est objet.
    Cela n'a rien à voir. C'est simplement qu'il y a des langages 100% objet où tout est objet en effet, même les types de base et d'autres où ce n'est pas le cas pour notamment des raisons de performance.
    C'est comme ça depuis le début de l'objet, Smalltalk vs C++ par ex et cela n'a rien à voir avec la définition de la programmation objet.

    Encore une fois, venir expliquer quand on n'y connait rien et dériver vers les architectures de Von Neumann sans aucun rapport avec le sujet est ridicule.
    Quand au "mélange des instructions et des données", là aussi c'est méconnaitre les architectures récentes où justement, les 2 sont parfaitement ségrégées par la mémoire virtuelle.

  3. #33
    Bluedeep

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    pm42 et Jack, j'admire votre patience; moi j'ai renoncé.

  4. #34
    pm42

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par Bluedeep Voir le message
    pm42 et Jack, j'admire votre patience; moi j'ai renoncé.
    En même temps, on ne peut pas laisser passer des énormités comme ça qu'un débutant pourrait croire.
    Mais c'est vrai que la pollution systématique des fils sur la programmation avec du Forth, des trucs datant des années 70 et de l'auto-glorification est très lourde.

  5. #35
    CM63

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Bonjour,

    Comme j'ai vu dans un autre forum:

    "Et sinon, à part brasser de l'air, vous faites quoi?"


  6. #36
    UknownStudent

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par pm42 Voir le message
    C'est l'approche Javascript. Tu n'as pas de classes telles quelles, juste des objets. Et chaque objet a un lien vers un prototype, un autre objet dans lequel il va aller chercher des propriétés si lui ne les a pas.
    Donc au lieu de créer des classes puis de les instancier en objet, tu crées un objet puis tu le clones, l'étend/dérive, etc.

    C'est souvent un peu difficile à visualiser quand on connait l'approche classique par classes. Il faut un peu pratiquer. Le plus simple est que tu trouves un tutoriel sur Javascript qui te convienne pour te faire une idée.
    Merci de votre réponse

    Ca m'a l'air assez clair comme principe et j'ai suivi le lien de Ludwig vers Wikipédia qui explique le truc, mais j'ai quand même quelques interrogations sur le sujet :

    - Avant tout le nom de prototype, est ce que la considération de prototype est relative ? càd est ce qu'un prototype est tout simplement un objet duquel hérite un autre objet ? Ce qui voudrait dire que tout objet est un prototype pour un autre objet qui hérite de ses propriétés ?? Ou pour faire plus simple, tout objet est il un prototype ?

    - Tout objet a-t-il nécessairement un lien vers un prototype ?

    - Est ce qu'un objet peut avoir un lien avec plus d'un prototype ?

    - Est ce qu'il y a comme pour les classes, une hiérarchie qui fait que l'ensemble des objets ou prototypes en lien soit ordonné (classe mère, puis fils, petits fils etc) ?

    - J'ai vu que wikipédia parle d'une différence de mémoire utilisée par les deux méthodes orientées objet, j'ai jeté un coup d'oeil aussi sur Javascript, que je pensais être utilisé principalement pour le développement Web, et j'ai vu qu'il est aussi utilisé pour les serveurs, est ce que ca veut dire que l'approche prototype permet d'économiser de l'espace mémoire ? Pourquoi et comment ?


    Pour ce qui de votre petite querelle, j'aimerais bien pouvoir vous aider à la résoudre, mais je ne sais pas trop comment

    Je n'ai pas la connaissance et la compétence pour donner mon avis sur qui a tort et qui a raison mais c'est vrai que si ce qu'il dit contient effectivement autant d'erreurs et qu'il pense venir aider les débutants à chaque fois en se présentant comme quelqu'un d'informé sur le sujet et compétent ca pose évidemment un problème car il risque d'induire des gens en erreur surtout les débutants qui ne s'y connaissent pas encore assez ...

    Si autant de gens pensent qu'il a tort, une solution serait peut-être de lui imposer une étiquette à ses posts indiquant que ses positions sont souvent en désaccord avec la majeure partie de la communauté et que donc c'est à vos risques et périls si vous choisissez de le suivre, un truc comme ça


    Citation Envoyé par pm42 Voir le message
    Cela n'a rien à voir. C'est simplement qu'il y a des langages 100% objet où tout est objet en effet, même les types de base et d'autres où ce n'est pas le cas pour notamment des raisons de performance.
    C'est comme ça depuis le début de l'objet, Smalltalk vs C++ par ex et cela n'a rien à voir avec la définition de la programmation objet.
    Pour la première partie c'est ce que j'ai pensé aussi , pour le reste j'aimerais savoir pourquoi vous semblez dire que la POO a un désavantage de performance (vitesse) ?

    Et dernière question : c'est quoi la forth dont vous parlez ?

  7. #37
    pm42

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par UknownStudent Voir le message
    - Avant tout le nom de prototype, est ce que la considération de prototype est relative ? càd est ce qu'un prototype est tout simplement un objet duquel hérite un autre objet ? Ce qui voudrait dire que tout objet est un prototype pour un autre objet qui hérite de ses propriétés ?? Ou pour faire plus simple, tout objet est il un prototype ?
    - Tout objet a-t-il nécessairement un lien vers un prototype ?
    - Est ce qu'un objet peut avoir un lien avec plus d'un prototype ?
    C'est une question de langage. En pratique, tout objet va un prototype sauf un objet racine défini par la système.
    Et il va avoir normalement 1 prototype mais rien n'empêche de faire de l'héritage multiple.
    Pour faire simple, on peut voir ça comme un héritage classique sauf qu'au lieu que ce soit définit statiquement, c'est dynamique.

    Citation Envoyé par UknownStudent Voir le message
    - Est ce qu'il y a comme pour les classes, une hiérarchie qui fait que l'ensemble des objets ou prototypes en lien soit ordonné (classe mère, puis fils, petits fils etc) ?
    Oui mais pas codée en dur justement. Cela peut changer pendant l'exécution.

    Citation Envoyé par UknownStudent Voir le message
    - J'ai vu que wikipédia parle d'une différence de mémoire utilisée par les deux méthodes orientées objet, j'ai jeté un coup d'oeil aussi sur Javascript, que je pensais être utilisé principalement pour le développement Web, et j'ai vu qu'il est aussi utilisé pour les serveurs, est ce que ca veut dire que l'approche prototype permet d'économiser de l'espace mémoire ? Pourquoi et comment ?
    Non, il n'y a pas de grosse différence en mémoire.
    La différence est que dans un cas on a un langage très dynamique avec ses avantages au moment de l'écriture du code et ses inconvénients : difficulté à compiler efficacement, risque de bugs plus grands, etc.


    Citation Envoyé par UknownStudent Voir le message
    Si autant de gens pensent qu'il a tort, une solution serait peut-être de lui imposer une étiquette à ses posts indiquant que ses positions sont souvent en désaccord avec la majeure partie de la communauté et que donc c'est à vos risques et périls si vous choisissez de le suivre, un truc comme ça
    C'est ce qu'on modérateur avait menacé de faire il y a quelque temps, cela n'a pas été mis en place et je respecte leurs décisions même quand je ne les comprend pas.


    Citation Envoyé par UknownStudent Voir le message
    Pour la première partie c'est ce que j'ai pensé aussi , pour le reste j'aimerais savoir pourquoi vous semblez dire que la POO a un désavantage de performance (vitesse) ?
    La POO a un désavantage en vitesse notamment à cause de la surcharge des fonctions. Cela veut dire que pour en appeler une, on doit passer par un mécanisme plus compliqué et plus lent.
    Idem, on doit passer à chaque méthode le "this".
    Cela était sensible autrefois et notamment, le C++ a été conçu pour pouvoir aller aussi vite que le C (non objet) mais au prix d'une complexité accrue.
    De nos jours avec d'un coté la puissance des machines et de l'autre l'évolution des compilateurs, on ne se pose plus la question du tout.

    Ce dont je parlais était autre chose : si les types simples comme les entiers sont des objets, alors toute méthode peut être surchargée. Donc c = a + b peut devoir appeler un +, une méthode d'addition différente.
    Là, le compilateur ne peut plus optimlser autant ce qui est un vrai sujet parce ce sont des opérations qu'on fait souvent et qui sont directement implémentées par le processeur. Ne pas pouvoir les compiler au mieux serait très coûteux.
    C'est pour cela qu'en Java par exemple, les types de base (boolean, char, int, long, float, double...) ne sont pas des objets. Et probablement pour cela aussi que String ne peut pas être dérivée.


    Citation Envoyé par UknownStudent Voir le message
    Et dernière question : c'est quoi la forth dont vous parlez ?
    C'est un vieux langage, très simple à implémenter avec peu de puissance et peu de mémoire. Il a été fait dans les années 60 pour faire des calculs puis piloter des téléscopes quand le hardware était très peu puissant (genre quelques kilo-octets de mémoire et pas de disque dur).
    Il a la particularité d'être à pile, on code "à l'envers" en écrivant 2 3 + au lieu de 2 + 3, comme les vieilles calculatrices HP.
    C'est marrant à connaitre, c'est la base du langage utilisé par les fichiers PDF par exemple.

    Mais aujourd'hui, c'est globalement obsolète sauf cas très particulier et surtout pas d'usage général.
    Le problème est que notre ami ramène toutes les discussions à ce langage, donne tous ces exemples dedans et finit toujours par des considérations générales hors de propos sur l'architecture des machines pour se justifier (et comme elles sont fausses en plus, ça n'arrange rien).

  8. #38
    Ludwig1

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par UknownStudent Voir le message
    Merci de votre réponse


    Et dernière question : c'est quoi la forth dont vous parlez ?
    Entre autre c'est aussi ça:


    Code:
    { ====================================================================
    
    WIN2.FTH
    
    Windows application template
    
    
    ==================================================================== }
    
    OPTIONAL WIN2 A stand-alone windows application template including a simple menu.
    
    { --------------------------------------------------------------------
    
    This is a simple example of a windows program with a menu which does
    not need or create a console window.
    
    -------------------------------------------------------------------- }
    
    ONLY FORTH ALSO DEFINITIONS 
    DECIMAL
    
    
    { --------------------------------------------------------------------
    
    Define a simple menu, with exit and about options
    
    -------------------------------------------------------------------- }
    
    0 CONSTANT WB_OK
    
    100 ENUM M_EXIT
        ENUM M_ABOUT
    DROP
    
    MENU APP-MENU
    
       POPUP "&File"
          M_EXIT   MENUITEM "E&xit"
       END-POPUP
    
       POPUP "&Help"
          M_ABOUT  MENUITEM "&About"
       END-POPUP
    
    END-MENU
    
    { --------------------------------------------------------------------
    
    Command message execution
    
    -------------------------------------------------------------------- }
    
    : APP-ABOUT S( --- res )
    
       HWND Z" A sample Easywindows application" 
            Z" About" 
            WB_OK MessageBox DROP 0 
    
    ;
    
    
    : APP-EXIT S( --- res )
    
       HWND WM_CLOSE 0 0 PostMessage DROP 0 
    
    ;
    
    [SWITCH APP-COMMANDS ZERO S( cmd --- res )
       M_EXIT  RUNS APP-EXIT
       M_ABOUT RUNS APP-ABOUT
    SWITCH]
    
    { --------------------------------------------------------------------
    
    Window creation and message dispatcher.
    
    This is generic template that may be used for MS windows and Easywindows programs.
    
    -------------------------------------------------------------------- }
    
    CREATE APP-CLASS   ,Z" AppName"
    CREATE APP-TITLE   ,Z" Application Title"
    
    0 VALUE hAPP
    0 VALUE APPLICATION
    
    : APP-DESTROY S( --- res )   
    
       0 TO hAPP
       APPLICATION IF 0 PostQuitMessage DROP  THEN  0 
    
    ;
    
    : APP-CREATE S( --- res )
    
       HWND  APP-MENU LoadMenuIndirect SetMenu DROP 0 
    
    ;
    
    : APP-CLOSE S( --- res )
    
       HWND GetMenu DestroyMenu DROP HWND DestroyWindow DROP  0 
    
    ;
    
    [SWITCH APP-MESSAGES DEFWINPROC S( msg --- res )
    
       WM_DESTROY RUNS APP-DESTROY
       WM_CREATE  RUNS APP-CREATE
       WM_CLOSE   RUNS APP-CLOSE
       WM_COMMAND RUN: WPARAM LOWORD APP-COMMANDS ;
       WM_LBUTTONDOWN RUNS APP-ABOUT
    
    SWITCH]
    
    :NONAME  MSG LOWORD APP-MESSAGES ; 
    
    4 CB: APP-WNDPROC
    
    : /APP-CLASS S( --- )
          0  CS_OWNDC   OR
             CS_HREDRAW OR
             CS_VREDRAW OR                  \ class style
          APP-WNDPROC                       \ wndproc
          0                                 \ class extra
          0                                 \ window extra
          HINST                             \ hinstance
          0                                 \
          NULL IDC_ARROW LoadCursor         \
          WHITE_BRUSH GetStockObject        \
          0                                 \ no menu
          APP-CLASS                         \ class name
       DefineClass DROP 
    
    ;
    
    : /APP-WINDOW S( cmdshow --- hwnd )   
          >R
          0                                 \ extended style
          APP-CLASS                         \ window class name
          APP-TITLE                         \ window caption
          WS_OVERLAPPEDWINDOW               \ window style
          10 10 600 400                     \ position and size
          0                                 \ parent window handle
          0                                 \ window menu handle
          HINST                             \ program instance handle
          0                                 \ creation parameter
       CreateWindowEx ?DUP IF
          DUP TO hAPP
          DUP R> ShowWindow DROP
          DUP UpdateWindow DROP
       ELSE
          R> DROP
       THEN 
    
    ;
    
    :PRUNE   ?PRUNE -EXIT
    
       hAPP IF hAPP WM_CLOSE 0 0 SendMessage DROP THEN
       APP-CLASS HINST UnregisterClass DROP 
    
    ;
    
    : DEMO S( --- )
    
       /APP-CLASS 
       SW_SHOWNORMAL 
       /APP-WINDOW DROP 
    
    ;
    
    : WINMAIN S( --- )
    
       1 TO APPLICATION  
       DEMO DISPATCHER 
       0 ExitProcess 
    
    ;
    
    { --------------------------------------------------------------------
    
    Uncomment these lines to create a stand-alone application.
    
    ' WINMAIN 'MAIN !
      PROGRAM MYAPP
    
    -------------------------------------------------------------------- }

    Une façon ultra rapide et ultra simple à faire du développement sous
    Windows.
    Egalement POO et tous ce qui va avec.

    Call sur les Fonctions de MS réalisés de façon très simple
    Exemple:

    HWND APP-MENU LoadMenuIndirect SetMenu


    Etc...

    Cordialement

    Ludwig

  9. #39
    JPL
    Responsable des forums

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Citation Envoyé par pm42 Voir le message
    C'est ce qu'on modérateur avait menacé de faire il y a quelque temps, cela n'a pas été mis en place et je respecte leurs décisions même quand je ne les comprend pas.
    Techniquement ce n'est pas possible. La seule chose qu'on peut faire c'est de prémodérer quelqu'un, c'est-à-dire que ses messages n'apparaissent alors que si un modérateur les approuve. C'est habituellement réservé à des intervenants accumulant des hors charte ou des propos inacceptables. Plus rarement pour des intervenant perturbant gravement toutes les discussions.

    Mais dans ce dernier cas il est très difficile à un modérateur de décider (et de justifier) s'il doit approuver ou non un message en attente si celui-ci n'est pas hors charte.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  10. #40
    Ludwig1

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Salut,
    quelques précisions

    Citation Envoyé par pm42 Voir le message

    C'est un vieux langage, très simple à implémenter avec peu de puissance et peu de mémoire.
    Non c'est un machine informatique virtuelle qui contient son propre système d'exploitation.

    Citation Envoyé par pm42 Voir le message

    Il a été fait dans les années 60 pour faire des calculs puis piloter des téléscopes quand le hardware était très peu puissant (genre quelques kilo-octets de mémoire et pas de disque dur).
    Il a la particularité d'être à pile, on code "à l'envers" en écrivant 2 3 + au lieu de 2 + 3, comme les vieilles calculatrices HP.
    C'est marrant à connaitre, c'est la base du langage utilisé par les fichiers PDF par exemple.

    Machine Virtuelle Développée par Charles MOORE première publication 1970.
    Contiend d'entrée un système d'exploitation. Accès disque, éditeur de Blocs, Interpréteur de commandes, Compilateur etc...
    Notation Polonaise Inversée.
    Fichiers PDF sont fait à partir de Post Script un langage de programmation pour l'édition de documents, (Adobe)
    Post Script reprend une grande partie de la machine Forth.


    Citation Envoyé par pm42 Voir le message
    Mais aujourd'hui, c'est globalement obsolète sauf cas très particulier et surtout pas d'usage général.
    C'est fou comme c'est obsolète, le comité ISO s'en est occupé en 1997
    https://www.iso.org/obp/ui/#iso:std:...145:ed-1:v1:en
    C'est Normalisé ISO et ANSI
    C'est vrai que c'est particulier, on arrive à faire du multi tâche sur un Arduino.

    Cordialement

    Ludwig

  11. #41
    lou_ibmix_xi

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    C'est fou comme c'est obsolète, le comité ISO s'en est occupé en 1997
    J'ai envie de dire la réponse est dans la phrase... Un langage dont la norme n'a pas évolué depuis 20 ans ça veut dire que des acteurs industriels qui s'y intéressaient à l'époque, mais que maintenant dans l'industrie personne n'est intéressé pour mettre des sous et faire évoluer la norme...
    C'est un peu comme pour un logiciel, le jour où il n'a plus de mise à jour...
    C'est pas parce que les industriels s'en foutent qu'on n'a pas le droit d'en faire chez soi pour rigoler (yen a bien qu'y font du brainf*$#k)...

    Désolé de nourrir le troll mais ça m'embête vraiment de laisser des conneries sur un forum mais c'est typique des sujets pollués par Ludwig, ya plus de correction à ces conneries que de réponse à la question initiale c'est vraiment fatiguant!
    Dernière modification par lou_ibmix_xi ; 04/11/2016 à 13h34.

  12. #42
    JPL
    Responsable des forums

    Re : [Paradigmes] La programmation par objets, pour qui ? pour quoi ?

    Sauf objection de la part d'habitués efficaces ce sujet est clos.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Réponses: 44
    Dernier message: 21/06/2016, 15h54
  2. MuPad et Programmation Orientée Objets
    Par taladris dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 06/12/2012, 13h48
  3. aide pour programmation armoire de commande came pour portail a vantaux.
    Par invite5d1cf378 dans le forum Bricolage et décoration
    Réponses: 0
    Dernier message: 06/09/2011, 19h01
  4. Programmation python : objets
    Par invite559d53a0 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 13/02/2011, 14h22
  5. Réponses: 0
    Dernier message: 03/03/2009, 20h42