blog.notmyidea.org/content/code/2009-12-17-python-go.md
Alexis Métaireau 9df3b183b6 Enhanced UI & UX; Added New ISBN Plugin.
- Added the ability to display book cover for the category "Lectures" if ISBN cover is available.
- Moved author's name into a small tag for better hierarchy and readability.
- Implemented a feature to indicate link sizes depending on the number of articles associated with a given tag.
- Implemented a mini footer element displaying an RSS feed icon.
- Improved category display using description dictionary.
- Added a new plugin "isbn_downloader" to fetch ISBN information when needed.
- Included the count of articles for each category.
- Implemented changes for better layout and readability of tags and categories.
- Adjusted the layout of the webpage, improving the overall look of the page.
- Included "requests" in the requirements.txt for supplanting dependencies required by the new plugin and/or features.
2023-09-29 18:30:09 +02:00

108 lines
4.7 KiB
Markdown

# Python ? go !
Cela fait maintenant un peu plus d'un mois que je travaille sur un
projet en [django](http://www.djangoproject.org), et que,
nécessairement, je me forme à [Python](http://python.org/). Je prends
un plaisir non dissimulé à découvrir ce langage (et à l'utiliser), qui
ne cesse de me surprendre. Les premiers mots qui me viennent à l'esprit
à propos de Python, sont "logique" et "simple". Et pourtant puissant
pour autant. Je ne manque d'ailleurs pas une occasion pour faire un peu
d'*évangélisation* auprès des quelques personnes qui veulent bien
m'écouter.
## The Zen of Python
Avant toute autre chose, je pense utile de citer Tim Peters, et [le
PEP20](http://www.python.org/dev/peps/pep-0020/), qui constituent une
très bonne introduction au langage, qui prends la forme d'un *easter
egg* présent dans python
```bash
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
```
J'ai la vague impression que c'est ce que j'ai toujours cherché à faire
en PHP, et particulièrement dans [le framework
Spiral](http://www.spiral-project.org), mais en ajoutant ces concepts
dans une sur-couche au langage. Ici, c'est directement de *l'esprit* de
python qu'il s'agit, ce qui signifie que la plupart des bibliothèques
python suivent ces concepts. Elle est pas belle la vie ?
## Comment commencer, et par ou ?
Pour ma part, j'ai commencé par la lecture de quelques livres et
articles intéressants, qui constituent une bonne entrée en matière sur
le sujet (La liste n'est bien évidemment pas exhaustive et vos
commentaires sont les bienvenus) :
- [Dive into python](http://diveintopython.adrahon.org/)
- [A byte of
python](http://www.swaroopch.com/notes/Python_fr:Table_des_Matières)
- [Python: petit guide à l'usage du développeur
agile](http://www.amazon.fr/Python-Petit-guide-lusage-développeur/dp/2100508830)
de [Tarek Ziadé](http://tarekziade.wordpress.com/)
- [La documentation officielle
python](http://docs.python.org/index.html), bien sûr \!
- [Les vidéos du
pyconfr 2009](http://video.pycon.fr/videos/pycon-fr-2009/)\!
- Un peu de temps, et une console python ouverte :)
J'essaye par ailleurs de partager au maximum les ressources que je
trouve de temps à autres, que ce soit [via
twitter](http://www.twitter.com/ametaireau) ou [via mon compte
delicious](http://delicious.com/ametaireau). Allez jeter un œil [au tag
python](http://delicious.com/ametaireau/python) sur mon profil, peut
être que vous trouverez des choses intéressantes, qui sait\!
## Un python sexy
Quelques fonctionnalités qui devraient vous mettre l'eau à la bouche:
- [Le chaînage des opérateurs de
comparaison](http://docs.python.org/library/stdtypes.html#comparisons)
est possible (a\<b \<c dans une condition)
- Assignation de valeurs multiples (il est possible de faire a,b,c =
1,2,3 par exemple)
- [Les listes](http://docs.python.org/tutorial/datastructures.html)
sont simples à manipuler \!
- Les [list
comprehension](http://docs.python.org/tutorial/datastructures.html#list-comprehensions),
ou comment faire des opérations complexes sur les listes, de manière
simple.
- Les
[doctests](http://docs.python.org/library/doctest.html?highlight=doctest):
ou comment faire des tests directement dans la documentation de vos
classes, tout en la documentant avec de vrais exemples.
- Les
[métaclasses](http://www.python.org/doc/essays/metaclasses/meta-vladimir.txt),
ou comment contrôler la manière dont les classes se construisent
- Python est [un langage à typage fort
dynamique](http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language):
c'est ce qui m'agaçait avec PHP qui est un langage à typage faible
dynamique.
Cous pouvez également aller regarder [l'atelier donné par Victor Stinner
durant le Pyconfr 09](http://video.pycon.fr/videos/free/53/). Have fun
\!