Introduction

Un peu d’histoire

Python est un langage de programmation objet interprété. Son origine est le langage de script du système d’exploitation Amoeba (1990). Il a été développé par Guido Von Rossum au CWI, à l’Université d’Amsterdam et nommé par rapport au Monthy Python’s Flying Circus.

Depuis, Python est devenu un langage de programmation généraliste (comp.lang.python est créé en 1994). Il offre un environnement complet de développement comprenant un interpréteur performant et de nombreux modules. Un atout indéniable est sa disponibilité sur la grande majorité des plates-formes courantes (BeOS, Mac OS X, Unix, Windows).

Python est un langage open source supporté, développé et utilisé par une large communauté: 300 000 utilisateurs et plus de 500 000 téléchargements par an.

Python, à quoi bon?

Pour résumer Python en quatre points forts.

  • Qualité L’utilisation de Python permet de produire facilement du code évolutif et maintenable et offre les avantages de la programmation orientée-objet.
  • Productivité Python permet de produire rapidement du code compréhensible en reléguant nombre de détails au niveau de l’interpréteur.
  • Portabilité La disponibilité de l’interpréteur sur de nombreuses plates-formes permet l’exécution du même code sur un PDA ou un gros système [1].
  • Intégration L’utilisation de Python est parfaitement adaptée l’intégration de composants écrit dans un autre langage de programmation (C, C++, Java avec Jython). Embarquer un interpréteur dans une application permet l’intégration de scripts Python au sein de programmes.

Quelques caractéristiques intéressantes:

  • langage interprété (pas de phase de compilation explicite)
  • pas de déclarations de types (déclaration à l’affectation)
  • gestion automatique de la mémoire (comptage de références)
  • programmation orienté objet, procédural et fonctionnel
  • par nature dynamique et interactif
  • possibilité de générer du byte-code (améliore les performances par rapport à une interprétation perpetuelle)
  • interactions standards (appels systèmes, protocoles, etc.)
  • intégrations avec les langages C et C++

Python ou pas Python?

Comme tout langage de programmation Python n’est pas la solution ultime à tous les besoins. Toutefois, on retrouve son utilisation dans différents contextes [successtory] comme Google, la NASA, YouTube, Industrial Light & Magic, le projet One Laptop Per Child, l’environnement Opie sur pocket PC, etc. Python est donc adapté pour réaliser de «grosses applications».

Quand Python?

Python est un très bon langage pour le développement agile cite{agile} et itératif. Il permet d’être réactif et évite le cycle lourd programmer / compiler / tester. De plus, le langage permet de vérifier très rapidement des hypothèses de mise en oeuvre. Une fois la solution réalisée en Python, il est alors toujours possible de l’optimiser davantage en re-développant certain de ses composants en C++ par exemple.

Python permet de produire des applications facilement extensibles non seulement par le développeur mais aussi dans certains cas par l’usager (de nombreuses librairies scientifiques sont disponibles).

Enfin, Python est un bon candidat pour l’automatisation de tâches systèmes. Le système d’administration de la distribution Gentoo Linux portage est développé en Python. Une partie au moins du support de l’intégration continue chez Google est fait en Python.

Quand pas python?

Dynamicité est rarement compatible avec haute performance, Python n’est donc certainement pas le meilleur langage pour faire du traitement intensif (calcul numérique, extraction de données, etc.). Mais il reste très pertinent pour piloter ce type d’applications.

Dans certain cas, les usagers préfèrent limiter l’utilisation de Python à l’aspect intégration de composants afin de produire des systèmes performants. La version Python fournit une preuve de concept ou une version fonctionnelle avant de re-développer les points faibles. Toutefois, les performances de Python sont souvent suffisante pour des applications à forte charge (cf. YouTube)

Une dernière remarque pour terminer, Python permet d’identifier rapidement une mauvaise idée...

[1]Même si un tel cas semblerait un peu bizarre.

Table des matières

Sujet précédent

Avant-propos

Sujet suivant

Premiers pas en Python

Cette page