Pizza Party

2004.04.28

Deux ingrédients traditionnels dans la régime d’un programmeur ou d’une programmeuse sont le coca-cola et le pizza. L’un offre du sucre rapide pour augmenter l’activité du cerveau, alors que l’autre propose des sucres lents pour prolonger des sessions de dé-bouguage qui peuvent aller jusqu’à très tard dans la nuit. Mais encore plus important que les qualités diététiques (voire sportives) de ces aliments, serait la facilité de distribution et de conservation de ceux-ci. Car un pizza aux États-Unis (où sont nés ces pratiques alimentaires) est avant tout le moyen le plus rapide d’avoir un plat chaud sans avoir besoin de se lever de son fauteuil de bureau (ou presque). Et quand il reste un peu en reserve, on peut toujours placer les restes au frigidaire pour un petit déjeuner rapide avant d’aller se coucher après une longue nuit de programmation.

Mais plus important encore : la commande d’un pizza n’interrompt que très brièvement une session de programmation. Une fois la commande lancée, sa fabrication et livraison travaillent en mode asynchrone, comme pour le transfert d’un gros fichier mp3 de Heavy Metal sur Internet. On peut parfaitement bien continuer à construire des variables et manipuler des pointeurs pendant que le livreur arrive sur son petit vélomoteur avec le pizza chaud.

Neal Stephenson a suggéré une analogie similaire dans son célèbre roman Snow Crash sur l’avenir géopolitique de l’Amérique à l’ère de la réalité virtuel. Son roman débute avec un rapprochement des deux pratiques, comme s’il s’agissait d’une seul et même activité : son héro — « Hiro Protagonist » — est défini non seulement par le fait qu’il soit programmeur (et samouraï), mais avant tout par ses qualités de livreur de Pizzas :

This is America. People do whatever the fuck they feel like doing, you got a problem with that? Because they have a right to. And because they have guns and no one can fucking stop them. As a result, this country has one of the worst economies in the world. When it gets down to it — we’re talking trade balances here — once we’ve brain-drained all our technology into other countries, once things have evened out, they’re making cars in Bolivia and microwaves in Tadzhikistan and selling them here — once our edge in natural resources has been made irrelevant by giant Hong Kong ships and dirigibles that can ship North Dakota all the way to New Zealand for a nickel — once the Invisible Hand has taken all those historical inequities and smeared them out into a broad global layer of what a Pakistani bricklayer would consider to be prosperity — y’know what? There’s only four things we do better than anyone else: music, movies, microcode (software), high-speed pizza delivery.
– Neal Stephenson ; Snow Crash ; 1994

Le codage informatique et les livreurs de pizza seraient alors réunit dans une co-dépendance proche de l’orchidée et la guêpe (cf. « Anti-œdipe » (Gilles Deleuze, Felix Guattari ; Anti-œdipe: Capitalisme et schizophrénie ; 1972 ; pp. 339) , p.339). Le livreur de pizza simule le format et le protocole du paquet TCP/IP, pour mieux passer à travers le filtre de prioritisation du programmeur obsedé par son code.

Dans ce contexte arrive un programme d’une efficacité redoutable pour le programmeur qui ne veut même pas se lever de sa chaîse pour chercher le numéro de téléphone du livreur : Pizza Party. Encore mieux, Pizza Party est une commande qui s’execute directement à l’intérieur du plus « geek » de tous les outils du uber-programmeur : la ligne de commande UNIX.

Voici un extrait du mode d’emploi (« man page ») du programme, avec le syntaxe de base du programme et toutes les options disponibles :

{{pizza_party [-o|—onions] [-g|—green-peppers] [-m|—mushrooms] [-v|—olives]
[-t|—tomatoes] [-h|—pineapple] [-x|—extra-cheese] [-d|—cheddar-cheese]
[-p|—pepperoni] [-s|—sausage] [-w|—ham] [-b|—bacon] [-e|—ground-beef]
[-c|—grilled-chicken] [-z|—anchovies] [-u|—extra-sauce] [-U|—user= username]
[-P|—password= pasword] [-I|—input-file= input-file] [-V|—verbose] [-Q|—quiet]
[-F|—force] [QUANTITY] [SIZE] [CRUST]}}

Ce qui donnerait, par exemple, pour la commande d’un pizza de taille moyenne, de pâte normale avec pepperoni, champignons et double portion de fromage :

{{pizza_party -pmx 2 medium regular}}

Directement à l’intérieur de l’environment de programmation et de compilation — le temps d’une compilation rapide de quelques milliers de lignes d’instruction, par exemple — le programmeur peut commander son pizza et savoir que dans les prochaines 30 minutes un livreur arrivera à sa porte avec son pizza chaud.