In Python we trust
Dans mon précédent billet, j’ai décrit les nouvelles caractéristiques de nos robots ESP32. Si j’avais à résumer l’esprit de ces nouvelles caractéristiques, je dirais qu’elles n’ont qu’un seul but : permettre de programmer les robots en Python – et donc permettre d’introduire le langage Python aux élèves. L’utilisation de ce langage est une avancée immense, qui va nous permettre de couvrir tous les aspects de l’informatique, de la fin du collège au doctorat en informatique.
Python : infiniment simple pour commencer, infiniment puissant pour continuer
Scratch est un langage remarquable pour faire débuter les enfants. Python permet de démarrer de façon presqu’aussi simple que Scratch : sa syntaxe est simple, il est concis et facile à prendre en main. Ce qui rend ce langage exceptionnel et unique, c’est qu’il est aussi d’une grande puissance symbolique et supporte naturellement les pratiques les plus avancées en matière de développement de code informatique – appelons cela le génie logiciel. Ce que le débutant ne peut évidemment pas concevoir au départ, l’expert en informatique va pouvoir le réaliser grâce à la puissance du langage et à la façon dont il a été conçu. C’est pourquoi Python est non seulement le langage le plus utilisé pour enseigner, mais est aussi devenu le plus utilisé pour la recherche et le développement informatique en général. Les meilleures librairies pour faire de l’intelligence artificielle (le fameux “deep learning”) ont par exemple été développées en Python.
L’esprit du Python
Tout ceci – ce que j’appelle l’esprit du langage – il m’est assez difficile de le faire sentir dans un billet. Python est le langage informatique où les notions d’élégance et de beauté ont été poussées à l’extrême, au détriment initial de toute utilité pratique – mais de cette réflexion est paradoxalement sorti le langage informatique le plus utile au monde. Si j’étais un tant soit peu mystique, le verset suivant me viendrait probablement à l’esprit :
Cherchez la Vérité et tout le reste vous sera donné par surcroît
En langage geek, cela donne les aphorismes ci-dessous, le fameux “Python Zen” que je vous traduis simplement sans les commenter. Tous les développeurs expérimentés comprendront de quoi il s’agit, les autres peuvent s’inscrire à nos futurs cours Algora pour adultes, à partir du mois de Janvier, dans les meilleures écoles de robotique Algora.
Quant aux enfants, contrairement à Mowgli, ils pourront faire confiance au Python.
The zen of Python / la ballade du Python
Beautiful is better than ugly / Beau, c’est mieux que moche
Explicit is better than implicit / Explicite, c’est mieux qu’implicite
Simple is better than complex / Simple, c’est mieux que complexe
Complex is better than complicated / Complexe, c’est mieux que compliqué
Flat is better than nested / En ligne, c’est mieux qu’imbriqué
Sparse is better than dense / Aéré, c’est mieux que dense
Readability counts / La lisibilité compte
Special cases aren’t special enough to break the rules / Les cas particuliers ne le sont pas assez pour faire des exceptions aux règles
Although practicality beats purity / Cependant, mieux vaut faire pratique que pur
Errors should never pass silently / Les erreurs en doivent jamais être exécutées en silence
Unless explicitly silenced / Sauf si on le leur a explicitement demandé
In the face of ambiguity, refuse the temptation to guess. / Confronté à l’ambigüité, ne cède pas à la tentation qui consiste à tenter de simplement deviner
There should be one– and preferably only one –obvious way to do it. / Il devrait y avoir une bonne façon – et si possible une seule façon – de le faire
Although that way may not be obvious at first unless you’re Dutch. / Même si à première vue cette façon n’est pas évidente, sauf si tu es hollandais.
Now is better than never / Mieux vaut tôt que jamais.
Although never is often better than *right* now / Mais souvent, mieux vaut jamais que “juste” trop tôt
If the implementation is hard to explain, it’s a bad idea / Si l’implémentation est complexe à expliquer, c’est une mauvaise idée
If the implementation is easy to explain, it may be a good idea / Si l’implémentation est simple à expliquer, c’est peut être une bonne idée.
Namespaces are one honking great idea — let’s do more of those! / Les espaces de nommage sont une grande et brillante idée – utilisons les plus !
Billets associés :


