
Conçu comme un langage de script, Python peut être utilisé aussi bien pour les petites tâches de maintenance que pour les applications
complexes.
complexes.
Petit tour du propriétaire.
Python : un langage de script
Python : un langage de script
Le domaine des langages de programmation a longtemps mis en opposition les langages interprétés et les langages compilés. Les premiers permettent une écriture simple parfois considérée comme brouillonne, sont considérés comme plus lents car interprétés et seraient destinés à des petites tâches de maintenance. Les seconds, compilés, à l'écriture plus rigoureuse, seraient plus adaptés à la production des applications plus lourdes et complexes.
Python a été conçu comme un langage de script. Cependant, son implémentation multiparadigmes lui permet d'être utilisé aussi bien pour les petites tâches de maintenance, que pour une réelle application lourde. Petit tour du propriétaire dans le contexte actuel où les langages de script ont un regain d'intérêt.
Une licence compatible avec la GPL
La présentation exhaustive de l'historique de Python est disponible un peu partout sur la toile (Wikipedia, Python.org), je me contenterai d'une présentation succincte. Python est un langage créé en 1989 au CWI par Guido Van Rossum, qui avait besoin d'un langage de script et n'en
trouvait aucun correspondant à ses besoins. Python est inspiré de ABC, Modula 3, et du langage C.
"Le langage Python doit son nom aux Monthy Python" Lorsque Guido Van Rossum quitte le CNRI en 2000, Python alors en version 1.6.1 adopte une licence compatible avec la GPL. Depuis la version
2.1, Python est sous licence Python Software Foundation Licence, qui est dans les grandes lignes comparable à l'Apache Software Foundation Licence. Aujourd'hui, le développement de Python se poursuit sous la dictature bienveillante de Guido Van Rossum qui est depuis 2005 chez Google.
Python 2.6 : une transition en douceur vers Python 3.0
A la date de rédaction de cet article, la version stable de Python est la 2.6. Les évolutions prévues sont : Py3k (Python 3000 en fait Python 3.0).
py3k marque un tournant car il sera incompatible avec les versions précédentes du fait de la modification profonde de certains objets propres aux langages (chaînes, dictionnaires...). Py3K s'accompagne également d'une réorganisation de l'ensemble des bibliothèques standard. Python 2.6, disponible depuis octobre 2008, est la dernière version de la branche 2.x et est surtout destiné à permettre la transition en douceur entre le code 2.x et 3.0.
Enfin, notons que Python doit son nom aux Monthy Python, dont Guido VanRossum était un grand fan de la série Flying Circus, et non au serpent du même nom, bien que ce dernier sorte mieux en logo.
Un langage interprété au typage dynamique Python a été conçu comme un langage de script. Il s'agit donc d'un langage interprété au typage dynamique (ce qui ne l'empêche pas d'être fortement typé) et à l'écriture concise. Cependant, Python est avant tout un langage multi-paradigmes et permet aussi bien la programmation objet que fonctionnelle. Python bénéficie également d'une gestion dynamique de la mémoire à l'aide d'un mécanisme de comptage de références, il possède un système de gestion des exceptions, et est réflectif et introspectif.
Un langage extensible grâce à la possibilité d'interfacage avec des bibliothèques C Python est également extensible grâce à la possibilité d'interfacage avec des bibliothèques C. Enfin, si l'interpréteur officiel est écrit en C, ce qui le rend portable (aussi bien sous des systèmes Windows, MacOS, Linux/Unix que sous BeOS, Os2, voire des systèmes mainframe type os/400 ou z/OS), il existe diverses implémentations sous divers langages. Nous pourrons retenir Jython, implémentation en Java qui est capable par exemple d'interagir avec la bibliothèque fournie avec le SDK.
De l'outil d'administration serveur au système critique
Python a été conçu comme un langage de script. Cependant, son implémentation multiparadigmes lui permet d'être utilisé aussi bien pour les petites tâches de maintenance, que pour une réelle application lourde. Petit tour du propriétaire dans le contexte actuel où les langages de script ont un regain d'intérêt.
Une licence compatible avec la GPL
La présentation exhaustive de l'historique de Python est disponible un peu partout sur la toile (Wikipedia, Python.org), je me contenterai d'une présentation succincte. Python est un langage créé en 1989 au CWI par Guido Van Rossum, qui avait besoin d'un langage de script et n'en
trouvait aucun correspondant à ses besoins. Python est inspiré de ABC, Modula 3, et du langage C.
"Le langage Python doit son nom aux Monthy Python" Lorsque Guido Van Rossum quitte le CNRI en 2000, Python alors en version 1.6.1 adopte une licence compatible avec la GPL. Depuis la version
2.1, Python est sous licence Python Software Foundation Licence, qui est dans les grandes lignes comparable à l'Apache Software Foundation Licence. Aujourd'hui, le développement de Python se poursuit sous la dictature bienveillante de Guido Van Rossum qui est depuis 2005 chez Google.
Python 2.6 : une transition en douceur vers Python 3.0
A la date de rédaction de cet article, la version stable de Python est la 2.6. Les évolutions prévues sont : Py3k (Python 3000 en fait Python 3.0).
py3k marque un tournant car il sera incompatible avec les versions précédentes du fait de la modification profonde de certains objets propres aux langages (chaînes, dictionnaires...). Py3K s'accompagne également d'une réorganisation de l'ensemble des bibliothèques standard. Python 2.6, disponible depuis octobre 2008, est la dernière version de la branche 2.x et est surtout destiné à permettre la transition en douceur entre le code 2.x et 3.0.
Enfin, notons que Python doit son nom aux Monthy Python, dont Guido VanRossum était un grand fan de la série Flying Circus, et non au serpent du même nom, bien que ce dernier sorte mieux en logo.
Un langage interprété au typage dynamique Python a été conçu comme un langage de script. Il s'agit donc d'un langage interprété au typage dynamique (ce qui ne l'empêche pas d'être fortement typé) et à l'écriture concise. Cependant, Python est avant tout un langage multi-paradigmes et permet aussi bien la programmation objet que fonctionnelle. Python bénéficie également d'une gestion dynamique de la mémoire à l'aide d'un mécanisme de comptage de références, il possède un système de gestion des exceptions, et est réflectif et introspectif.
Un langage extensible grâce à la possibilité d'interfacage avec des bibliothèques C Python est également extensible grâce à la possibilité d'interfacage avec des bibliothèques C. Enfin, si l'interpréteur officiel est écrit en C, ce qui le rend portable (aussi bien sous des systèmes Windows, MacOS, Linux/Unix que sous BeOS, Os2, voire des systèmes mainframe type os/400 ou z/OS), il existe diverses implémentations sous divers langages. Nous pourrons retenir Jython, implémentation en Java qui est capable par exemple d'interagir avec la bibliothèque fournie avec le SDK.
De l'outil d'administration serveur au système critique
Enfin, Python trouve sa place dans des applications complexes. Son champ d'applications va donc du script (des outils de gestion de la distribution Ubuntu sont en Python) à l'application critique (Python est utilisé au contrôle de vol de la NASA) en passant par la mobilité : Nokia a
ouvert sa plate forme pour permettre le développement d'application en Python pour la série des N60, des plates-formes mobiles telle qu'OpenMoko permettent le développement d'applications en Python.
Il est possible d'intéragir avec un applicatif Python à travers des interfaces Web (avec le serveur d'application Zope ou le framework DJango),
mais aussi à travers des applications lourdes avec par exemple l'implémentation de Qt pour Python, PyQt.
Un interpréteur pour exécuter des instructions
Python est fourni avec un interpréteur qui se présente comme une console dans laquelle il est possible d'exécuter des instructions Python. Cet
environnement est pratique pour tester du code et explorer les instructions utilisées. Il est cependant préférable d'utiliser l'utilitaire iPython qui offre
de nombreuses fonctionnalités supplémentaires et des facilités syntaxiques.
PyDev : un plugin Eclipse pour le langage Python Pour une utilisation et une réutilisation, il est utile d'utiliser certains éditeurs, dont je citerai ici le plug-in PyDev pour Eclipse qui permet d'utiliser Eclipse comme IDE de développement d'un projet Python. Outre les facilités d'édition (coloration syntaxique, complétion...), l'IDE s'assurera de l'intégrité des caractères saisis, et entre autres la conversion des tabulations en espaces.
En effet, le plus déroutant pour un développeur est la syntaxe du code Python. Je ne vais pas paraphraser les didacticiels que l'on peut trouver partout sur le net, mais voyons un tour d'horizon racpide.
Un code qui se veut concis et lisible
Comme tout script originaire d'Unix, il doit commencer par un sha-bang, et une ligne spécifiant l'encodage comme dans l'exemple ci-dessous.
1. #!/usr/bin/env python
ouvert sa plate forme pour permettre le développement d'application en Python pour la série des N60, des plates-formes mobiles telle qu'OpenMoko permettent le développement d'applications en Python.
Il est possible d'intéragir avec un applicatif Python à travers des interfaces Web (avec le serveur d'application Zope ou le framework DJango),
mais aussi à travers des applications lourdes avec par exemple l'implémentation de Qt pour Python, PyQt.
Un interpréteur pour exécuter des instructions
Python est fourni avec un interpréteur qui se présente comme une console dans laquelle il est possible d'exécuter des instructions Python. Cet
environnement est pratique pour tester du code et explorer les instructions utilisées. Il est cependant préférable d'utiliser l'utilitaire iPython qui offre
de nombreuses fonctionnalités supplémentaires et des facilités syntaxiques.
PyDev : un plugin Eclipse pour le langage Python Pour une utilisation et une réutilisation, il est utile d'utiliser certains éditeurs, dont je citerai ici le plug-in PyDev pour Eclipse qui permet d'utiliser Eclipse comme IDE de développement d'un projet Python. Outre les facilités d'édition (coloration syntaxique, complétion...), l'IDE s'assurera de l'intégrité des caractères saisis, et entre autres la conversion des tabulations en espaces.
En effet, le plus déroutant pour un développeur est la syntaxe du code Python. Je ne vais pas paraphraser les didacticiels que l'on peut trouver partout sur le net, mais voyons un tour d'horizon racpide.
Un code qui se veut concis et lisible
Comme tout script originaire d'Unix, il doit commencer par un sha-bang, et une ligne spécifiant l'encodage comme dans l'exemple ci-dessous.
1. #!/usr/bin/env python
2. # -*- coding: UTF-8 -*
Python propose une manière originale pour écrire le code, dans le but de le rendre concis et lisible. Ainsi, du code Python s'écrit avec une instruction par ligne (bien qu'il soit possible d'en saisir plusieurs séparées par un point virgule) et les blocs sont délimités par l'indentation.
Attention à ce sujet, en fonction des environnements, une série d'espaces (" ") ne sera pas équivalent à une tabulation ("/expert/expert/expert/expert/t"). Des outils comme le plug-in PyDev pour Eclipse cité précédemment gère les conversions.
Un langage au typage dynamique Python est un langage au typage dynamique. Cependant, le typage des variables est très fort. Les types simples en Python sont assez communs
avec les autres langages : entiers, décimaux, chaînes... Python gère deux types d'entiers : le type int et le type long. Le type int dépend de l'architecture donnée et sera le plus communément représenté sur 32 bits, taille d'un registre, ce qui permet une optimisation des calculs à base
d'int. Le type long sera stocké en mémoire et ne sera ainsi limité que par la mémoire physique de l'ordinateur et donc virtuellement infini, mais moins optimisé.
Les chaînes de caractères sont comparables à celles qui se trouvent dans les autres langages. Il faut juste savoir qu'il s'agit d'un type immuable (non modifiable), mais accessible comme une liste. Notons aussi que Python gère nativement des types tel que les nombres complexes (z = x
+iy).
Pour en savoir plus ... : http://fr.wikipedia.org/wiki/Python_(langage)
Attention à ce sujet, en fonction des environnements, une série d'espaces (" ") ne sera pas équivalent à une tabulation ("/expert/expert/expert/expert/t"). Des outils comme le plug-in PyDev pour Eclipse cité précédemment gère les conversions.
Un langage au typage dynamique Python est un langage au typage dynamique. Cependant, le typage des variables est très fort. Les types simples en Python sont assez communs
avec les autres langages : entiers, décimaux, chaînes... Python gère deux types d'entiers : le type int et le type long. Le type int dépend de l'architecture donnée et sera le plus communément représenté sur 32 bits, taille d'un registre, ce qui permet une optimisation des calculs à base
d'int. Le type long sera stocké en mémoire et ne sera ainsi limité que par la mémoire physique de l'ordinateur et donc virtuellement infini, mais moins optimisé.
Les chaînes de caractères sont comparables à celles qui se trouvent dans les autres langages. Il faut juste savoir qu'il s'agit d'un type immuable (non modifiable), mais accessible comme une liste. Notons aussi que Python gère nativement des types tel que les nombres complexes (z = x
+iy).
Pour en savoir plus ... : http://fr.wikipedia.org/wiki/Python_(langage)
PC-NTIC
"Un consultant NTIC à vos côtés !"
Vous ne souhaitez plus bénéficier de ces informations ?
Indiquez-le simplement ici : webmaster@pc-ntic.fr
"Un consultant NTIC à vos côtés !"
Vous ne souhaitez plus bénéficier de ces informations ?
Indiquez-le simplement ici : webmaster@pc-ntic.fr
Aucun commentaire:
Enregistrer un commentaire