Pourquoi j’aime faire du python

Ecosystème Python
Auteur·rice

Matthieu Falce

Date de publication

18 novembre 2023

Le développement et moi

Comme beaucoup d’entre vous, j’ai fait mes premiers programmes sur ma calculette.

Puis j’ai eu de vrais cours d’informatique en prépa. D’abord du Pascal puis du C / C++. Et j’ai détesté. Globalement, ma créativité était bloquée par le langage, je n’arrivais pas à exprimer correctement ce que je voulais à l’ordinateur.

Et puis j’ai eu un cours de Python en 2011 (python 2.6 ou 2.7).

Rencontre avec python

Et là c’était fou. J’arrivais enfin à faire des programmes qui marchent.

Que ce soit de l’algorithmie ou des interfaces graphiques, c’était la première fois où je sentais que je maitrisais ce qui se passait. Tellement, que j’en ai fait mon métier et que maintenant je l’enseigne soit à des étudiants d’université soit à des professionnels en formation continue.

En venant du C++ écrire print("Hello World") et avoir quelque chose qui s’affiche directement a quelque chose de magique.

Les forces du langage

Avec un peu de recul, j’ai réussi à mettre le doigt sur ce qui me plaisait vraiment dans ce langage :

  • ne se met pas en chemin de la réflexion : globalement exprimer une idée en python n’est pas trop compliqué, le langage est “haut niveau”, on peut se concentrer sur la destination que l’on veut atteindre
  • il est raisonnable : une syntaxe saine, des comportements relativement cohérents et une importance à la lisibilité du code écrit
  • il est simple sans être simpliste : pour quelqu’un qui connait l’informatique, apprendre les bases de Python prend une demi journée. Pour les subtilités du langage c’est une autre histoire… Il permet de découvrir des concepts assez avancés facilement (programmation fonctionnelle, métaprogrammation, modification d’AST, …)
  • l’écosystème : globalement toutes les parties compliquées de vos projets ont déjà été codées par quelqu’un d’autre et sont facilement installable
  • le meilleur nul part mais excellent partout : quel que soit le projet, vous aurez toujours un language plus adapté (R pour la “data”, PHP pour du web). Cependant dans les projets modernes qui peuvent s’étendre à l’interface de plusieurs domaines sa généricité est un atout.

Les faiblesses du langage

Evidemment tout n’est pas rose. Au bout d’un moment on fini par voir les limites.

N’oubliez pas qu’il y a deux types de langages : ceux qui sont parfaits et ceux que les gens utilisent.

Voilà ce que j’ai remarqué :

  • le langage est trop flexible : les développeurs auront tendance à prendre toute la liberté qu’on leur offre, ce n’est pas une bonne chose à mon avis.
  • c’est au développeur d’être responsable : corollaire du point précédent. Là où les langages plus stricts ont des gardes fous, en Python c’est au développeur et son équipe de les mettre en place
  • l’écosystème est chaotique : si l’on ne comprend pas bien les bases, installer des modules peut être un vrai calvaire

Et si c’était à refaire ?

Je le referait sans aucun doutes. Mais différemment.

J’ai mis vraiment longtemps à saisir certains concepts (par exemple les décorateurs). Pour certains, je ne les ai compris qu’en préparant des cours pour les expliquer (par exemple… les décorateurs) alors que je les utilisais assez souvent. Mais ce n’était pas clair.

Le problème ce n’est pas la difficulté des sujets ou sa soit-disant incompétence. C’est de trouver des ressources de qualité, qui vous expliquent simplement et sans bullshit ces sujets. Trouvez ces sources n’est pas facile, et surtout elles changent au cours du temps, certains projets n’étant plus mis à jours (au revoir Sam et Max, tu m’aura tout appris).

C’est pour cela qu’avec Yves nous avons décidé de lancer Oh Ce Cours et ce blog. Pour partager nos ressources et notre expérience au plus grand nombre.

Que ce soit dans nos formations, dans l’académie ou dans nos articles, nous essayons de vous exposer des sujets méconnus ou complexes, les simplifier pour que vous ayez le déclic.

Donc, si c’était à refaire, je lirai probablement les articles de ce blog 😀