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++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    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
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    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