|
|
| Gestion - Créer votre Blog - Prochain Blog |
|
|
Python (Un langage réflexif)Dimanche 18 Juin 2006 à 10h16:28 GMT -4.00 Python utilise une forme de typage dynamique appelé en anglais duck typing
Python est un langage de programmation interprété, multi-paradigme. Il autorise la programmation impérative structurée, orientée objet, et fonctionnelle. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions.
Dénomination Créé en 1989 par Guido van Rossum, ce langage trouve l'origine de son nom dans la série télévisée humoristique des Monty Python. Le langage est souvent representé par un python même si l'auteur a lui-même expliqué qu'il ne faisait en aucun cas référence au reptile. L'animal étant plus célèbre que le groupe de joyeux comédiens Monty Python, il s'est imposé rapidement. C'est ainsi que le site officiel Python.org utilise également l'icône du serpent. Intérêt de Python
Les langages de scripts comme Python s'intègrent à différents niveaux de la vie d'un logiciel : réalisation d'outils de développement, réalisation de prototypes, intégration de scripts dans les logiciels (voir Gimp, Inkscape, Blender), infrastructure logicielle (voir Zope), etc. Par rapport aux autres langages, Python apparaît comme un choix intéressant pour les entreprises, notamment pour les raisons suivantes :
De plus en plus de couches logicielles sont développées en Python :
Python est aussi un langage frontière:
En effet, les couches critiques temps réel ou à hautes performances échappent au développement pur Python : il faut alors simplement faire un wrapper python , sorte de passerelle inter-langage, vers une couche écrite en C ou autre (grace à SWIG, pyrex, ou le très puissant Boost.Python). Les performances sont au rendez-vous et peuvent etre encore améliorée avec des modules du genre just-in-time (JIT) compiler (psyco). L'informatique embarquée s'empare aussi de python (par exemple les mobiles NOKIA pour sa Series 60 : toolkit graphique - le Bluetooth - réseau GPRS - service de messagerie SMS - les scripts de déploiement). En outre, Python propose un mécanisme de typage fort (grace à l'API 'trait' ou au design pattern 'decorators' interne au langage) pour les applications exigentes en terme de sureté (applications scientifiques, militaires, nucléaires notamment).
Python s'étend à tout outil où le script assure l'efficacité et la force :
Références de sociétés utilisant Python
Python est utilisé dans de nombreux domaines dont
Ainsi, de nombreuses sociétés[2] utilisent Python, que ce soit pour des développements internes :
Ou pour des logiciels fournis au public :
Caractéristique du langage
Une syntaxe simple, quasi algorithmique, des types de données de haut niveau et des bibliothèques extensives rendent ce langage très attractif pour le développement rapide d'applications, comme langage d'extension d'applications, pour le développement de scripts, ou encore comme interface permettant de connecter des composants existants. Sa syntaxe facilite son apprentissage (prise en main en 1/2 journée) et en fait un candidat idéal aussi bien pour l'apprentissage de la programmation orientée objet que pour le développment d'application industrielles puissantes, peu coûteuses et fiables. Ceux qui connaissent Java auront peu de difficultés à programmer en Python.
Les langages dynamiques comparables à Python sont Perl, Ruby et Rexx et dans une certaine mesure Java, bien qu'il ne soit pas complètement dynamique.
Syntaxe
Les blocs sont identifiés par des espaces ou des tabulations (bien que les espaces soient très fortement recommandés). Il n'y a pas d'accolades comme en C/C++, ou de Begin ... End comme en Pascal. Cela oblige le programmeur à écrire un code lisible, à l'opposé de ce qu'on peut obtenir avec Perl, Ruby, ou Rebol, ce qui en fait un bon langage pédagogique. Des éditeurs de texte (pyScripter, Scite, jEdit, pydev pour eclipse, ...) aident à l'indentation automatique. Un langage réflexif
Grâce à un usage intensif des dictionnaires (sorte de table de hachage), Python permet d'explorer les divers objets du langage (introspection) et dans certains cas de les modifier (intercession). Système de type sous Python Python utilise une forme de typage dynamique appelé en anglais duck typing. C'est-à-dire que les opérations possibles sur une variable (i.e. son interface) sont déterminées en fonction de la valeur associée à la variable. En Python, le type d'une variable n'est pas explicitement déclaré et peut varier au cours du temps. Pour connaître l'interface d'une variable, il est possible soit de faire un test sur le type associé à la variable (par type() ou isinstance()) soit de réaliser un duck test (s'il marche comme un canard et crie comme un canard, alors c'est un canard). Le duck test consiste à tester l'existence ou non d'opérations dans l'interface de la variable, au moyen notamment de hasattr(). Le duck typing facilite la création de fonctions ou de méthodes pouvant être appliqués à des objets partageant une même interface, même s'il n'ont aucun lien d'héritage. Par exemple, il est possible de créer une fonction permettant de compter le nombre d'éléments disponibles dans une classe, une instance, un module ou une fonction, en utilisant le même ensemble d'instructions. Cependant, le duck typing ne permet pas de reconnaître le comportement associé à un objet.
Une parodie du duck test a été présenté par les Monty Python dans Sacré Graal, au moment où une femme se fait accusée de sorcellerie.
Implémentations
Le langage Python est placé sous une licence libre (copyleft). L'interpréteur Python est aujourd'hui disponible sur la majorité des plates-formes existantes (Amiga, *BSD, GNU-Linux, AIX, Solaris, Mac OS, Windows). L'interpréteur Python est lui-même écrit en C. Il existe une version écrite en Java appelée Jython, et même une version écrite en Python (en développement) : PyPy. L'utilisation des frameworks Java est aussi possible avec JPype (couplage de python avec la machine virtuelle Java via la technologie JNI). À l'instar de Perl, une des grandes forces du langage réside dans l'existence d'une bibliothèque standard très complète et d'un nombre important de bibliothèques externes. La bibliothèque standard supporte notamment de nombreux protocoles en usage pour la création de sites internet.
Outre l'implémentation de référence, nommée cpython (car écrite en langage C), on peut relever d'autres systèmes implémentant le langage python :
Attention, ces autres implémentations ne bénéficient forcément pas de la totalité de la bibliothèque de fonctions écrites en C pour l'implémentation de référence. Jython, d'un autre côté, a accès aux bibliothèques fournies avec l'environnement de développement Java.
Originellement Python a été développé comme un langage de script pour Amoeba, un système d'exploitation qui n'est plus maintenu.
Python peut être utilisé avec les bibliothèques graphiques tkinter, Qt, GTK et WxWidgets.
Python est livré avec 300 modules et dispose de 1300 bibliothèques tierces[3] parmis beaucoup d'autres ressources[4].
Grâce à SWIG, Boost, IronPython, Python for Delphi ou Jython, Python peut utiliser des frameworks écrit dans d'autres langages (C, C++, Fortran, Java, .Net, Delphi, ...).
Il est également utilisé pour programmer le serveur d'application Zope.
Versions
Les dernières versions utilisées sont la 2.3 et la 2.4. La future version sera la 2.5 (prévue pour fin 2006). Un développement parallèle est en discussion pour Python 3.0, qui devrait sortir entre les versions 2.6 et 2.7. Elle introduira des incompatibilités. Source : http://fr.wikipedia.org/index.php?voir=resultat&mots=Python Les Commentaires: Nom et Prénom
Mercredi 27 Janvier 2010 à 07h49:17 GMT -4.00
information générale utile
Alexandre Fournier
lundi 29 Juin 2009 à 22h43:05 GMT -4.00
Python 3.0 n'est pas compatible avec Python 2.x. Cependant, son système de gestion de fichiers avais des lacunes. Entièrement écrit en Python, un code utilisant le module io pouvait être 20x plus lent que son équivalent sur une version de la branche 2.x de python.
Le 26 juin 2009, Python 3.1 est sorti. Cette version corrige en effet le problème du module io. Le module a été complètement réécrit en C, ce qui le rend encore plus performant que le module io de la branche 2.x de l'interpréteur. D'autres modifications incluent quelques changements dans la syntaxe du langage, le rendant plus lisible sur certains points.
Écrire un commentaire
|
| Gestion du Blog | Conçu par : DynamiqueGestion |