C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Python / C++

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Loïc Joly
Guest





PostPosted: Sat Sep 20, 2003 10:38 am    Post subject: Python / C++ Reply with quote



Bonjour,

J'ai lu à plusieur reprises que le C++ et Python peuvent assez bien
fonctionner ensemble pour former un environnement de développement assez
intéressant.

Je n'y connais absolument rien en Python, et j'aimerai savoir quelles
sont ses caractèristiques qui lui peuvent lui donner des avantages sur
le C++ dans certains types de programmation.

Merci,

--
Loïc

Back to top
Bruno Desthuilliers
Guest





PostPosted: Sat Sep 20, 2003 3:55 pm    Post subject: Re: Python / C++ Reply with quote



Loïc Joly wrote:
Quote:
Bonjour,

J'ai lu à plusieur reprises que le C++ et Python peuvent assez bien
fonctionner ensemble pour former un environnement de développement assez
intéressant.

Je n'y connais absolument rien en Python, et j'aimerai savoir quelles
sont ses caractèristiques qui lui peuvent lui donner des avantages sur
le C++ dans certains types de programmation.


En vrac : langage 'multi-paradigme' (procédural, objet, fonctionnel),
avec toutefois une nette orientation objet, syntaxe claire et lisible,
types de données de haut niveau (listes, tuples, hash) en natif, gestion
des exception, typage dynamique fort - permettant une grande généricité,
gestion de la mémoire (par comptage de références), modulaire (modules
et packages), simple d'emploi, très expressif (par rapport à C++,
compter un rapport de 1 à 5, voire 1 à 10 selon le type de programmes),
riche bibliothèque en standard et beaucoups de bibliothèques externes de
bonne qualité, aisément extensible en C ou C++, aisément embarquable
dans du C ou du C++...

Il semble qu'un schéma courant soit de commencer à l'utiliser pour le
prototypage, avec en tête de tout réécrire en C++, pour finalement de ne
convertir en C ou C++ que les parties les plus critiques en terme de
performances !-)

Python n'est bien sûr pas adapté pour de la programmation système ou
quoique ce soit de bas niveau. Par contre, il excelle comme 'glue' entre
des composants (bibliothèques et/ou programmes) écrits dans des langages
de plus bas niveau. Cela permet d'utiliser les outils adaptés selon les
besoins : C ou C++ pour les parties sensibles, Python pour la logique.

Mais le mieux serait probablement de tester ? Si tu maîtrise déjà un
langage comme C++, tu devrais être productif en Python en quelques
heures. Attention, surtout en venant de C++, tu risque d'avoir la
(fausse) impression que Python est plus un jouet qu'un langage. Il n'en
n'est rien, il suffit de voire des applis comme Zope pour s'en convaincre.

Bruno


Back to top
Fabien SK
Guest





PostPosted: Sat Sep 20, 2003 5:04 pm    Post subject: Re: Python / C++ Reply with quote



On Sat, 20 Sep 2003 12:38:39 +0200, Loïc Joly wrote:

Quote:
Je n'y connais absolument rien en Python, et j'aimerai savoir quelles
sont ses caractèristiques qui lui peuvent lui donner des avantages sur
le C++ dans certains types de programmation.

Avantages:
- Beaucoup plus rapide à mettre en oeuvre
- Très facile à (re-)lire
- Une bibliothèque standard couvrant de nombreux domaines
- Extensible avec des bibliothèques écrites dans d'autres langages
si nécessaire (problèmes de perfs, la lib existe en C ou C++) avec swig
ou boost:python

Inconvénient:
- Pas aussi rapide que du C++; parfois utiliser des bibliothèques en
langage natif ne suffit pas
- A mon avis, le typage dynamique est un problème pour les gros projets


Back to top
Jiba
Guest





PostPosted: Thu Oct 23, 2003 9:52 pm    Post subject: Re: Python / C++ Reply with quote

On Sat, 20 Sep 2003 12:38:39 +0200
Loïc Joly <loic.actarus.joly (AT) wanadoo (DOT) fr> wrote:

Quote:
Bonjour,

J'ai lu à plusieur reprises que le C++ et Python peuvent assez bien
fonctionner ensemble pour former un environnement de développement assez
intéressant.

Je n'y connais absolument rien en Python, et j'aimerai savoir quelles
sont ses caractèristiques qui lui peuvent lui donner des avantages sur
le C++ dans certains types de programmation.

les avantages de Python sont suffisamment nombreux pour que je n'aie jamaisappris C++ Wink
Il y a la portabilité, la facilité d'apprentissage, le fait que ce soitun logiciel libre,...
l'un des avantages décisifs restent la vitesse avec laquelle on peut programmer en Python : en clair ce que tu mettras 1 semaine à faire en C++ tule feras en 1 jour en Python...

Jiba

Back to top
Philippe Guglielmetti
Guest





PostPosted: Fri Oct 24, 2003 5:46 am    Post subject: Re: Python / C++ Reply with quote

"Jiba" a écrit :
Quote:
les avantages de Python sont suffisamment nombreux pour que je n'aie jamais
appris C++ Wink
Il y a la portabilité, la facilité d'apprentissage, le fait que ce soit un
logiciel libre,...
l'un des avantages décisifs restent la vitesse avec laquelle on peut
programmer en Python :
en clair ce que tu mettras 1 semaine à faire en C++ tu le feras en 1 jour
en Python...


Dès fois, mais pas toujours. Python est un très bon langage "interprété",
vachement utile pour vite faire un p'tit truc.
Mais dans la même veine que VisualBasic, tout se passe à l'exécution, ce qui
a quelques inconvénients quand même, notamment au niveau de la performance.
Je ne connais pas de "gros" projet en Python, ça m'intéresserait de voir
comment ça se débrouille...
--
Philippe Guglielmetti - www.dynabits.com



Back to top
Martinez Jerome
Guest





PostPosted: Fri Oct 24, 2003 11:38 am    Post subject: Re: Python / C++ Reply with quote

Jiba wrote:


Quote:
les avantages de Python sont suffisamment nombreux pour que je n'aie jamais appris C++ Wink

tout comme plein de developpeurs Visual Basic n'ont jamais éprouvé le
besoin de passer au C++...
Tout comme des utilisateurs Windows n'ont jamais éprouvé le besoin de
passer a Unix...

J'associe Python a un VB très évolué.
Il y a de gros (!) projets en VB, ou en Python.
Python, c'est bien pour faire du prototypage car rapide a developper.
Pour de la production, hum!

Quote:
Il y a la portabilité,

c++ est portable

Quote:
la facilité d'apprentissage,

Gloups, la c'est vraie que C++ l'est moins... Mais pas tant que ca.

Quote:
le fait que ce soit un logiciel libre,...

C++ aussi (g++...)


Quote:
l'un des avantages décisifs restent la vitesse avec laquelle on peut programmer en Python : en clair ce que tu mettras 1 semaine à faire en C++ tu le feras en 1 jour en Python...

Ou tu auras perdu du temps, car tu devras le refaire car un truc ne sera
pas dispo en python, ou python sera trop lent.


PS : le seul "gros" projet que je connais en Python est Bittorent.
Marche bien


Quote:

Jiba


Back to top
Christophe de VIENNE
Guest





PostPosted: Fri Oct 24, 2003 2:09 pm    Post subject: Re: Python / C++ Reply with quote

Philippe Guglielmetti wrote:
Quote:
Je ne connais pas de "gros" projet en Python, ça m'intéresserait de voir
comment ça se débrouille...

<HS>

BOA, wxGlade... ça marche pas mal du tout.

</HS>

A+

Christophe


Back to top
Jean-Marc Molina
Guest





PostPosted: Fri Oct 24, 2003 5:39 pm    Post subject: Re: Python / C++ Reply with quote

Bonsoir,

Quote:
c++ est portable

Il est dit portable mais dans la pratique c'est une autre affaire. On peut
très bien programmer du C++ non portable, spécifique à une plate-forme sans
s'en rendre compte. Je pense aux développeurs Windows par exemple (surtout)
et Unix (sans doute). J'en sais quelque chose je suis brièvement passé de
Windows à Unix en pensant que tout était pareil :)

En Python ou Java, on a pas le choix, l'application développée est forcément
portable, c'est intrinsèquement lié aux langages. Après c'est à la machine
virtuelle qui se charge d'exécuter les scripts de faire le boulot !
Problèmes rencontrés par Sun il y a quelques années mais on en parle de
moins en moins (heureusement ^^).

Quote:
Gloups, la c'est vraie que C++ l'est moins... Mais pas tant que ca.

Disons qu'il y a beaucoup de concept à assimiler si on considère C++ comme
un langage C/C++ (grave erreur mais qui ne l'a fait pas ? moi le premier -
je viens du C) ou un langage purement objet (qui ne l'est pas - comme
Java/Smalltalk)... Il n'est ni l'un ni l'autre, C++ c'est un petit peu de
tout... Mais quel pied ! ^^

Quote:
C++ aussi (g++...)

Langage de programmation libre à code source ouvert.
Ce sont les EDIs ou éditeurs qui sont des logiciels utilisés pour
développer, coder, programmer, ramer parfois voir couler :)

Quote:
pas dispo en python, ou python sera trop lent.

Il existe tout un tas de wrapper et des technos comme COM/DCOM/COM++/GOMala
aident beaucoup (OpenGL & Cie, même faire du Java en Python... C'est dire
!).
Si tu jetes un coup d'oeil au répertoire Python de Google je peux te
garantir que tu trouveras de tout et de rien, voir plus qu'en C++ !

Les langages interprétés comme Python ou PHP restent très puissants et très
rapides. Peut-on parler de performance pour un logiciel avec une interface
graphique ? C'est au niveau des traitements qu'on le regrette parfois. Je
pense à Java qui est mi-compilé mi-interprété. Mais ça reste très rapide et
on peut même faire des jeux tout en 3D avec Java ! Sans compter que les
processeurs sont de plus en plus puissants. D'après moi les langages
interprétés, de scripts, sont nés suite aux nombreuses heures, voir jours,
de compilation que certains projets nécessitaient. Je me souviens encore de
projets C++ qui mettaient plus de 30 minutes à se recompiler complètement
(il y a 2 ans sur des 1GHz je crois). C'est tout l'intérêt des langages
scripts. Autre exemple développer un plugin pour une application genre
3DSMAX ou Adobe Photoshop. Avec C++ il faut compter 5 minutes pour tester
une simple ligne ! Il faut compiler le plugin et lancer le logiciel, quand
on parle de 3DSMAX... Ça prend des plombes ! Avec un langage script, c'est
instantané ! Il existe même un moyen pour compiler du Python ou du PHP pour
atteindre les performances de Java, il suffit d'avoir un bon serveur Web ou
d'avoir un interpréteur embarqué dans l'application (quand il faut vraiment
avoir de bonnes performances). A titre d'exemples il existe même des
interpréteurs C++, pas besoin de compiler ! Eh oui Smile.

Je connais surtout Python comme langage embarqué pour développer des jeux
vidéos (style LUA/Unreal Script).
Je pense que vous pourrez trouver une liste d'applications développées en
Python sur python.org ou le répertoire Google.

JM

--
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)



Back to top
Loïc Joly
Guest





PostPosted: Fri Oct 24, 2003 6:43 pm    Post subject: Re: Python / C++ Reply with quote

Jean-Marc Molina wrote:

Quote:
Bonsoir,


c++ est portable


Il est dit portable mais dans la pratique c'est une autre affaire.

Notre code C++ tourne sans problèmes sous Win32, Linux et Irix (sauf en
64 bits, mais on y travaille). Et l'effort demandé n'est pas très
important une fois qu'on a bien encapsulé les besoins propres à un
système par des appels indéterminés.

Quote:
On peut
très bien programmer du C++ non portable, spécifique à une plate-forme sans
s'en rendre compte. Je pense aux développeurs Windows par exemple (surtout)
et Unix (sans doute). J'en sais quelque chose je suis brièvement passé de
Windows à Unix en pensant que tout était pareil :)

En Python ou Java, on a pas le choix, l'application développée est forcément
portable, c'est intrinsèquement lié aux langages.

Ah bon ? Que fait ce genre de code sous Linux (extrait de
fr.comp.lang.python) :


import win32com.client
o = win32com.client.Dispatch("Excel.Application") o.Visible = 1
o.Workbooks.Open ( ... )

Ou encore :
mutex = CreateMutex ( None, 1, 'monmutexbienamoi' )
if (GetLastError ( ) == ERROR_ALREADY_EXISTS):
print 'Attente de disponibilité de la ressource'
sleep(10)
else:
attendre = False
print 'Ressource disponible, je poursuis'

Je veux bien croire que les particularités d'une plate-forme sont plus
isolées, mais elles existent tout autant dans l'un que dans l'autre.

--
Loïc



Back to top
Laurent DELEPINE
Guest





PostPosted: Fri Oct 24, 2003 9:23 pm    Post subject: Re: Python / C++ Reply with quote

Jean-Marc Molina wrote:

.. Autre exemple développer un plugin pour une application genre
Quote:
3DSMAX ou Adobe Photoshop. Avec C++ il faut compter 5 minutes pour tester
une simple ligne ! Il faut compiler le plugin et lancer le logiciel, quand
on parle de 3DSMAX... Ça prend des plombes !

C'est marrant, la compilation de mes programmes de tests ne me prend que
quelques secondes.


A+

LD


Back to top
Bruno Desthuilliers
Guest





PostPosted: Sun Oct 26, 2003 3:49 pm    Post subject: Re: Python / C++ Reply with quote

Philippe Guglielmetti wrote:
Quote:
"Jiba" a écrit :

les avantages de Python sont suffisamment nombreux pour que je n'aie jamais

appris C++ ;-)

Il y a la portabilité, la facilité d'apprentissage, le fait que ce soit un

logiciel libre,...

l'un des avantages décisifs restent la vitesse avec laquelle on peut

programmer en Python :

en clair ce que tu mettras 1 semaine à faire en C++ tu le feras en 1 jour

en Python...

Dès fois, mais pas toujours. Python est un très bon langage "interprété",

<précision>Byte-compiled, comme Java... </précision>

Quote:
vachement utile pour vite faire un p'tit truc.
Mais dans la même veine que VisualBasic, tout se passe à l'exécution, ce qui
a quelques inconvénients quand même, notamment au niveau de la performance.

les perfs ne sont effectivement pas le point fort de Python. Ce n'est en
rien un problème pour un bon nombre d'applications. Là où ça devient
effectivement un pb, il est toujours possible de recoder la partie
critique en C ou en C++.

Quote:
Je ne connais pas de "gros" projet en Python, ça m'intéresserait de voir
comment ça se débrouille...

Zope ?

bruno


Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.