python avale-t’il perl ?
Lundi 25 mai 2009, par //
un peu de technique
Version imprimable
Je viens de passer au python. Pour moi, par rapport aux autres langages de haut niveau, peu change. C’en est limite décevant.
Mais pour vous je vais évoquer ces petits détails qui m’ennuient.
Si cela avait été pour la thune, j’aurais du faire du java ou du ruby (source : http://blog.olivier-duval.info/?tag...)
Tu verras python c’est bien on peut pas utiliser une variable qui est n’est pas déjà initialisée
Grosso merdo, si vous faîtes a+=2 et qu’auparavant il n’existe pas a=qqchose, alors vous avez perdu.
En perl, en dehors du use strict c’est vrai que c’est faisable, mais moi même je n’utilise que le mode strict. Et le mode strict c’est mieux.
dyslexie=False
if has_dyslexia()==True:
dylsexie=TruePasse malheureusement en python
Alors qu’en Perl
use strict;
my $dyslexie=0;
has_dyslexia() and $dylsexie=1;ne passe pas.
Pourquoi utiliser des accolades, ça sert à rien les accolades
Euhhh ... Je les utilise pour éviter la pollution des scopes dans des fonctions malheureusement trop longues (> 20 lignes) :
.... lot of code ...
{
my $temp="toto";
... code...
}La variable temporaire ne survivant pas au scope, je ne pollue pas, et risque pas de la réaffecter par erreur
Résultat en python il faut faire
... loc...
if True:
temp="tot"
...
....J’imagine la tronche du codeur qui passe après. Bon l’idéal est quand même de ne jamais dépasser 20 lignes dans un scope.
L’opérateur ternaire ? ( :) c’est pour les nuls, mais bon on a la construction val if test else true
init= True if options.get("init") else FalsePourquoi je déteste ?
Pour moi il y a les construction avec les test en premiers, et celle avec les test à la fin :
open(">tot") or die() and $go_on=1;
open(">tot") if ($open_file);Python est pour moi le précurseur dans le domaine de la confusion : les opérateurs avec des tests au milieu.
En plus un bon opérateur ternaire permet de faire ceci :
my $intro =
$firstname ? "Dear $firstname" :
$nick ? "Dear $nick" :
"Dear customer";
....Je trouve ça très élégant pour éviter les if / else imbriqués.
Voilà, c’est tout pour aujourd’hui, mais ce n’est pas important, car quand on apprend un nouveau langage, on doit apprendre à mettre ses petites manies dans un mouchoir et se concentrer sur le code. Ceci ne sont que des faux problèmes, heureusement, python a de vrais atouts pour se faire pardonner.
