 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Loïc Joly Guest
|
Posted: Sat Sep 20, 2003 10:38 am Post subject: Python / C++ |
|
|
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
|
Posted: Sat Sep 20, 2003 3:55 pm Post subject: Re: Python / C++ |
|
|
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
|
Posted: Sat Sep 20, 2003 5:04 pm Post subject: Re: Python / C++ |
|
|
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
|
Posted: Thu Oct 23, 2003 9:52 pm Post subject: Re: Python / C++ |
|
|
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++
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
|
Posted: Fri Oct 24, 2003 5:46 am Post subject: Re: Python / C++ |
|
|
"Jiba" a écrit :
| Quote: | 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é",
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
|
Posted: Fri Oct 24, 2003 11:38 am Post subject: Re: Python / C++ |
|
|
Jiba wrote:
| Quote: | les avantages de Python sont suffisamment nombreux pour que je n'aie jamais appris C++
|
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
|
|
| Back to top |
|
 |
Christophe de VIENNE Guest
|
Posted: Fri Oct 24, 2003 2:09 pm Post subject: Re: Python / C++ |
|
|
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
|
Posted: Fri Oct 24, 2003 5:39 pm Post subject: Re: Python / C++ |
|
|
Bonsoir,
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 .
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
|
Posted: Fri Oct 24, 2003 6:43 pm Post subject: Re: Python / C++ |
|
|
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
|
Posted: Fri Oct 24, 2003 9:23 pm Post subject: Re: Python / C++ |
|
|
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
|
Posted: Sun Oct 26, 2003 3:49 pm Post subject: Re: Python / C++ |
|
|
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 |
|
 |
|
|
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
|
|