IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

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


Sujet :

Langages de programmation

  1. #1
    Membre régulier Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Points : 90
    Points
    90
    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
    Copier sur un seul, c'est du plagiat. Copier sur deux, c'est de la recherche. [Wilson Mizner]

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

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Points : 63
    Points
    63
    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 éclairé 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 : 844
    Points
    844
    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++

    ...
    ...
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 864
    Points : 10 067
    Points
    10 067
    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 éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    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.
    [SIZE="2"]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


    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 éclairé 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 : 844
    Points
    844
    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)
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  7. #7
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    à un univers faiblement typé comme Python
    Je m'inscris en faux, python est fortement typé mais à typage dynamique, nuance.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  8. #8
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    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 régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    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 éclairé 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 : 844
    Points
    844
    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 ?
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  11. #11
    Membre régulier Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Points : 90
    Points
    90
    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
    Copier sur un seul, c'est du plagiat. Copier sur deux, c'est de la recherche. [Wilson Mizner]

  12. #12
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    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.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  13. #13
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 832
    Points : 2 625
    Points
    2 625
    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  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    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.

Discussions similaires

  1. Avantages/désavantages de Webdev
    Par rafmos dans le forum WebDev
    Réponses: 34
    Dernier message: 24/12/2020, 11h18
  2. Python versus windev
    Par PaulNero dans le forum Général Python
    Réponses: 3
    Dernier message: 27/06/2011, 09h48
  3. Héritage : avantages / désavantages ?
    Par AlexC3301 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 04/10/2007, 15h12
  4. Avantages de Python ???
    Par Royd938 dans le forum Général Python
    Réponses: 12
    Dernier message: 06/08/2005, 18h24
  5. Avantage Désavantage structuration de Table SQL
    Par jflebegue dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/12/2004, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo