masklinn í dag viðrar vel til loftárása | abx22 a écrit :
Bonsoir tout le monde,
Je voulais simplement savoir qu'elles sont les différences entre le Python et le C. Les avantages ? Inconvénients ? Et je voulais aussi savoir s'il était impératif d'avoir d'installé Python sur sa machine, pour exécuter le binaire codé en python ( ça peut parraitre absurde comme question, mais je ne suis pas sur que python créé des binaires. Voilà =) ) Merci beaucoup.
|
Python est un langage pûrement interprété "de très haut niveau", il ne permet pas de créer de binaires natifs (il permet de créer des fichiers exécutables en incluant l'interpréteur dans le package par contre, voir py2exe), donc il faut impérativement avoir le runtime Python installé sur la machine locale (un peu comme Java, donc) à moins d'avoir un package py2exe ou autre du même type.
Avantages de Python sur C:
- Beaucoup plus lisible
- Garbage Collector, donc pas de gestion manuelle de mémoire
- Beaucoup plus haut niveau, donc instructions et types natifs plus puissants/flexibles (Python a un type String natif, un type Array natif, un type Dict natif, ...)
- Autre conséquence du haut niveau du langage, il est beaucoup plus productif pour le programmeur
- Support natif pour la POO, le Higher Order Programming, la programmation fonctionnelle, ...
- Trivialement portable d'une architecture à l'autre, à moins d'utiliser des services spécifiques à une plateforme (e.g. si on utilise pywin32 ça ne va naturellement pas tourner sur Linux), et naturellement un seul script à distribuer pour tout le monde
- Interprété, donc pas de phase de compilation/linking/...
- Très bon support de l'introspection (demander à un objet quelles sont ses caractéristiques) et de la métaprogrammation (code modifiant du code)
- Fortement typé, donc impossible e.g. de dire à python de considérer un tableau d'entiers comme une chaîne de caractères, il faut impérativement effectuer une conversion explicite
- Facilité à trouver des libs de haut niveau (e.g. libs de screen scraping toussa)
- Pas de pointeurs
Inconvénients de Python par rapport à C:
- Pas compilé en code natif, donc beaucoup plus lent que C
- Très peu de choix d'implémentation, CPython est l'implémentation de base, on peut aussi utiliser Jython (qui tourne sur la JVM) ou IronPython (.Net), à comparer avec les douzaines de compilos C ayant tous leurs avantages et inconvénients (d'un autre côté, ça signifie qu'on a pas besoin de choisir son implé, le choix est fait d'office)
- Difficulté d'accès au très bas niveau (registres, interrupts, ...) puisqu'on a l'interpréteur entre soi et la machine (il est toutefois possible d'écrire des extensions Python en C pour gérer ça)
- Potentiellement moins optimisé au niveau mémoire (puisqu'en C il est possible de n'allouer que ce qu'on veut très exactement)
- Pas de pointeurs
- Il existe probablement des compilos C pour toutes les plateformes existantes (il y a quelques exceptions, mais elles ne sont pas bien impotantes). Python tourne sur beaucoup de plateformes, mais pas toutes
Voila, c'est à peu près comme ça que je le vois ---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
|