Piet Mondrian et 99 bouteilles de bière…

Attention:  cet article date du 28 mars 2012
Ce qu'il contient est peut être encore valable...
... ou complètement obsolète!

Tester l’application Goggles en utilisant Piet Mondrian mène à tout, y compris vider 99 bouteilles de bière en évoquant de vieux souvenirs.

Avec en prime une conclusion d’enfer !

Goggles…

Rien à dire, ils sont forts. Chez Google. J’ai lu dernièrement un article dans une revue britannique, qui parlait de Google Goggles. Une petite appli pour Android (et iPhone) qui permet à partir d’une photo de reconnaitre quelque chose et de lancer une recherche sur Internet (rien de neuf, ça date déjà de quelques mois, mais bon, j’avais pas encore pris le temps de…).

J’ai donc installé l’appli et, tel un gosse, me suis mis à scanner tout ce qui se trouvait sous la main. Une gravure de Maurits Cornelis Escher, une bouteille de vin, un pot de moutarde, une revue… sans faute, Goggles trouve. Bluffant. Bon, pour la moutarde il n’a trouvé que le logo Maille (mais m’oriente vers la boutique la plus proche). Mais sur la revue, il m’indique non seulement le titre de la revue, mais également la marque et le modèle des deux téléphones en photo sur la couverture…


Extrait de mon jeu de test…

Joueur, j’ai donc désiré le piéger. Forcément. Et me voici sur le PC à interroger Google image, pour ensuite passer les images sur Goggles sur l’iPhone voir s’il trouve… Et que ce soit la Crucifixion de Pablo Picasso, une tour Eiffel ou la carte de la Turquie, il a tout bon.

Encore plus fort, je me lance dans l’art abstrait, et le met sur un tableau de Piet Mondrian, en l’espèce Composition C. 1920 (pas mon préféré). Et sans surprise, il trouve (il faut être bien en face).

Ça lasse.

C’est fort, mais ça lasse…

Piet

Bien sûr, étant sur Piet Mondrian, sur Wikipedia, me voici à lire l’article. Et à tomber sur les liens voir aussi, pour découvrir que Piet est un langage de programmation qui tire son nom du peintre. Intrigué, me voici parti…

Piet est donc un langage dont les programmes sont des images matricielles inspirées des travaux du peintre… J’ignore comment ça marche (je n’ai pas creusé) mais voici le code source de quelques programmes:


A gauche, 2 hello world différents, à droite un programme qui affiche Piet

Pas des plus explicites, non ? Mais à rapprocher d’un livre lu il y a bien longtemps: de la programmation considérée comme un des Beaux-Arts.

Sur la page du langage Piet, je repère la catégorie Wikipédia Langage de programmation exotique et forcément je creuse.

De fil en aiguille, je tombe sur le Brainfuck, langage que j’avais déjà croisé (jamais pratiqué) d’une simplicité déconcertante. Ainsi le fameux Hello World en Brainfuck s’écrit:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Moins coloré, mais… comment dire… plus poétique que le Piet. Mais il y a pire, le Ook:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook.
Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook.
Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook.
Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook.

ou le SegFaultProg, plus compact mais pas forcément parlant…

*A+H.[-]+e.+7..+3.*B+32.*A+8.-8.+3.[-]+d.

Pour mémoire, en Php, nous aurions :

<?php
print 'Hello World';
?>

En continuant mes recherches, je tombe sur l’incontournable et superbe site 99 bottles of beer en ligne depuis 1994 et à toujours avoir sous la main (même quand ce n’est pas la Saint Patrick).

Le principe est simple: recenser les différentes façon de programmer l’affichage des paroles de la chanson 99 bouteilles de bière. Et ce, en utilisant les langages de programmation à disposition, soit à ce jour 1442 langages ou variations. Au passage, dans le même genre le Hello World Collection

Du pur comme de l’exotique… (dont le Piet d’ailleurs, superbe).

Quel plaisir (relatif) de recroiser des langages qui ont égaillé ma carrière: Logo, Basic, WordBasic, Cobol, Pascal, Delphi, C, Javascript, Actionscript, Php, Java… et j’en passe !

Quel plaisir (tout aussi relatif) de découvrir les versions dans des langages que je connaissais de nom et de réputation sans les avoir essayé (dont le fameux LISP tellement compréhensible). Et ceux dont j’ignorais l’existence, tels le Shakespeare, l’Orthogonal ou l’Asterisk… et tant d’autres!

Allez, ma contribution:

<?php
$reste = 99;
while ($reste > 0) {
    $quoi = ($reste == 1 ? "bottle" : "bottles") ;
    printf("<p>%d %s of beer on the wall, %d %s of beer.<br />", $reste, $quoi, $reste, $quoi);
    print "Take one down and pass it around, " ;
    $quoi = (--$reste == 1 ? "bottle" : "bottles") ;
    printf("%s of beer on the wall.</p>", ($reste == 0 ? "no more bottle" : $reste.' '.$quoi));
}
print "<p>No more bottle of beer on the wall, no more bottle of beer.<br />";
print "Go to the store and buy some more, 99 bottles of beer on the wall.</p>";
?>

On notera dans mon code le choix du printf pour formater l’affichage et éviter des concaténations. L’opérateur ternaire (?:) permet de gérer facilement le pluriel ou le singulier des bouteilles qui restent.

Finalement, le PHP, c’est simple, non ? (c’est ça la fameuse conclusion d’enfer)

Allez, sur ce… je vais me coucher.

Laisser une réponse