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.

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 !

 

 

 

Laisser un commentaire sur le blog