Think like real Sharkz.
Thinking

A collection of our latest insights and ideas
to help your business grow.

Python es-tu lent ? Use Cases et comparaison avec ses confrères :) Retour à la liste des articles

Le Python est bien connu pour être l’un des langages de programmation les plus utiles. Vous pouvez presque tout faire avec lui, des applications Web, en passant par le traitement d’images, jusqu’à la data science et du machine learning. C’est comme un couteau suisse pour les programmeurs. Cependant, certains continuent de prétendre plusieurs superstitions.

Bien que le Python soit facile à apprendre en raison de sa syntaxe et du fait qu’il s’agit d’un langage de programmation dynamique, certain mentionne qu’il pourrait être trop lent. Chez IT Sharkz nous avions des doutes similaires, mais notre expérience depuis nous a prouvé que ces inquiétudes n’étaient pas fondées. Nous allons donc essayer de vous exposer la vérité aussi objectivement que possible.

Que signifie le fait qu’un langage est lent ?

Chaque langage de programmation peut être décrit de différentes manières. En termes d’efficacité du langage, deux catégories viennent à l’esprit : la vitesse de production et ses performances. Dans laquelle de ces catégories pourrait-on dire que le Python est lent ? Vérifions !

Vitesse de Production / livraison

Dans de nombreux cas, la vitesse de production et livraison d’une langue est son paramètre le plus important. Elle nous indique quand nous pouvons potentiellement attendre la livraison d’une application finie et nous permet de concevoir un calendrier de sortie approprié. Comme le Python peut être utilisé à presque toutes les étapes d’un projet (étant donné que nous pouvons l’utiliser pour créer l’application, la tester et préparer l’environnement du projet), un seul développeur qualifié pourrait s’occuper de tout le processus de production du début à la fin.

En raison de la vitesse de développement plus élevée, l’utilisation du Python pourrait en effet se traduire par un plus petit nombre de développeurs requis pour un projet, ce qui apporterait l’avantage supplémentaire de réduire les coûts du projet.

Mais s’occuper d’un projet ne consiste pas seulement à créer de toutes nouvelles applications, cela signifie aussi une maintenance et un support continu. Le code écrit en Python est très clair et facile à lire grâce à sa syntaxe et à la norme PEP8.

Graphique indiquant le nombre d’heures nécessaires en moyenne pour résoudre un problème (Prechelt and Garret

Comme vous pouvez le voir dans le graphique ci-dessus, il ne fait aucun doute que le Python à un très bon rendement comparé autres langages en termes de vitesse de production.

Performance

Ce paramètre nous indique à quelle vitesse un langage de programmation peut traiter un problème. À l’heure actuelle, les langages qui brillent le plus à cet égard sont le C et le C++. En effet, il est logique de les utiliser dans certains cas, comme la création de jeux vidéo, des compilateurs, ou chaque fois qu’il faut effectuer un grand nombre de calculs et bien contrôler la mémoire. Mais qu’en est-il des autres cas ?

Chaque cas d’utilisation mentionné ci-dessus nécessite une énorme quantité de calculs. Néanmoins, Python continue d’être le langage le plus populaire utilisé dans l’apprentissage machine ou le traitement d’images. Laissez-moi maintenant vous expliquer pourquoi.

Dans le premier paragraphe, j’ai mentionné que le Python est souvent accusé d’être lent, ce qui n’est que partiellement vrai. Je ne veux accuser personne, mais la vérité est que la plupart du temps cet argument est utilisé par les débutants.

Si votre projet utilise du machine learning, le plus souvent, il devra s’appuyer sur certaines bibliothèques externes, comme SciKit et TensorFlow, qui sont toutes deux disponibles pour du Python.

Comme ces bibliothèques sont écrites en C++, lorsqu’elles sont utilisées dans des scripts en Python, nous utilisons le C++ en arrière-plan. Cela rend le processus de développement rapide et rend notre script aussi rapide que ceux écrits en C++. Il en va de même pour le prétraitement des images (bibliothèque OpenCV). Vous pouvez clairement voir que dans ce cas également, Python sert de « wrapper » pour le C++.

Développement web

Python est parfait pour créer des applications Web. Et lorsque vous commencez votre voyage de développement Web, il n’est pas exactement facile de choisir votre premier cadre de travail Web et lorsqu’il s’agit de Python, la sélection proposée est assez large : nous avons DjangoFlaskTurboGears et bien d’autres.

Django est de loin le framework Web Python le plus populaire, et il alimente certaines des plus grandes applications et certains des plus grands sites Web que vous connaissez, notamment Spotify, et YouTube (bien qu’il ait été initialement construit en PHP), et BitBucket.

Si le Python était aussi mauvais que certains le prétendent, ces projets n’auraient probablement pas eu autant de succès qu’ils en ont eu. De plus, supposer que les performances d’une application Web dépendent uniquement du code et du langage choisi est une énorme erreur. 

Les performances d’une application dépendent d’un certain nombre de facteurs et un code correctement écrit et optimisé n’en est qu’un parmi d’autres. Les performances globales sont également limitées par des bottlenecks. Qui sont-ils ? Eh bien, le nom est assez explicite. La vitesse des fluides est limitée par les bottlenecks (goulets d’étranglement) qu’elle rencontre. Ce qui différencie un bon développeur d’un mauvais développeur, c’est que les bons savent quand optimiser le code. Nick Humrich, gourou du Python et ancien ingénieur d’Amazon, explique très bien ce sentiment :

If your optimizations aren’t touching the bottleneck, you’re wasting your time and not fixing the real issue. You won’t get any serious improvements until you optimize the bottleneck (…) Optimizing code before you measure and determine where the bottleneck is, is known as “premature optimization ». – Nick Humrich 

Si vous pensez toujours que l’optimisation est la chose la plus importante pour augmenter la vitesse de l’application, peut-être que quelqu’un comme Donald Knuth, l’auteur de The Art of Computer Programming, vous convaincra :

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. – Donald Knuth 

Passer d’innombrables heures à améliorer le code juste pour le rendre quelques nanosecondes plus rapides n’a aucun sens, surtout du point de vue du client.

Conclusion

Le Python est-il lent ? Bien que le code en Python natif puisse sembler avoir un temps d’exécution élevé, surtout si l’on considère les références, lorsqu’il s’agit d’une utilisation commerciale, la vitesse qu’il offre est plus que satisfaisante pour la plupart des applications.

Qu’est-ce qui rend le Python si puissant ? Principalement sa vitesse de développement de haut niveau et la variété de ses utilisations. En outre, il serait difficile de trouver un langage de programmation qui rende le développement d’applications plus facile et agréable que du Python.

Autor
victor
En savoir plus
  • Développer en Pologne ?

    Ce n'est pas une coïncidence si chaque jour, d'innombrables entreprises étrangères comptent sur les développeurs polonais pour leur fournir des softs essentiels à leurs business. 📈
    Si vous n'avez pas encore découvert les forces de la Pologne, nous vous avons pré

    Lire tout l'article
    Autor
    victor
//