Trois mois avec Python

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys

def main(argv):
  try:
    print 'Hello World'
  except Exception, e:
    print e
  finally:
    print'Goodbye'

if __name__ == "__main__":
  main(sys.argv[1:])

Hors donc, cela fait à présent à peu près trois mois que j’utilise Python langage de programmation principal au travail, et c’est donc pour moi l’occasion de revenir sur ce langage. J’aimerais pouvoir dire que j’aime Python, mais ce n’est pas le cas. Mon problème avec Python c’est que c’est un langage arrogant.

Naturellement, ce n’est pas le langage qui est arrogant, mais ce qui va autours. Le langage en soit, est, à mon avis, un langage de script dynamique honnête qui a repris les bonnes idées de Smalltalk. Python est plus propre et plus lisible que Perl, mais honnêtement, les seuls langages moins lisibles que Perl ont été conçus comme des exercices de style.

Un symbole du problème c’est la notion de pythonique (pythonic), sous ce vocable se cachent des notions de style raisonnables (utiliser des itérateurs et des générateurs), mais aussi des horreurs comme la conversion en boléen implicite. Autant je suis pour l’utilisation de formes compactes, autant j’aime pouvoir exprimer dans le code toutes les informations et les contraintes que je connais sur mon code (invariants, types etc.).

Je suppose que c’est une question d’attentes, mais j’ai de la peine à mettre en accord la notion de langage qui encourage à écrire du code de haut qualité et un interpréteur qui ne se borne à me dire Syntax Error: Invalid Syntax pour le morceau de code  ci-contre (avec la version 2.4.3, avec 2.5 le code fonctionne). Même gcc est capable (les bon jours) de messages d’erreur plus clairs. En un sens, j’ai l’impression que le langage est plus dirigé par des considérations esthétiques que par une réelle volonté d’avoir un outil de programmation sérieux.

2 thoughts on “Trois mois avec Python”

  1. dans la 2.4 il me semble que le “finally:” n’existe pas encore.

  2. Si si, il existe, mais tu peux avoir soit un except soit un finally, pas les deux. Pour arriver à cet effet, il faut imbriquer les blocs try.

Leave a Reply to ThiasCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.