blog.harobed.org | resources.harobed.org

Ce qui me fait préférer Python

Date: 2008-05-07
Authors: Stéphane KLEIN <stephane at harobed.org>
Status: Publié
Version: 1.0.1
Depuis que j'ai débuté l'informatique, j'ai appris et utilisé de nombreux langages.
Concernant les langages uniquement, sans parler des APIs ou Framework ni des schells, plus ou moins en ordre chronologique, j'ai commencé sur Amstrad CPC par le Basic, puis l'assembleur z80.
Quand je suis passé au PC, j'ai commencé par le Turbo Basic de Borland, le Quick Basic de Microsoft, le Turbo Pascal de Borland, de l'assembleur x86, un tout petit peu de C, le Visual Basic de Microsoft, le Delphi de Borland.
Je suis ensuite passé à GNU/Linux en 1998, là j'ai découvert et utilisé le Perl, PHP, Python, j'ai approfondi le C et C++. J'ai étudié un peu Java et C#. J'ai utilisé un peu TCL. J'ai jetté un oeil sur Ruby, Ada, Lisp. Je connais de nom Caml, Scheme, Smaltalk, Eiffel ...

Pourquoi cette restrospective ? Parce que parmi tous les langages que j'ai étudié et/ou utilisé, à mes yeux, l'un d'eux sort du lot : Python.

Bien entendu, celui-ci sort du lot dans son domaine d'application. Par exemple, Python n'est pas adapté pour développer le noyau d'un système d'exploitation, ni pour réaliser un moteur de base de donnée dont l'objectif premier est la performance (bien qu'il existe une implémentation de base de donnée 100% développé en Python). Par contre je choisirais Python pour tous autres domaines où les performances bruts ne sont pas au coeur du besoin, par exemple pour :

Le but de cet article et des autres articles qui traiteront du même thème est de vous présenter pourquoi j'apprécie Python plutôt qu'un autre langage.

Pour ceux qui me suggéreront Java, je répondrais que Java est un très bon langage, dont les performances (du langage) [1] sont très bonnes et meilleurs que Python, dont l'étendu des librairies, framework... est très importante... mais j'aime le coté agile, léger et simple de Python. D'autre part, je connais le langage Java mais j'ai de très modestes connaissances au niveau des frameworks qui gravitent autour de ce langage. Par conséquence, je ne ferais pas de comparaison entre Java et Python.

Je ne ferais pas non plus (ou alors très très peu) de comparaison avec Ruby car je ne connais pas beaucoup ce langage. Je connais les bases et les concepts de RoR (RubyOnRails) car j'ai survolé le livre Ruby On Rails. D'autre part, j'ai l'impression que la philosophie Python/Ruby sont assez proche.

Qu'est ce qui me fait préférer Python à d'autres langages :

J'arrête la liste ici pour le moment car le but de cet article n'est pas de réaliser une liste exhaustive des outils Python. Je compte plutôt utiliser cet article comme une sorte de sommaire vers d'autres articles que j'écrirai à l'avenir.

[1]The Computer Language Benchmarks Game : http://shootout.alioth.debian.org/
[2]http://www.linux-center.org/articles/9812/python.html