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

C++ Discussion :

C++ et Python


Sujet :

C++

  1. #1
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut C++ et Python
    Bonjour à tous,

    Notre équipe de développement arrive au bout d'un projet. Au bilan, un beau logiciel de traitement d'images et de vidéos de physique est né, avec une interface WxWidget. Le logiciel est somme toute, assez imposant ( ~80 000 lignes de code). Le coeur (IHM + squelette traitement) est en C++, avec un système de plugin Python (embarqué via Boost.Python) pour pouvoir intégrer des algos de maquettage rapidement. Ce système hybride est assez sympa, puisque rapide et modulaire.
    Par contre, le succès montant de Python m'a poussé à me poser 2 questions. Etant donné le nombre croissante de bibliothèque Python (Tracé de graphe, ... ), plus la souplesse du langage, je me suis demandé si
    1. Un "coeur" Python avec des algos Python et C++ (quand on a besoin de rapidité) n'était pas mieux tout compte fait. Disons, plus souple pour la modification plus tard (ajout de bouton, script python qui peuvent contrôler l'interface), et puis plus simple à coder.
    2. Un coeur Python risque t-il de beaucoup ralentir par rapport à un coeur C++ pour un gros logiciel ?


    Merci pour vos éclaircissements,

    Poukill

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Ayant des problématiques équivalentes et me posant les mêmes questions, je suis intéressé par cette discutions !
    Pour ma part je vois les choses avec les arguments suivants :
    * ton historique, comme nous ton moteur est fait et il est en c++
    * la pérennité de c++ est importante (à priori je dirai plus que celle de python : tes plugins python sont-ils compatible Python 3000 ? )
    * dans le domaine de l'imagerie et de la visualisation, c++ est quand même pas mal.

    Alors après j'ai aucun soucis avec Python, au contraire ! S'il n'y avait pas les problèmes historiques (on repart de rien), là je dis pas.

    Si ton "coeur" d'application est un cœur en grande partie d'IHM d'application (envoie de message, maintient des objets, serialisation, accès données, cache, ...), je pense que la différence de perf C++/Python est invisible. Si maintenant, c'est de l'imagerie temps réel (ou quasi), là le choix se portera surement sur C++.

    Enfin, il y a peut-être la question des threads au niveau coeur d'application. Si c'est python qui doit être en charge des threads, si je ne me trompe pas, tu auras plus de difficulté et des performance moindre que dans le cas de C++.

    /Johan

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Je vais me contenter d'émettre une idée toute pragmatique, mais, n'aurais tu pas la possibilité d'envisager de coder un "mini coeur" en python (tu sais, juste les 5 à 10% du code réellement "critique" du point de vue des performances ) et de faire des bench

    Maintenant, beaucoup plus pragmatique, encore...

    L'un dans l'autre, ce projet a nécessité un temps de conception et de mise au point sans doute important (même si ce n'est que quelques mois ), et vous avez visiblement trouvé "couple gagnant" qui vous permet de respecter vos spécificités et vos besoins d'évolutivité, de maintenance et de performances.

    Ne serait-il pas dommage d'envisager de "tout mettre au bac" simplement pour ne pas avoir pensé à se poser cette question plus tôt

    Car, malgré tout, si l'on peut estimer qu'une bonne partie de l'analyse peut être réutilisée, il n'en reste pas moins que ce que tu envisages ici n'est rien d'autre que de jeter le temps qu'il a fallu pour écrire les 80.000 de code (avec les problèmes que peut avoir posé ce seul fait) pour reprendre quasiment depuis le début, avec le risque inhérent de se heurter à d'autres problèmes du fait du changement de langage
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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