[Devoxx FR 2014] Extremist Programming : l’art de s’amuser avec du code

06 mai 2014

double_xx_texte Programmer sans avoir le droit de toucher à sa souris ? Bînomer sans avoir le droit de parler ? Et pourquoi ne pas écrire du code sans utiliser de “if” ? Tout ceci semble idiot, pourtant Cyrille Martraire et Eric Lefevre-Ardant nous montrent lors de leur présentation complètement décalée qu’il y a bien plus idiot encore, mais surtout, que tout cela peut nous apporter pas mal de choses.

++++++++++[>

Le BrainFuck est un langage de programmation utilisant uniquement un jeu de 8 instructions représentées par entre autre par <, >, -, +.

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

Le programme ci-dessus affiche "HelloWorld!!". Quel est l’intérêt d'écrire un tel langage de programmation qui ne sera de toute évidence jamais utilisé dans l'industrie informatique ?
 

L'art de la programmation

Une œuvre abstraite est là pour faire passer un message. Et si le BrainFuck était une de ces œuvres d'art ? C'est en voyant un programme écrit en BrainFuck que l'on comprend que rendre le code lisible est important ! Un des messages que Cyrille Martraire et Eric Lefevre-Ardant essayent de faire passer : pourquoi ne pas faire comme des artistes et essayer des choses, n'importe lesquelles ! Le résultat sera peut-être idiot, mais on en ressortira peut être quelque chose...

bodyfuck: gestural brainfuck interpreter. "HI" from nik hanselmann on Vimeo.

Mob Programming

1996, Kent Beck rejoint le projet C3 (Chrysler Comprehensive Compensation System) chez Chrysler, fabriquant de véhicule. Dans cette entreprise où le taylorisme a sûrement une place importante, Kent Beck propose à son équipe une organisation où les programmeurs doivent travailler à deux sur un même poste de travail, mais aussi où ils doivent écrire les tests d'un code qui ne sera écrit que plus tard. Cette organisation, à contre-pied de structures plus traditionnelles, est pourtant la genèse de la méthode eXtreme Programming.

Binomage

Deux personnes sur un même clavier ? Souvent on entend que cette méthode est contre-productive : on travail deux fois moins, non ? Qu'en penser quand c'est une équipe complète qui n'utilise qu'un seul clavier ? Cette présentation introduit justement le Mob Programming : une équipe, deux écrans, mais une seule personne qui programme. Woody Zuill, l'auteur de cette méthode, a observé une productivité accrue. Qui l'aurait cru avant d'avoir essayé ? Pour voir ce que ça donne dans une équipe, une vidéo est disponible sur Youtube

Push The Limits

Il faut essayer de nouvelles choses, même si elles paraissent stupides, et voir ce qu'on peut ou non en tirer. Pourquoi ne pas rejoindre le mouvement "anti-if" lors d'une petite pause, un midi ?

if(value == 3) {
   return "TROIS";
} else if(value == 4) {
   return "QUATRE";
}

On supprime les ifs ?

Map<Integer, String> stringEquivalent = new HashMap();
stringEquivalent.put(3, "TROIS");
stringEquivalent.put(4, "QUATRE");
return stringEquivalent.get(value);

C'est typiquement le genre de chose que l'on n'écrit pas si on reste dans sa zone de confort. Avez-vous déjà essayé d'écrire un programme sans utiliser de pointeur null ? Vous voulez améliorer l'utilisation de votre éditeur de code ? Imposez-vous une séance de code avec uniquement votre clavier. Vous avez du mal à différencier des algorithmes de tri ? Écoutez-les ! Pourquoi ne pas essayer d'appliquer de nouvelles règles de programmation comme les règles calistheniques ?

Sound Of

Des exemples comme cela, il y en a eu beaucoup lors de cette présentation. Toutefois, une chose : il est important de s'amuser à essayer autre chose, et de ne pas avoir peur d'essayer. D'ailleurs, vous pouvez dès à présent vous abonner au compte twitter weirddev qui va proposer une idée de ce type par jour.

Si vous êtes encore frileux d'essayer de nouvelles choses, venez participer à un CodeRetreat : c'est une journée entière dédiée à ce type d'expérimentation !

Encore merci à Cyrille Martraire et Eric Lefevre-Ardant pour cette présentation étonnante, complètement loufoque, mais avec du fond. C'est suffisamment rare pour être signalé.

David Wursteisen (14 Posts)


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>