Python, le langage le plus utilisé

Qu’est-ce que le langage Python ?


Histoire de Python

Le langage Python est un langage de programmation open-source.

Il a été créé en 1989 par Guido van Rossum et sa première version publique a été publiée en 1991.

Sa version 2.0 est sortie en 2000 et sa version 3.0 en 2008. Nous sommes actuellement à la version 3.10 du langage.

Il est réputé comme étant le langage de programmation le plus facile à apprendre.

Le nom Python vient de la série télévisée Monty Python's Flying Circus dont Guido était fan.

Caractéristiques principales de Python


Python est un langage avec un typage dynamique fort. Cela signifie que le typage des valeurs est effectué à la volée par l’interpréteur lors de l’exécution du code et non en amont (par exemple lors de la compilation). Le fort signifie que les conversions implicites de types sont impossibles.

Python est un langage interprété. Cela signifie qu’il n’est pas analysé et traduit en langage machine une fois pour toutes mais à chaque exécution du programme et qu’il est nécessaire d’utiliser un interpréteur à chaque exécution.

Python est un langage avec une gestion automatique de la mémoire par ramasse-miettes (garbage collector). Cela signifie que l’interpréteur va automatiquement allouer et libérer la mémoire utilisée par le programme.

Python est un langage multi-paradigmes. Cela signifie qu’il peut aussi bien être utilisé en programmation orientée objet (OOP), en programmation fonctionnelle, impérative etc.

Enfin, Python est un langage de haut niveau avec une syntaxe simple. Cela signifie que le langage cherche à être proche du langage naturel pour une facilité d’utilisation, contrairement à un langage de bas niveau qui chercher à être au plus prêt des caractéristiques techniques de l’ordinateur (registres, processeurs, mémoire etc).

Python version 3


La sortie de Python 3 a été effectuée en 2008, pourtant la fin de vie de Python 2 n’est arrivée qu’en 2020.

La version 3 a introduit des changements importants au langage pour réparer des problèmes inhérents aux premières versions.

Le changement principal est l’utilisation d’Unicode à la place de l’ASCII pour toutes les chaînes de caractères. Il faut se rappeler que Python est sorti avant la première version d’Unicode, ce qui explique qu’il n’avait pas intégré le standard au cœur du langage.

L’adoption de la version 3 a été très longue par la communauté car elle imposait de refactoriser le code existant et d’attendre que toutes les librairies utilisées par son projet aient effectué cette refactorisation. En effet, le code écrit en Python 2 n’est pas compatible avec Python 3 sans effectuer quelques changements.

Pour cette raison, des entreprises aussi grandes que Dropbox (migration en 2018) ou Instagram (migration en 2017) ont attendu un long moment avant de se décider à effectuer la migration et ont mis longtemps à le faire (par exemple 10 mois pour Instagram ou 3 ans pour Dropbox).

Pour cette raison, il ne devrait pas y avoir de version 4 de Python. Les changements breaking ayant eu lieu et l’expérience de migration vers la version 3 ayant été très compliqués.

Utilisations de Python

La quasi-totalité des entreprises utilisent Python pour certains projets. Si vous souhaitez quand même connaitre quelques noms : Google, Intel, IBM, la NASA, Pixar, Netflix, Facebook, Instagram, Spotify, JP Morgan Chase, Amazon etc.

Langage le plus utilisé pour la science des données (data science)

Python est de loin le langage le plus utilisé pour la science des données.

Par exemple pour les opérations sur les matrices et les tableaux multidimensionnels, l’une des librairie les plus utilisées est Numpy.

Fichier:NumPy logo 2020.svg — Wikipédia

Autre exemple, Pandas est la librairie la plus utilisée pour la manipulation et l’analyse de données.

Pandas — Wikipédia


Pour l’apprentissage automatique (machine learning) des librairies Pythons très célèbres sont Keras, SciKit-Learn, PyTorch ou TensorFlow.

Pour la visualisation de données, Python a également un grand nombre de librairies extrêmement connues comme : Matplotlib, Seaborn ou Pandas (qui permet aussi de visualiser des données).

Programmation d’applications Web


Django Community | Django

Python peut également être utilisé pour développer des applications Web en utilisant les frameworks Django et Flask.

Data Mining et Scraping

Créer un jeu de données avec Scrapy | Le Data Scientist


Python est également très utiliser pour la récupération de données sur le Web.

Les librairies les plus connues étant Scrapy et BeautifulSoup.

Communauté du langage Python

Python est le langage avec la plus forte croissance et par exemple le plus de questions sur Stackoverflow depuis mi-2018 :

Même chose sur les moteurs de recherche, selon l’index TIOBE qui fait référence, Python est le langage le plus populaire au monde (plus de résultats dans Google, Bing, Yahoo!, Wikipedia, Youtube et Baidu).

Un autre chiffre impressionnant quant à son utilisation est qu’il existe plus de 1,5 million de répertoires utilisant le langage Python sur Github.

Selon la dernière étude mondiale de Stackoverflow, Python est le langage que les développeurs souhaitent le plus apprendre et ce pour la 5ème année consécutive !

Il s’agit également du 3ème langage le plus utilisé par la communauté Stackoverflow (qui est la plus grande communauté de développeurs au monde) :

Différence entre langages compilés et interprétés

Nous allons voir plus en détail la différence entre les langages dits “compilés” et ceux dits “interprétés”.

Les langages compilés sont directement convertis en code machine par une étape de compilation qui doit être exécutée avant de pouvoir exécuter le programme. Ces langages sont plus rapides à l’exécution que les langages interprétés. Le développeur a plus de contrôle sur la gestion des aspects matériels : comme le contrôle de l’utilisation de la mémoire ou du processeur. En contrepartie, il est bien plus long et bien plus difficile d’écrire un programme et il faut recompiler le code à chaque changement avant de pouvoir l’exécuter. Des exemples de langages compilés sont C, C++, Go, Rust etc.

Les langages interprétés sont directement lus, analysés et exécutés ligne par ligne par l’interpréteur. Il n’y a donc pas besoin de compiler le code au préalable, il peut être exécuté immédiatement. Des exemples de langages interprétés sont PHP, JavaScript et Dart.

Aller plus loin : Python, est interprété ou compilé ?

Pour être plus précis, Python est uniquement un langage de programmation qui est un ensemble de règles de syntaxe et n’est donc pas en soit interprété ou compilé.

C’est l’implémentation du langage dans un interpréteur ou un compilateur qui rend le langage interprété ou compilé.

Aujourd’hui, les langages dits “interprétés” ont souvent une ou plusieurs étapes de compilation à la volée pour rendre leur exécution plus rapide. Autrement dit, l’interpréteur ne va pas directement traduire le code source que vous écrivez en code machine car c’est beaucoup moins performant.

Par exemple, dans le cas de l’interpréteur CPython (l’interpréteur par défaut écrit en C), le code source (fichiers qui finissent par .py) est d’abord compilé à la volée (lors de l’exécution) en bytecode (code intermédiaire entre les instructions machines et code source) par l’interpréteur. Cela permet de le rendre plus performant avant de le convertir en code machine. Ce bytecode est lui-même interprété par la machine virtuelle de CPython.

Un autre exemple d’interpréteur est PyPy qui va compiler le code juste avant l’exécution, dans ce cas on parle de compilation à la volée (just-in-time compilation ou compilation JIT).

Le code peut même être compilé dans un autre format de bytecode pour être exécuté par un autre environnement, par exemple Java (avec l’interpréteur Jython) ou en .NET (avec l’interpréteur IronPython).

Donc comme pour beaucoup de choses en programmation c’est un peu plus complexe que de simplement dire que Python est “un langage interprété”.

En prenant, l’exemple le plus commun de l’interpréteur CPython, le code est d’abord lu et analysé, puis converti en bytecode qui sera interprété en code machine et exécuté par la PVM (Python Virtual Machine), autrement dit la machine virtuelle de CPython.

Python est un langage extensible

Le fait que Python soit souvent implémenté en C (par exemple pour l’interpréteur CPython, le plus utilisé), le rend très facilement extensible en ajoutant du code en C.

Si vous avez besoin de fonctionnalités bas niveau, vous pouvez très bien ajouter une librairie codée en C puis l’utiliser dans votre code Python.

C’est le cas de nombreuses librairies, ce qui permet de pouvoir ajouter un très grand nombre de fonctionnalités suivant vos besoins.

Commencez notre formation Python dès à présent !