Not My Idea

Carnets Web d'Alexis Métaireau

Python, go !

5 comments

Cela fait maintenant un peu plus d’un mois que je travaille sur un projet en django, et que, nécessairement, je me forme à Python.

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, qui constituent une très bonne introduction au langage, qui prends la forme d’un easter egg présent dans python:

>>> 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, 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) :

J’essaye par ailleurs de partager au maximum les ressources que je trouve de temps à autres, que ce soit via twitter ou via mon compte delicious. Allez jeter un œil au tag 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 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 sont simples à manipuler !
  • Les list comprehension, ou comment faire des opérations complexes sur les listes, de manière simple.
  • Les doctests: ou comment faire des tests directement dans la documentation de vos classes, tout en la documentant avec de vrais exemples.
  • Les métaclasses, ou comment contrôler la manière dont les classes se construisent
  • Python est un langage à typage fort dynamique: 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.

Have fun !

Written by Alexis Metaireau

décembre 17th, 2009 at 3:07

Posted in Python

5 Responses to 'Python, go !'

Subscribe to comments with RSS or TrackBack to 'Python, go !'.

  1. Et parce qu’il n’y a pas que Django dans la vie (même s’il est vrai qu’il y a quelques killer features), je te conseille de regarder du côté des micro frameworks type web.py ou tornado :)

    Bastien

    17 déc 09 at 3:18

  2. C’est Stinner et pas Sinner ;-)
    C’est ton inconscient judéo-chrétien qui a parlé ?

    patrick_g

    17 déc 09 at 3:40

  3. @Bastien: Effectivement, il y à tout un tas de frameworks web qui déboitent, en python. Je pense à Turbo Gears et Pylons entre autres, pour ce que j’ai pu voir. Django n’est donc bien sur pas le seul, mais commence à bénéficier d’une communauté qui lui confère un écosystème assez sympathique.

    Je ne connais pas du tout ni web.py ni tornado, je m’en vais me renseigner de ce pas, merci !

    @patrick_g: merci, c’est corrigé. Faudrait que je lui demandes, tiens, à mon inconscient. :)

    Alexis Metaireau

    17 déc 09 at 3:49

  4. Je suis passé par la même phase et je m’étais aussi retrouvé devant le problème du choix de framework: http://www.desfrenes.com/blog/post/quel-framework-web-python-choisir

    :-)

    desfrenes

    17 déc 09 at 5:59

  5. @Alexis: En fait ce qui est plutôt cool dans ces micro-frameworks tels que web.py ou tornado, c’est le côté REST du code

    ex:

    class hello:
    def GET(self,arg1,arg2):

    urls = (
    ‘/hello/(.*)’, ‘hello’
    )

    app = web.application(urls, globals())

    Simple comme bonjour :)

    Bastien

    21 déc 09 at 3:15

Leave a Reply