Python, langage de programmation du futur ?
Tout semble indiquer que si, et pourtant… Malgré sa popularité, justifiée, auprès des développeurs, certains experts pensent que Python sera bientôt dépassé par d’autres langages. Pour soutenir leur thèse, ils évoquent un certain nombre de points faibles qui, selon eux, briseront l’hégémonie de Python, voire précipiteraient sa chute.
La lenteur
Le moins que l’on puisse dire est que Python n’est pas rapide, une autre manière de dire qu’il est particulièrement lent. En moyenne, on estime que Python nécessite 2 à 10 fois plus de temps pour effectuer une tâche, par rapport à d’autres langages de programmation. De l’avis de Supinfo, la lenteur de Python est due à une combinaison de facteurs, au premier rang desquels le fait qu’il est typé dynamiquement. Rappelons que vous n’avez pas besoin de spécifier les types de données sur Python, à la différence d’autres langages de programmation.
Par conséquent, pour qu’il fonctionne proprement, Python est obligé de réserver assez d’espace pour chaque variable, ce qui signifie qu’il utilise beaucoup trop de mémoire. Et qui dit utilisation intensive de la mémoire, dit prolongement du temps de calcul. L’autre raison qui explique la lenteur du langage est qu’il ne peut exécuter plus d’une tâche à la fois.
La portée dynamique
Python avait au départ une portée dynamique. Autrement dit, un compilateur s’attelle à rechercher d’abord le bloc actuel avant de le faire pour l’ensemble des fonctions appelantes, dans le but d’évaluer une expression. Or, le fait que chaque expression doit être testée dans tous les contextes possibles en raison de la portée dynamique est particulièrement fastidieux. C’est la raison pour laquelle la grande majorité des langages de programmation actuels optent pour la portée statique. C’est d’ailleurs ce qu’a essayé de faire Python (passer à la portée statique), mais n’a pas réussi. En cause : contrairement à d’autres langages, les portées internes sur Python ne peuvent pas modifier les portées externes, ce qui amène beaucoup de confusion.
Utilisation restrictive des Lambdas
Personne ne peut nier la flexibilité de Python. Cela dit, l’utilisation de Lambdas demeure assez restrictive. Dans le détail, les Lambdas en Python ne peuvent être des instructions, seulement des expressions. De plus, les déclarations de variables et les instructions sont toujours des instructions, ce qui veut dire que Lambdas ne peut pas être utilisé pour eux. Ce n’est pas le cas dans d’autres langages.
Les espaces blancs (Whitespaces)
L’un des gros points forts de Python est son intuitivité et son attrait optique, rendus possible par l’utilisation des espaces et des retraits pour indiquer différents niveaux de code. Ce n’est pas le cas d’autres langages, notamment C ++, qui repose sur les accolades et les points-virgules, ce qui le rend moins attrayant visuellement et moins convivial, particulièrement pour les débutants. En revanche, cela rend le code plus facile à gérer, spécialement lorsqu’il s’agit d’un gros projet. Pour combiner utilité et attrait visuel, certains langages comme Haskell ont trouvé la solution : proposer des Whitespaces, tout en offrant une syntaxe alternative si l’utilisateur le souhaite.