Styles

jeudi 2 décembre 2010

Python en remplaçant de Perl

Je me suis mis récemment au langage python. J'avais des préjugés sur ce langage au moment où j'ai entendu dire qu'il fallait respecter la tabulation pour que le programme fonctionne. Je voyais là le signe d'un langage complètement arriéré, digne des plus beaux langages de grand papa, notamment COBOL qui obligeait à respecter la tabulation, la taille des lignes, des sections particulières...

Comment ce fait-il que des gens aient choisi un tel retour en arrière pour créer ce langage ? En fait, il s'agit surtout d'une incompréhension. La tabulation en elle-même peut être celle que l'on souhaite mais la tabulation sert à définir le début et la fin des blocs de lignes de codes. C'est en fait un moyen astucieux de définir des blocs sans avoir à utiliser de symbole particulier comme { } par exemple :
def fib(n):    # write Fibonacci series up to n
"""Print a Fibonacci series up to n."""
a, b = 0, 1
while a < n:
print a,
a, b = b, a+b
Moins je tape de caractère, mieux je me porte. C'est un principe fondamental de la programmation : le meilleur programme c'est celui qui n'a pas de ligne de code.

Après m'être auto-formé à python, je me suis aperçu que python est aussi souple que mon autre langage de prédilection : Perl. Python comme Perl, centralise les packages disponibles au sein d'un même répertoire appelé PyPI. Sous Perl, c'est le répertoire CPAN.

La différence philosophique entre Perl et Python se situe au niveau des slogans qu'ils utilisent : Perl a choisi le TMTOWTDI (There's more than one way to do it) tandis que Python, justement, est parti sur le slogan "There should not be more than one way to do it". Et finalement, sur le long terme, c'est payant pour Python. Le langage Python reste simple et évite toutes les tortures mentales introduites par Perl. Cela permet à plusieurs programmeurs de travailler sur un même code, la maintenance est facilitée. De plus, quand vous arrêté de faire du perl, ne serait-ce que 6 mois par exemple, vous perdez la connaissance que vous avez des bricolages possibles de Perl, et les détails commencent à vous échapper.

Perl est bien si vous en fait régulièrement, que vos programmes n'ont pas besoin d'une architecture orienté-objet (bien qu'il soit possible de faire de l'orienté-objet avec du Perl, mais c'est vraiment une horreur à écrire).

Perl, par toutes ses particularités et ses bricolages, a permis la constitution d'une communauté soudée, car assez élitiste finalement, Elite dans le sens de : qui maitrise tous les aspects de perl.

Je crois que je vais définitivement arrêter de coder en Perl mes programmes, et passer sur Python parce que je n'ai plus le temps de réapprendre les tortures mentales nécessaire à la programmation en Perl.

1 commentaire:

tshirtman a dit…

Félicitation pour avoir su surmonter tes préjugés, et bienvenue dans la communauté python. J'ai en effet lu plusieurs fois ce reproche a perl, la souplesse d'écriture, les subtilités et l'utilisation d'implicite le rend difficile a garder en tête sans une pratique régulière, mais ces subtilités sont sans doute ce qui le rend agréable et attachant une fois qu'on les maitrise, mais personnellement je préfère rester à l'explicite de python.