mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
123 lines
No EOL
6.7 KiB
HTML
123 lines
No EOL
6.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" href="./theme/css/main.css" type="text/css" media="screen" charset="utf-8">
|
|
<link href="./feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis' log ATOM Feed" />
|
|
<title>Alexis Métaireau</title>
|
|
</head>
|
|
<body>
|
|
<div id="top">
|
|
<p class="author"><a href="./about.html">Alexis Métaireau</a>'s thoughs</p>
|
|
<ul class="links">
|
|
<li><a href=".">↵ </a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="content clear">
|
|
<h1>Python ? go !</h1>
|
|
<p class="date">Published on Thu 17 December 2009</p>
|
|
<p>Cela fait maintenant un peu plus d'un mois que je travaille sur un
|
|
projet en <a class="reference external" href="http://www.djangoproject.org">django</a>, et que,
|
|
nécessairement, je me forme à <a class="reference external" href="http://python.org/">Python</a>. 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'<em>évangélisation</em> auprès des
|
|
quelques personnes qui veulent bien m'écouter.</p>
|
|
<div class="section" id="the-zen-of-python">
|
|
<h2>The Zen of Python</h2>
|
|
<p>Avant toute autre chose, je pense utile de citer Tim Peters, et
|
|
<a class="reference external" href="http://www.python.org/dev/peps/pep-0020/">le PEP20</a>, qui
|
|
constituent une très bonne introduction au langage, qui prends la
|
|
forme d'un <em>easter egg</em> présent dans python</p>
|
|
<div class="highlight"><pre>>>> 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<span class="s1">'t special enough to break the rules.</span>
|
|
<span class="s1">Although practicality beats purity.</span>
|
|
<span class="s1">Errors should never pass silently.</span>
|
|
<span class="s1">Unless explicitly silenced.</span>
|
|
<span class="s1">In the face of ambiguity, refuse the temptation to guess.</span>
|
|
<span class="s1">There should be one-- and preferably only one --obvious way to do it.</span>
|
|
<span class="s1">Although that way may not be obvious at first unless you'</span>re Dutch.
|
|
Now is better than never.
|
|
Although never is often better than *right* now.
|
|
If the implementation is hard to explain, it<span class="s1">'s a bad idea.</span>
|
|
<span class="s1">If the implementation is easy to explain, it may be a good idea.</span>
|
|
<span class="s1">Namespaces are one honking great idea -- let'</span>s <span class="k">do </span>more of those!
|
|
</pre></div>
|
|
<p>J'ai la vague impression que c'est ce que j'ai toujours cherché à
|
|
faire en PHP, et particulièrement dans
|
|
<a class="reference external" href="http://www.spiral-project.org">le framework Spiral</a>, mais en
|
|
ajoutant ces concepts dans une sur-couche au langage. Ici, c'est
|
|
directement de <em>l'esprit</em> 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 ?</p>
|
|
</div>
|
|
<div class="section" id="comment-commencer-et-par-ou">
|
|
<h2>Comment commencer, et par ou ?</h2>
|
|
<p>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) :</p>
|
|
<ul class="simple">
|
|
<li><a class="reference external" href="http://diveintopython.adrahon.org/">Dive into python</a></li>
|
|
<li><a class="reference external" href="http://www.swaroopch.com/notes/Python_fr:Table_des_Matières">A byte of python</a></li>
|
|
<li><a class="reference external" href="http://www.amazon.fr/Python-Petit-guide-lusage-développeur/dp/2100508830">Python: petit guide à l'usage du développeur agile</a>
|
|
de <a class="reference external" href="http://tarekziade.wordpress.com/">Tarek Ziadé</a></li>
|
|
<li><a class="reference external" href="http://docs.python.org/index.html">La documentation officielle python</a>,
|
|
bien sûr !</li>
|
|
<li><a class="reference external" href="http://video.pycon.fr/videos/pycon-fr-2009/">Les vidéos du pyconfr 2009</a>!</li>
|
|
<li>Un peu de temps, et une console python ouverte :)</li>
|
|
</ul>
|
|
<p>J'essaye par ailleurs de partager au maximum les ressources que je
|
|
trouve de temps à autres, que ce soit
|
|
<a class="reference external" href="http://www.twitter.com/ametaireau">via twitter</a> ou
|
|
<a class="reference external" href="http://delicious.com/ametaireau">via mon compte delicious</a>.
|
|
Allez jeter un œil
|
|
<a class="reference external" href="http://delicious.com/ametaireau/python">au tag python</a> sur mon
|
|
profil, peut être que vous trouverez des choses intéressantes, qui
|
|
sait!</p>
|
|
</div>
|
|
<div class="section" id="un-python-sexy">
|
|
<h2>Un python sexy</h2>
|
|
<p>Quelques fonctionnalités qui devraient vous mettre l'eau à la
|
|
bouche:</p>
|
|
<ul class="simple">
|
|
<li><a class="reference external" href="http://docs.python.org/library/stdtypes.html#comparisons">Le chaînage des opérateurs de comparaison</a>
|
|
est possible (a<b <c dans une condition)</li>
|
|
<li>Assignation de valeurs multiples (il est possible de faire a,b,c
|
|
= 1,2,3 par exemple)</li>
|
|
<li><a class="reference external" href="http://docs.python.org/tutorial/datastructures.html">Les listes</a>
|
|
sont simples à manipuler !</li>
|
|
<li>Les <a class="reference external" href="http://docs.python.org/tutorial/datastructures.html#list-comprehensions">list comprehension</a>,
|
|
ou comment faire des opérations complexes sur les listes, de
|
|
manière simple.</li>
|
|
<li>Les
|
|
<a class="reference external" href="http://docs.python.org/library/doctest.html?highlight=doctest">doctests</a>:
|
|
ou comment faire des tests directement dans la documentation de vos
|
|
classes, tout en la documentant avec de vrais exemples.</li>
|
|
<li>Les
|
|
<a class="reference external" href="http://www.python.org/doc/essays/metaclasses/meta-vladimir.txt">métaclasses</a>,
|
|
ou comment contrôler la manière dont les classes se construisent</li>
|
|
<li>Python est
|
|
<a class="reference external" href="http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language">un langage à typage fort dynamique</a>:
|
|
c'est ce qui m'agaçait avec PHP qui est un langage à typage faible
|
|
dynamique.</li>
|
|
</ul>
|
|
<p>Cous pouvez également aller regarder
|
|
<a class="reference external" href="http://video.pycon.fr/videos/free/53/">l'atelier donné par Victor Stinner durant le Pyconfr 09</a>.
|
|
Have fun !</p>
|
|
</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html> |