CPython, Cython, PyPy… Un guide d’introduction aux différentes variantes de Python

Déc 19, 2021
admin

Si vous êtes dans la programmation Python, il y a de fortes chances que vous ayez entendu les mots CPython, Cython, Jython, PyPy…. Cependant, de quoi s’agit-il exactement ?

Dans cet article, nous ferons une petite introduction à certaines de ces variantes de Python, afin que vous puissiez au moins comprendre à quoi elles font exactement référence si vous les voyez dans un autre contexte.

CPython

CPython est l’implémentation originale de Python, celle que vous utiliserez probablement quotidiennement et que vous pouvez télécharger officiellement sur python.org. Son nom vient du fait que le code Python est compilé en bytecode en utilisant C.

Jython

Jython est une implémentation alternative qui utilise Java, au lieu de C, pour obtenir le bytecode. Cela permet à ce bytecode de s’exécuter dans la JVM, la machine virtuelle Java, comme d’autres langages tels que Kotlin, Scala ou Java lui-même.

Comme Jython son juste une autre implémentation, la syntaxe reste inchangée : vous pouvez prendre tout votre code CPython et l’exécuter sur Jython sans avoir besoin de changer une seule ligne.

Cython

Cython est un compilateur qui permet d’écrire des extensions C pour Python, généralement dans le but de le rendre plus efficace. Contrairement aux exemples précédents, n’est pas une implémentation différente : il utilise CPython pour exécuter le code Python. Il peut être considéré comme un superset de Python, car il contient toutes ses fonctionnalités et ajoute les capacités C supplémentaires par-dessus.

Ces extensions sont écrites dans une syntaxe spécifique, très similaire à celle que vous utiliserez pour écrire le code C équivalent. Voyons cet exemple (tiré du site Wikipedia de Cython)

def sum_up_to_n(n): a = 0 for i in range(n): a += i return acpdef sum_up_to_n(int n): cdef int a = 0, i for i in range(n): a += i return a

PyPy

Avec PyPy, nous avons une autre implémentation de Python comme CPython ou Jython. Le point intéressant de cette implémentation est qu’elle est implémentée dans…. Python lui-même (oui, probablement que cela vous a soufflé, alors continuez à lire pour comprendre ce que nous entendons par là)

Le cœur de PyPy est un compilateur Just-In-Time (JIT) qu’il utilise pour compiler les parties les plus répétées de votre code source vers le code natif de la machine (au lieu du bytecode, comme le faisaient CPython ou Jython). L’exécution du code natif est plus efficace que l’exécution du bytecode, donc cela peut entraîner de grandes améliorations de la vitesse, même en considérant le temps qui sera utilisé pour la compilation du code.

PyPy a beaucoup d’informations détaillées sur ses avantages (et inconvénients) dans son site Web, ainsi que quelques conseils de performance et des conseils sur les cas qui peuvent ne pas être les mieux adaptés pour lui, donc je vous encourage à le vérifier si vous êtes intéressé.

Résumé

Après cet article, vous devriez être plus familier avec les concepts de CPython, Jython, Cython et PyPy. Cependant, il y a des chances que vous soyez intéressé à en apprendre davantage sur eux, alors j’ai préparé une liste de liens qui peuvent être vraiment utiles si vous voulez plonger plus profondément dans le sujet. J’espère que vous les trouverez utiles!

Liens utiles

  • Python.org – Implémentations alternatives de Python
  • Le guide définitif de Jython
  • Site officiel de Cython
  • Site officiel de PyPy
  • Compilation juste à temps
  • Article sur Toptal à propos des implémentations de Python

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.