{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pourquoi j’aime faire du python\n",
"\n",
"Matthieu Falce \n",
"2023-11-18\n",
"\n",
"## Le développement et moi\n",
"\n",
"Comme beaucoup d’entre vous, j’ai fait mes premiers programmes sur ma\n",
"calculette.\n",
"\n",
"Puis j’ai eu de vrais cours d’informatique en prépa. D’abord du Pascal\n",
"puis du C / C++. Et j’ai détesté. Globalement, ma créativité était\n",
"bloquée par le langage, je n’arrivais pas à exprimer correctement ce que\n",
"je voulais à l’ordinateur.\n",
"\n",
"Et puis j’ai eu un cours de Python en 2011 (python 2.6 ou 2.7).\n",
"\n",
"## Rencontre avec python\n",
"\n",
"Et là c’était fou. J’arrivais enfin à faire des programmes qui marchent.\n",
"\n",
"Que ce soit de l’algorithmie ou des interfaces graphiques, c’était la\n",
"première fois où je sentais que je maitrisais ce qui se passait.\n",
"Tellement, que j’en ai fait mon métier et que maintenant je l’enseigne\n",
"soit à des étudiants d’université soit à des professionnels en formation\n",
"continue.\n",
"\n",
"En venant du `C++` écrire `print(\"Hello World\")` et avoir quelque chose\n",
"qui s’affiche directement a quelque chose de magique.\n",
"\n",
"## Les forces du langage\n",
"\n",
"Avec un peu de recul, j’ai réussi à mettre le doigt sur ce qui me\n",
"plaisait vraiment dans ce langage :\n",
"\n",
"- **ne se met pas en chemin de la réflexion** : globalement exprimer\n",
" une idée en python n’est pas trop compliqué, le langage est “haut\n",
" niveau”, on peut se concentrer sur la destination que l’on veut\n",
" atteindre\n",
"- il est **raisonnable** : une syntaxe saine, des comportements\n",
" relativement cohérents et une importance à la lisibilité du code\n",
" écrit\n",
"- il est **simple sans être simpliste** : pour quelqu’un qui connait\n",
" l’informatique, apprendre les bases de Python prend une demi\n",
" journée. Pour les subtilités du langage c’est une autre histoire… Il\n",
" permet de découvrir des concepts assez avancés facilement\n",
" (programmation fonctionnelle, métaprogrammation, modification d’AST,\n",
" …)\n",
"- **l’écosystème** : globalement toutes les parties compliquées de vos\n",
" projets ont déjà été codées par quelqu’un d’autre et sont facilement\n",
" installable\n",
"- **le meilleur nul part mais excellent partout** : quel que soit le\n",
" projet, vous aurez toujours un language plus adapté (`R` pour la\n",
" “data”, `PHP` pour du web). Cependant dans les projets modernes qui\n",
" peuvent s’étendre à l’interface de plusieurs domaines sa généricité\n",
" est un atout.\n",
"\n",
"## Les faiblesses du langage\n",
"\n",
"Evidemment tout n’est pas rose. Au bout d’un moment on fini par voir les\n",
"limites.\n",
"\n",
"N’oubliez pas qu’il y a deux types de langages : ceux qui sont parfaits\n",
"et ceux que les gens utilisent.\n",
"\n",
"Voilà ce que j’ai remarqué :\n",
"\n",
"- le langage est **trop flexible** : les développeurs auront tendance\n",
" à prendre toute la liberté qu’on leur offre, ce n’est pas une bonne\n",
" chose à mon avis.\n",
"- c’est au développeur d’**être responsable** : corollaire du point\n",
" précédent. Là où les langages plus stricts ont des gardes fous, en\n",
" Python c’est au développeur et son équipe de les mettre en place\n",
"- l’écosystème est **chaotique** : si l’on ne comprend pas bien les\n",
" bases, installer des modules peut être un vrai calvaire\n",
"\n",
"## Et si c’était à refaire ?\n",
"\n",
"Je le referait sans aucun doutes. Mais différemment.\n",
"\n",
"J’ai mis vraiment longtemps à saisir certains concepts (par exemple les\n",
"décorateurs). Pour certains, je ne les ai compris qu’en préparant des\n",
"cours pour les expliquer (par exemple… les décorateurs) alors que je les\n",
"utilisais assez souvent. Mais ce n’était pas clair.\n",
"\n",
"Le problème ce n’est pas la difficulté des sujets ou sa soit-disant\n",
"incompétence. C’est de trouver des ressources de qualité, qui vous\n",
"expliquent simplement et sans *bullshit* ces sujets. Trouvez ces sources\n",
"n’est pas facile, et surtout elles changent au cours du temps, certains\n",
"projets n’étant plus mis à jours (au revoir Sam et Max, tu m’aura tout\n",
"appris).\n",
"\n",
"C’est pour cela qu’avec Yves nous avons décidé de lancer *Oh Ce Cours*\n",
"et ce blog. Pour partager nos ressources et notre expérience au plus\n",
"grand nombre.\n",
"\n",
"Que ce soit dans nos formations, dans l’académie ou dans nos articles,\n",
"nous essayons de vous exposer des sujets méconnus ou complexes, les\n",
"simplifier pour que vous ayez le déclic.\n",
"\n",
"Donc, si c’était à refaire, je lirai probablement les articles de ce\n",
"blog 😀"
],
"id": "f3888d06-87b0-4995-9ab9-7a93a9c8e99b"
}
],
"nbformat": 4,
"nbformat_minor": 5,
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "blog-oh-ce-cours",
"language": "python"
},
"language_info": {
"name": "python",
"codemirror_mode": {
"name": "ipython",
"version": "3"
},
"file_extension": ".py",
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.0"
}
}
}