Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Membre du Club Avatar de perchman
    Étudiant
    Inscrit en
    décembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 27

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2006
    Messages : 198
    Points : 60
    Points
    60

    Par défaut Avantages et désavantages de Python versus C++ ?

    Voilà, comme je ne suis pas très fort en programmation, et que je ne maîtrise pas totalement ni le langage python ni le C++, et que je dois faire un rapport dans lequel je compare ces 2 langages, j'aimerai n'oublier aucun de ces "Avantages/Désavantages"...

    C'est dans ce but que je fais appel à vous TOUS, pour m'aider !!

    Merci par avance

    Etienne

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 52
    Points : 58
    Points
    58

    Par défaut

    Salut,

    C'est un bien vaste sujet que tu lances là

    Tout d'abord Python est un langage interprété et C++ un langage compilé, mais ils sont tous les deux oritentés objets

    Ensuite pour ta conclusion, je serai toi, je parlerai de la coopération entre python et C++ via des outils comme swig et boost. En gros d'un code python tu peux utiliser des librairies C++.

    Sinon voici différents points dans le désordre, mais ca reste mon avis perso
    - facilité d'apprentissage : avantage pour le python.
    - puissance de calcul avantage pour le C++, mais si tu utilises swig ou boost, tu peux profiter de cette puissance en C++
    - travail sur les chaines de caractères : avantage pour le python (utilisation des regexp facile)
    - communauté : à mon avis plus grande pour le C++, mais python monte...
    - debugage : beaucoup plus facile avec python grace à son affichage des traceback.
    - lisibilité des codes : je le mets, juste pour souligner que python impose une tabulation propre, ce qui n'est pas le cas en C++

    Sinon tu peux aussi parler de quelques différences fondamentales entre les deux codes :
    - syntaxe (principe des boucles, principe des blocs...)
    - pas de typage de variable en python, du moins pas de déclaration
    - pas de compilation de python dans un mode normal
    - ...

    Voilà déjà histoire de lancer les premières idées...

    C'est dans le désordre et un peu brouillon, mais il commence à se faire tard pour un vieux comme moi ...

    A+

    See++

  3. #3
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : janvier 2007
    Messages : 816
    Points : 814
    Points
    814

    Par défaut

    Dans la continuité :

    - inclusion d'assembleur (pour code encore + rapide) : avantage C++
    - méta-programmation : avantage Python
    - auto-documentation : avantage Python
    - développement sur micro-processeur : avantage C++
    - développement de pilote : avantage C++
    - interface de développement de GUI : avantage C++
    - rapidité de développement : avantage Python
    - facilité pour le débutant : avantage Python
    - développement uniquement pour Windows : avantage C++

    ...
    ...

  4. #4
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2002
    Messages : 1 861
    Points : 8 090
    Points
    8 090

    Par défaut

    Citation Envoyé par mchk0123
    - interface de développement de GUI : avantage C++
    - développement uniquement pour Windows : avantage C++
    Pour ces 2 points, je ne suis pas tout à fait d'accord.
    Le développement de GUI avec Python n'est pas si difficile.
    Avec Tkinter, rien de plus simple (mais interface relativement limité et pas forcément des plus belles).
    Sinon, Python des binding avec gtk, wxwidget, qt qui une fois maitrisé, les gui devienne des jeux d'enfants. Par contre, niveau RAD, c'est vrai que Python est en retard.

    Pour le développement uniquement pour Windows, Python est très bien aussi (je ne développe que pour Windows): l'installation des librairies est un jeu d'enfant (les installateurs des librairies précompilées sont disponibles), possibilité d'utiliser la technologie COM (avec comtypes), interfacage avec excel, word très simple (avec pywin32), de nombreuses bibliothèques qui fonctionnent que sous windows ( http://python.developpez.com/outils/Librairies/ ), toutes des librairies qui se manipulent très facilement

  5. #5
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    mai 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : mai 2005
    Messages : 818
    Points : 835
    Points
    835

    Par défaut

    Moi je vais pas t'en dire des lignes.

    Mais meme si un programme python est plus lent, tu auras gagner beaucoup de temps au niveau developpement.

    Un programme python qui fait 50 lignes peut représenter un code C++ ayant plusieur centaine voir milliers de lignes.
    Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel

    You are safe in Parp1City .... (AC DC)
    Ensemble luttons contre le chômage de parp1City!



    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  6. #6
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : janvier 2007
    Messages : 816
    Points : 814
    Points
    814

    Par défaut

    Citation Envoyé par Guigui_
    Pour ces 2 points, je ne suis pas tout à fait d'accord.
    Le développement de GUI avec Python n'est pas si difficile.
    Avec Tkinter, rien de plus simple (mais interface relativement limité et pas forcément des plus belles).
    ...
    Je vais faire court, je pensais plus aux outils de conception <b>visuelle</b> de fenêtres comme C++ Builder et maintenant Studio 2005 C++.
    Pour les biblios. de widgets, c'est vrai que C++ et Python sont à égalitée.

    Citation Envoyé par Guigui_
    Pour le développement uniquement pour Windows, Python est très bien aussi (je ne développe que pour Windows)
    ...
    Par là je voulais dire que si on veut utiliser (intensivement) les API Win32, C++ ou C est plus naturel car ces API ont été elles-mêmes écrites en C. De plus dans la pratique, passer d'un univers fortement typé (surtout pour les structs) comme C/C++ (avec redéfinition de types) à un univers faiblement typé comme Python, et vice-versa c'est moins pratique.

    Sinon effectivement :

    - programmation COM/DCOM (et ActiveX ???) : - avantage Python
    (bien que la documentation win32all laisse à désirer)

  7. #7
    Modérateur
    Avatar de pacificator
    Inscrit en
    août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : août 2006
    Messages : 1 074
    Points : 1 682
    Points
    1 682

    Par défaut

    à un univers faiblement typé comme Python
    Je m'inscris en faux, python est fortement typé mais à typage dynamique, nuance.

  8. #8
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro Nicolas Vallée
    Ingénieur d'études
    Inscrit en
    décembre 2005
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas Vallée
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2005
    Messages : 10 220
    Points : 17 577
    Points
    17 577

    Par défaut

    Citation Envoyé par pacificator
    Je m'inscris en faux, python est fortement typé mais à typage dynamique, nuance.

    fortement typé à typage dynamique => quelques bugs de typage assez rigolos mais ceux sont des détails de concepteurs de vm
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  9. #9
    Membre habitué
    Inscrit en
    octobre 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : octobre 2004
    Messages : 89
    Points : 107
    Points
    107

    Par défaut autres difféérences non mentionnées jusqu'ici

    Parmi les différences au niveau programmation :

    gestion de la mémoire : python avec son garbage collector libère automatiquement la mémoire lorsqu'un objet n'est plus instancié. Tu n'as jamais à te préoccuper de la gestion de celle-ci (tas, pile, et autres joyeuses surprises possibles avec les pointeurs).

    Python (Sujet débattu deuis au moins 10 ans) n'a pas d'interface pour les classes (pas de.h "en gros" pour une comparaison rapide)

    mais celà ne veut pas dire que ce n'est pas possible. Une implémentation vraiment bien faite de ce concept est la component architecture de Zope3.

    Sinon autre véritable différence le 'duck typing' .

    Voilà

    @++

  10. #10
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : janvier 2007
    Messages : 816
    Points : 814
    Points
    814

    Par défaut

    Citation Envoyé par pacificator
    Je m'inscris en faux, python est fortement typé mais à typage dynamique, nuance.
    Tu chipotes ...

    Et signatures de fonctions non typées c'est quoi alors ?

  11. #11
    Membre du Club Avatar de perchman
    Étudiant
    Inscrit en
    décembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 27

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2006
    Messages : 198
    Points : 60
    Points
    60

    Par défaut

    C'est vrai que c'est un sujet où on est très influencé par notre sensation

    MAis, beaucoup de vos réponses me plaisent et mon rapport va avancer très vite.


    Merci

    (Continuez, c'est toujours intéressant )

    Etienne

  12. #12
    Modérateur
    Avatar de pacificator
    Inscrit en
    août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : août 2006
    Messages : 1 074
    Points : 1 682
    Points
    1 682

    Par défaut

    fortement typé, c'est ça, pas de conversion implicite, par exemple.
    Concernant la signature des fonctions, le duck typing permet de faire abstraction du type de l'objet renvoyé tant qu'il posséde les interfaces demandées.
    Pythonic programming style that determines an object's type by inspection of its method or attribute signature rather than by explicit relationship to some type object ("If it looks like a duck and quacks like a duck, it must be a duck.") By emphasizing interfaces rather than specific types, well-designed code improves its flexibility by allowing polymorphic substitution. Duck-typing avoids tests using type() or isinstance(). Instead, it typically employs hasattr() tests or EAFP (Easier to Ask Forgiveness than Permission) programming.

  13. #13
    Expert Confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2008
    Messages
    805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2008
    Messages : 805
    Points : 2 650
    Points
    2 650

    Par défaut

    J'ai lu votre conversation, bien que je ne connais pas le python.
    Cependant, sur le lien wikipédia, on trouve cette phrase:
    le type de ses données est fixe et ne peut varier pendant la durée de la vie de l'objet. Si le type d'une donnée peut changer, le langage est faiblement typé. On appelle cela le typage dynamique.
    Tu disais bien que le python est fortement typé, selon wikipédia, non? ^^

    J'ai aussi l'impression, en ayant lu l'article sur wikipédia, que la notion de typage fort est assez ambigüe (les points 5 et 6 se contredisant beaucoup je trouve: "les conversions entre types doivent être explicitement décrites." et "aucun mécanisme du langage ne permet de passer outre les interdits de trans-typage." par exemple.), et en plus, si un langage la respecte a fond, il devient impossible ou très difficile d'utiliser des calculs mathématiques mélangeant plusieurs types, comme des entiers et des flottants, le casting étant impossible.

    Bon, désolé pour le déterrage de topic par contre

  14. #14
    Inactif
    Inscrit en
    juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : juillet 2005
    Messages : 1 958
    Points : 2 331
    Points
    2 331

    Par défaut

    Citation Envoyé par pacificator Voir le message
    fortement typé, c'est ça, pas de conversion implicite, par exemple.[...]
    La notion de typage fort est particulièrement fluctuante, comme l'indique la citation de Pierce. De fait, quand tu vois que certains considèrent le cast comme faiblement typé, tu en déduis que Python, Java, C, C++… en fait énormément de langage sont faiblement typés. En fait, en général, on fait la distinction entre typage statique ou dynamique et on s'arrête là. Le Dragon (bible de la compilation) n'utilise pas les qualificatifs « fort » ou « faible » pour le typage. Personnellement j'ai rarement entendu quelqu'un considérer que Python est fortement typé.

    De plus, je trouve que cette page n'est pas terrible. Sa version anglaise est bien meilleure. Je conseillerais ce lien sur Wiki (http://en.wikipedia.org/wiki/Type_system) à choisir.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •