Les Yoda conditions ou if (’42′ == compteur) {

Il y a des trucs que je n’aime pas voir dans du code et qui me hérissent le poil.

Les « yoda conditions » en font partie. L’idée est d’exprimer les conditions dans le code en mettant le partie constante en premier et non plus derrière l’égalité. Ainsi on écrit plus

compteur == 42

mais comme dirait maître Yoda

42 == compteur

Alors pourquoi faire cela ? Les chantres de cette méthode avancent un argument majeur en faveur de cette notation : « cela évite que si on oublie le deuxième égal cela ne se transforme en affectation ».

en effet

if ( count = 42)

est valide alors que

if ( 42 = count )

ne l’est pas.

Effectivement, c’est le cas dans pas mal de language. Et j’ajouterais malheureusement.

Alors pourquoi je trouve cela stupide :

Premièrement ce genre d’erreur sont des erreurs de débutant et normalement un développeur expérimenté ne fait pas cela.  Bien sûr nul n’est à l’abrit d’une erreur.

Deuxièmement je trouve que le compilateur ou interpréteur devrait interpréter « if ( count = 42 ) » comme une erreur. Franchement, affecter une variable dans un if avec une valeur constante c’est vraiment tordu et ne devrait pas être permis. Au passage gcc permet de détecter ce genre d’erreur. Et si c’est le cas, l’écriture inverse n’a aucun sens.

Et enfin pour finir l’argument principal est que ça complique la lecture du code. Et tout ce qui complique la lecture, par principe, je suis contre. Un développeur passe 90% de son temps à lire du code et 10% à en écrire (et encore). Donc pourquoi lui compliquer la vie en parlant comme Yoda ?

Les puristes diront que c’est mieux parce que ça fait « maîtrise ». Je suis un master parce que je sais écrire du code complexe. Et là on rentre dans l’égo du développeur et on rentre dans une autre dimension, le non professionnalisme qui ne m’intéresse pas…

À vos commentaires …

À propos de sebastien

Ingénieur informatique à la base, je suis le créateur de 2le. Mon 4ème bébé après mes trois enfants. J'aime que nos clients aient un logiciel correspondant à leur besoin. J'aime également qu'il règne une bonne ambiance entre tous les acteurs d'un projet. J'aime également le vol libre et la montagne !
Cette entrée a été publiée dans Dev'Zone. Vous pouvez la mettre en favoris avec ce permalien.

Une réponse à Les Yoda conditions ou if (’42′ == compteur) {

  1. Bonjour Sébastien,

    Si tu le dis, c’est que c’est surement LA Vérité !!
    Je ne me risquerais pas à la contredire, mais un début d’explication est peut-être qu’aujourd’hui, il est de bon ton d’avoir un avis sur tout, y compris et surtout sur ce qu’on ne connaît pas ou peu…
    A force de multiplier les tolérances avec les règles de langage, qu’il soit informatique ou autre, on brouille celles-ci et au bout du compte, on ne sait plus démêler le faux du vrai et de l’à-peu-près !
    L’informatique devrait se permettre d’être plus intolérante avec le respect de sa grammaire, je te donne raison sur ce point ! Ceci dit, j’ai du échapper à quelques soucis grâce à quelques DTD « transitionnal » donc, tout se discute…

    Pour finir, Maître Yoda ne serait-il pas tout simplement anglophone d’origine, ce qui pourrait expliquer des choses ? :-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>