Alors c’est un français, un taliban, un lépreux,

un arabe, un belge, un hippie, une blonde, une chauve, un fonctionnaire, un pédé, un sado-maso, un œuf, une vache qui fabrique du pétrole, une gouine, un suisse, un noir, un sumo, une mère juive, un génie dans une lampe, un morpion, un dentiste, le petit Grégory, un dictateur, un geek, une vieille, un nazi, un bébé, un alzheimer, un séropositif, une clocharde, un japonais, un clown, un ingénieur, un pétomane, une femme, une Lada, un pygmée, un pédophile de 14 ans, un somalien, une joueuse de rugby, un syndromisé de la Tourette, un transsexuel, une licorne, Mark Gormley, Saint-Pierre, un tétraplégique et Dominique Strauss-Kahn qui vont dans un bar à putes.

vache qui fabrique du pétrole

Le génie demande au sydromisé de la Tourette de faire un vœu, il le fait et tombe dans une piscine de merde. Le petit Grégory dit à Saint-Pierre : « Grégory Lemarchal est au paradis, et moi en enfer, y’aurait pas eu confusion ? ». Le somalien bouffe le pygmée car il avait un petit creux. La licorne encule le pétomane, qui pète, provoque un courant d’air dans le pas de vis de la corne, la faisant tournoyer et projeter des arcs-en-ciel. Ça colore le noir, du coup il s’aperçoit que le morpion est sur lui. Il le gratte. Le morpion saute sur le dictateur, qui le condamne à mort. Le nazi dit que c’est dommage, on aurait pu le tuer au gaz mais le pétomane a déjà été utilisé. La mère juive en profite pour lui demander où est passé son fils. Il répond qu’il est vivant et que c’est le monsieur-alzheimer, sauf qu’il se souvient plus qu’il est son fils. La joueuse de rugby mange le hippie et fait un ballon avec sa peau. Le séropositif éjacule dans la bouche du clown, heureusement le dentiste lui fait un lavage labial intégral avec le pétrole de la vache. Mais y’a une goutte de sperme qui traverse l’espace-temps, suite à une distorsion créée involontairement par Mark Gormley alors qu’il fredonnait un petit air pour réconforter la clocharde.

Le sperme atterrit 1 seconde plus tard dans le futur, dans l’urêtre du lépreux. Les virus du SIDA attrapent la lèpre. Le sado-maso se précipite sur eux en beuglant « Faites-moi mal ! Faites-moi mal ! ». Les virus lépreux répondent « Non ». La femme essaie de conduire la Lada mais elle y arrive pas. On sait pas si c’est parce que c’est une femme, ou parce que c’est une Lada. L’œuf s’écrie « Ah au secours ! Un œuf qui parle ! » et il se suicide en se jetant sur l’ingénieur. Crasplash. Le japonais pleure ce décès, car c’est un camarade jaune qui quitte ce monde. La gouine et le pédé baisent ensemble et disent : « tant qu’on est entre homosexuel, c’est permis ! »

Dans ma benne ! benne ! benne !

Dans ma benne ! benne ! benne !

Le transsexuel baise avec lui/elle même. Le belge lance l’arabe et le français par la fenêtre en gueulant : « dehors les étrangers ! ». Le pédophile de 14 ans se tape la vache qui n’a que 8 ans. Dominique Strauss-Kahn demande au sumo : « Mais elles sont où les putes dans ce bordel ? ». Le geek finit en tôle (lui qui se croyait en acier), parce qu’il a téléchargé la vidéo « One swiss, one cup », montrant le suisse en train de manger un petit suisse. La chauve dit en souriant : « Hey, je suis pas chauve de partout ». La blonde répond : « la chauve souris ! ». Le tétraplégique se demande combien il faut de tétraplégiques pour changer une ampoule. Le taliban fait le bilan. Et le Petit Prince de répondre : « avant y’avait la croûte, maintenant c’est le pus ! »

Moralité : on peut rire de tout, à condition de ne pas être n’importe qui.

Cependant, moi, je suis n’importe qui. Mais je peux vous assurer que je n’ai absoluement pas ri en écrivant le texte ci-dessus. Et je m’attends à ce que de votre côté, vous ne rissassiez pas. Tout ceci est très sérieux, ok ?

Cependant-bis, être n’importe qui ne doit pas m’empêcher de faire n’importe quoi. C’est pourquoi, j’écris et j’imagifie à qui mieux mieux dans le magazine 42.

Le numéro du mois dernier avait pour thème : Internet.

Qu’y ais-je contribué à ? (qui mieux mieux)

Page 11 : les fausses-pub

Mon éthique m’oblige à avouer que le jeu de mot honteux avec le chien ne vient pas de moi.  C’est un pote qui l’avait trouvé, à un moment où il était sobre, et corse, et breton. Les potes de mon pote s’étaient moqués de lui. Alors qu’en fait, il venait d’ouvrir un pan entier du domaine de l’humour canin. C’est un visionnaire (en peau de vison).

Les pages du magazine qui viennent juste après sont encore de moi. Et cette-fois ci, sans l’aide d’un pote à la nationalité chaotique.

Page 12 : article sur les jeux de Tower Defense en flash

J’ai essayé énormément de jeux appartenant à ce genre vidéoludique, que j’apprécie beaucoup. Je suis donc en mesure d’en décortiquer les mécanismes, dégager les thèmes récurrents, repérer les bonnes idées et déterminer les stratégies qui payent.

Se vanter dans le vide, c’est rigolo, mais l’impact est faible. Donc allez lire l’article, et puis c’est tout.

Tower Defense ! Haha ! (J'en ris de tout, même si je suis n'importe qui. Désolé.)

Tower Defense ! Haha ! (J’en ris de tout, même si je suis n’importe qui).

Page 53 : roman-photo. Les aventures de PouikPouik le dauphin et son papa Jean-Findus.

Je vous l’ai dis et redis, que j’allais développer l’art du roman-photo, de la satire sociale subtile, de l’expression transcendée par l’image. Bon eh bien voilà. Dans cette histoire, je prête des tares humaines aux animaux. C’est pas aussi fort que Futurama, (où c’est le prêt de tares humaines aux objets qui est de rigueur, et qui est, qui plus est, perpétré avec maestria, je parle de Bender, là. Suivez un peu). Mais quand même.

Page 57 : Mes premiers contacts avec l’internet.

Nous, à la rédaction de 42, on est des vieux. Ce qui fait qu’on a vu les débuts de l’internet, comment il est « entré dans les chaumières » et tout ça. Alors on a chacun raconté nos souvenirs du web 0.0.

Personnellement, ça me fait toujours bizarre de me rendre compte que j’ai une histoire. Aussi inintéressante soit-elle. On m’a toujours dit que j’étais un gamin, même après que je n’en étais plus un. Or, les gamins n’ont pas d’histoire. Mais on s’éloigne un peu du sujet, n’est-ce pas ?

Et après ?

Faut que je raconte mes derniers déboires chez Brouilis Consulting + Merluchon Corp + Deus Unlimited. Avant que je ne parte, ils ont tous réussi à me faire quelques espiègleries, remplies d’un humour bien à eux.

Tout cela est maintenant fini. Pour fêter ce changement professionnel, je vous propose de prendre un verre avec la charmante Dominican Poison. Vous avez peur que le verre soit empoisonné ? Quelle importance ? « Voir des gros seins et mourir », comme on dit.

Dominican Poison miss issy

L’expression du vide dans les langages de programmation

Bonjour. Je suis un chercheur du CNRS, ou d’un quelconque organisme du même drapeau. Je travaille sur la théorie du langage, la théorie des types, et autres acabits. Je suis très généreux de mes émoluments intellectuels, et ai à cœur de les partager avec le monde entier. Voici un article totalement inutile, donc indispensable, que j’ai écrit pour la revue scientifique « Geekatorial considerations & Neuronal branling ».

Moi au CNRS, lors d'une recherche documentaire

Moi au CNRS, lors d’une recherche documentaire

Qu’appelle-je l’expression du vide ?

Afin de répondre à cette question,  je vous propose de répondre à la question inverse. Que n’appelle-je-pas l’expression du vide ?

D’aucuns feront la remarque que répondre à une question inverse ne répond pas DU TOUT à la question initiale. Je m’en fous, je suis un théoricien du langage, je fais ce que je veux, c’est quand même pas vous qu’allez m’apprendre mon métier, non mais merde quoi, je suis du CNRS, j’ai fait des études moi, je diplômes. Donc aux aucuns qui font cette remarque, je réponds : « restez aucuns, et ne devenez pas quelqu’uns, vous êtes le vide. »

Bien.

Exemples de ce que n’est pas l’expression du vide dans un langage de programmation :

  • Une variable numérique contenant la valeur 0
  • Une variable booléenne contenant la valeur False
  • Une chaîne de caractère vide
  • Un tableau ou une liste contenant 0 élément

Pourquoi cela ? Parce que ces variables ont des types spécifiques, ce qui exprime déjà quelque chose. Si votre variable numérique est censée représenter une quantité de carottes, la valeur 0 exprime : « Ici, il n’y a pas de carottes ». Ce n’est pas tout à fait la même chose que d’exprimer « Ici, il n’y a rien ». Dans « il n’y a pas de carottes », on sous-entend qu’il pourrait y en avoir. Et c’est déjà l’expression de quelque chose de particulier. Donc l’expression de pas-de-vide.

Votre booléen exprime qu’une certaine proposition est vraie ou fausse. Il n’y a donc pas rien, puisqu’il y a une proposition, peu importe laquelle. Votre chaîne de caractère vide exprime « il n’y a pas de texte ». Mais il y a une chaîne de caractères. Votre tableau vide exprime : « il n’y a pas d’éléments dans ce tableau ». Mais il y a un tableau. Etc.

Dans : « Ici, il n’y a rien », le seul sous-entendu, c’est « Ici, il pourrait y avoir quelque chose ». Oui mais quoi ? On ne sait pas. N’importe quoi. Le premier bidule qui se présente. Et le contraire du premier bidule qui se présente, c’est bien « rien du tout ». Donc « Ici, il n’y a rien » est bien l’expression du vide. Voili voilà.

On admet donc comme prédicat que l’expression du vide ne peut pas être une valeur spécifique d’une variable ayant un type défini.

Des fois y’aura besoin de décocher ce prédicat, on verra ça le moment venu.

Mais encore ?

L’expression du vide n’est pas un commentaire dans le code. Du point de vue de la machine, les commentaires sont totalement ignorés. C’est « parler pour ne rien dire ». Ce n’est pas « parler pour dire qu’il n’y a rien ici ».

Raymond Devos : "Quand j'ai rien à dire, je veux qu'on le sache"

Raymond Devos : « quand je n’ai rien à dire, je veux qu’on le sache »

L’expression du vide n’est pas non plus le vide lui-même. Le vide, ce serait un fichier de code vide, ou plus localement, une ligne vide dans un fichier de code, ou encore plus localement, des espaces à la fin d’une ligne de code.

Le vide c’est « ne pas parler ». Ce n’est pas « parler pour dire qu’il n’y a rien ici ».

Mais assez parlé dans le vide, et voyons quelles sont les possibilités d’exprimer le vide.

Le mot-clé void

« void » est utilisé dans les langages de programmation de bourgeois, tel que le C, le C++, le Java … C’est le nom d’un type. Au même titre que int est un nom de type pour une variable numérique. Sauf que void est un type avec rien dedans. Pas de valeur, que d’alle.

Dans ces langages, les fonctions renvoient toujours quelque chose. Lorsqu’elles ne renvoient rien, elles renvoient une variable de type void. On aurait pu appeler ce genre de fonction des procédures, comme dans le langage Pascal, mais les inventeurs du C sont des bourgeois marrants.

On a donc bien ici une expression de vide : Ici [à l’endroit où on pourrait récupérer une donnée renvoyée par une fonction], il n’y a rien ». Qu’est-ce qu’il pourrait y avoir à la place ? On ne sait pas, puisqu’on a dit que le type lui-même était le vide. Si on veut mettre autre chose, ça pourrait être tout et n’importe quoi.

Dakkath le kilrathi : "The void ! the void !"

Dakkath le kilrathi : « The void ! the void ! »

On peut également utiliser « void » pour déclarer un pointeur vers un truc qu’on sait pas ce que c’est.

void *p = &quelqueChose;

Mais cet exemple n’est pas une expression de vide, puisque le pointeur pointe sur quelque chose. De quel type ce quelque chose est ? On sait pas. C’est le type vide. Certes. Mais « ici, il y a bien quelque chose ».

Fun fact : le pointeur « void * » est le seul moyen, en C, d’obtenir l’adresse mémoire d’une fonction.

int fonction_a_la_con() {
    return 69; 
}
void *pointeur_fonction = &fonction_a_la_con; 
// exécution de la fonction pointée par le pointeur.
// Un pointeur sachant pointer...
(*pointeur_fonction)();

On aurait pu imaginer l’existence d’un type spécifique, définissant une fonction. Quelque chose comme func. Et on aurait écrit :

func *pointeur_fonction = &fonction_a_la_con;

Mais non, on n’a pas ce genre de chose. Pourquoi ? Parce que le C est un langage de bourgeois, tout simplement.

Edit 2013-10-01 : Je me suis un peu trompé concernant les pointeurs de fonction en C. Voir le commentaire de mon ami Pudbou.

On n’en a pas fini avec les pointeurs « void * ». Y’aura une surprise un peu plus loin.

Et sinon, en javascript, il existe carrément la fonction void(). C’est une fonction qui ne fait rien, à part évaluer les arguments qu’on lui passe, ou quelque chose de ce genre. J’ai pas tout compris. En javascript, je suis pas champion. Mais on voit cette fonction dans certains sites web. Passez votre curseur de souris sur un lien un peu bizarre et vous verrez, dans la barre d’état de votre navigateur, le texte sybillin : « javascript:void() ». Merci gentil navigateur, tout le monde s’en fout.

Plus de blabla sur void dans l’inévitable (de chevet) lien kiwi-pédé (http:// fr.wikipedia.org/wiki/Void).

le mot-clé NULL

Toujours dans les langages de bourgeois, le mot-clé NULL est une valeur spécifique qu’on peut attribuer à un pointeur, pour dire qu’il ne pointe sur rien.

int *a = NULL;

Mais cette exemple n’est pas une expression de vide. « Ici, il n’y a rien ». Certes. Mais si y’avait quelque chose, on aurait quoi ? Un entier. On a explicitement précisé ce qu’on pourrait avoir à la place du vide.

Vous pensez à ce que pense ?

Oui ! Une levrette !!!

Mais non bande de petits cochons. Et si on combinait les deux ?

void *p = NULL;

Surprise !!! Voici l’expression du vide dans son excellence. « Ici, il n’y a rien. Ce qu’on pourrait avoir à la place, c’est tout et n’importe quoi. »

Dirigeons-nous maintenant vers un autre langage. Un qu’est pas pour les bourgeois. Un qu’est pour les anarcho-patchworkistes : le PHP.

Eh bien figurez-vous qu’en PHP, toutes les variables valent initialement NULL. Même celles qu’on n’a pas définies. Il s’agit d’une confusion entre l’expression du vide et l’indéfini. « Il n’y a rien ici » s’énonce de la même manière que : « je n’ai encore rien dit à propos de ici ». Je trouve cela étrange, voire carrément stupide.

Re kiwi-pédé (http:// fr.wikipedia.org/wiki/NULL).

D’autre part, dans ce joyeux langage de petits enfants innocents qu’est le Pascal, NULL se dit « nil », mais on l’utilise de la même manière que le NULL du C. Dans d’autres langages que je ne connais pas, on dit « null », en minuscunulles.

Les égyptiens codent en Pascal, car ils ont le Nil

Les égyptiens codent en Pascal, car ils ont le Nil

L’expression du vide dans les systèmes de fichiers

Un système de fichier n’est pas vraiment un langage de programmation. Mais ce que je vous propose ici est un petit paragraphe interludaire.

Un terre-lude ?

Dans un système de fichier, l’expression du vide, c’est tout simplement un fichier vide. 0 octets. Paf. Mais il y a plus rigolo. Il existe le « trou noir », qui absorbe tout ce qui s’en approche.

Le trou noir est un fichier symbolique, c’est à dire un truc qui se comporte plus ou moins comme un fichier, mais qui, physiquement, ne stocke pas d’octets sur le disque dur. Le trou noir fait disparaître tout ce qu’on écrit dedans. Il sert à balancer à la poubelle du blabla de sortie (standard ou erreur) dont on n’aurait rien à foutre.

Dans le monde Unix, ce fichier est situé à l’emplacement /dev/null. Chez Windows, il s’appelle plus simplement NUL.

En guise de dernier soubresaut interludaire, je mentionnerais le fichier Windows CON, permettant de rediriger du blabla de sortie vers la console. Alors, votre Windows, il est NUL ou il est CON ? Ha ha ha.

Le Perl

Perl, au même titre que le PHP, est un langage de programmation pour anarcho-patchworkistes. Mais à tendance hyéroglyphoïdale.

Perl = langage pour faire caca des perles

Perl = langage pour faire caca des perles

Dans ce langage, point de null ni de void, mais la possibilité d’indéfinir des variables. Ça donne quelque chose de ce style :

$a = undef;
#ou bien :
undef($a);
if (defined $a) { ... }

Et ça peut permettre de virer les éléments d’un tableau. (Ou pas, car y’a aussi l’instruction « delete » pour ça). Enfin j’y connais rien, et je m’en fous total du Perl. C’est un langage moche et incompréhensible.

On y retrouve, à priori, la même confusion entre le vide et l’indéfini. D’où le côté anarcho-patchworkiste.

Le Lisp :

Il s’agit d’un langage d’une étrange pureté. Mon collègue penseur, l’éminent geekologue Randall Munroe, de l’université blogalienne de xkcd, nous précise collégialement que ce pourrait être le langage qu’a utilisé Dieu pour coder le monde réel (http:// xkcd.com/224/). Ce n’est pas mon avis, mais ce n’est pas le sujet.

LISP signifie LISt Processing : la plupart des actions se font donc avec des listes. La valeur booléenne True s’écrit simplement « T ». La valeur False s’écrit « NIL ». Sauf que NIL signifie également : « une liste vide ».

L’opérateur « null » permet de savoir si quelque chose est NIL ou pas. (null A) renvoie T si A est vide, et renvoie NIL si A n’est pas vide.

Le Lisp comporte également l’ultra-classique opérateur « not » (inversion d’un booléen). (not A) renvoie T si A est faux, et renvoie NIL si A n’est pas faux.

C'est pas faux.

C’est pas faux.

Or, comme « liste vide » = « faux », on s’aperçoit que les opérateurs « null » et « not » effectuent exactement la même chose. C’est pas rigolo ça ? Dans le moteur d’interprétation du Lisp, ça pointe sur le même code. Moi je trouve ça super.

D’autre part, nous avons ici un contre-exemple de ce que je disais au début. L’expression du vide se fait par le biais d’une valeur spécifique d’une variable ayant un type spécifique.

Interlude : Ø

Le langage mathématique est presque un langage de programmation, bien qu’il manipule des valeurs sorties de mon cul, tel que Pi ou e. Il possède lui aussi son expression du vide. Il s’agit de l’ensemble vide : Ø. Un O barré.

L’origine de ce symbole nous vient de la Grèce antique (à l’époque où le pays avait encore de l’argent). Il représente le cul cousu de Pythagore, qui refusait de se faire enculer par ses amis. Pourtant ils étaient grecs.

Et puisqu’on parle de cul et que c’est interlude :

Et sinon, dans les langages de programmation qui veulent simuler des trucs de matheux, on trouve la valeur NaN (Not A Number). C’est pas tout à fait le vide, puisque c’est « du vide qui aurait pu être un nombre », mais c’est fun quand même. Pour l’obtenir, rien de plus simple : une bonne vieille division par 0 de la mort.

Nan-Nan-Nan-nanère (http:// fr.wikipedia.org/wiki/NaN)

Visual Basic

Je l’ai déjà dit dans une autre vie (vous étiez pas encore là) : le Visual Basic est à la programmation ce que la vulvovaginite est à la sexualité : un truc vraiment sale.

Ce fabuleux langage posède une foultitude de mots rigolos. Ça ne sert pas à grand chose, mais qu’est-ce qu’on s’amuse !

Nothing est l’expression du vide, mais seulement pour les variables objet. (Donc pas totalement une expression de vide). À noter qu’on ne peut pas tester la condition « If machin = Nothing ». Il faut tester « If machin is Nothing ». Pourquoi ? On ne sait pas trop.

Le mot Empty est l’expression du vide, pour le type Variant. C’est à dire le type « tout et n’importe quoi ». On a donc là une expression de vide assez complète. Cependant, Empty est considéré comme égal à 0, ainsi que égal à une chaîne vide. Bizarre, oui.

Toujours pour un Variant, le mot Null est l’expression de l’inconnu (pas du vide). Le Null n’est pas considéré comme égal à 0, ni à une chaîne vide, ni à Empty, ni même à un autre Null. Là encore, il faut tester « If machin is Null ».

Le mot Missing permet juste de savoir si un paramètre optionnel a été passé à une fonction, ou pas. Enfin que pour les Variant. Sinon, on a la valeur par défaut du paramètre selon son type.

Je ne trouve pas d’explication à tout cela.

Mais il y a plus de détails par ici (http:// allenbrowne.com/vba-NothingEmpty.html).

Le chocolat, ce n'est pas sale, contrairement au Visual Basic.

Le chocolat, ce n’est pas sale, contrairement au Visual Basic.

Les types nullables

Restons chez Microsoft, avec leur vision, toujours aussi folklorique, de la programmation. On nous y propose une petite curiosité assez saugrenue : le type que-on-a-clairement-défini-lequel-c-etait-sauf-que-en-fait-il-peut-être-nul.

Ça donne ça :

//Déclaration
int? blorp = 5;
// On peut assigner null, ou une valeur numérique
// à la variable blorp
blorp = 4;
blorp = null;
// blarg = blorp, sauf si blarg est null,
// auquel cas blarg = -1.
int blarg = blorp ?? -1

Pourquoi pas. Ça peut servir…

BrainFuck

Ce langage est trop simple, et ne permet pas d’exprimer le vide.

Le Korn shell, et autres langages de script moches

À ma connaissance, on ne peut pas non plus exprimer le vide avec ces trucs moches. En fait, toutes les variables sont des chaînes de caractères. Lorsque l’une d’elle est vide ou indéfinie, c’est une chaîne vide, tout simplement. Ce qui peut amener des tas de situations bien marrantes.

Exemple. Instruction de copie de fichier, à laquelle on passe des variables en paramètre :

cp ${SOURCE} ${DESTINATION} ${OPTION}

Korn in the shell ? Nichons in the shell ?

Korn in the shell ? Nichons in the shell ?

Outre le fait qu’il faille écrire trois caractères inutiles et moches chaque fois qu’on veut mentionner une variable, on constate ici un truc marrant. Si on a oublié de définir DESTINATION, l’interpréteur le remplace par une chaîne vide, mais aucune erreur ne sera détectée. Le shell de merde va donc stupidement décaler les paramètres. On se retrouvera à copier un fichier vers ${OPTION}, et non vers ${DESTINATION}. N’oubliez pas de nettoyer le bordel que vous aurez foutu sur le disque après tout ça.

Le python

Comme vous le savez, le python est le meilleur langage du monde entier. On peut même programmer des jeux vidéos avec.

On peut y exprimer le vide de manière simple et explicite : le mot-clé None.

Une variable non définie ne vaut pas None. Elle est explicitement pas définie, et provoque une erreur lorsqu’on essaie de l’utiliser quelque part.

Le python est un langage fortement typé. Ça a pas l’air comme ça, parce qu’on peut affecter n’importe quoi à n’importe quelle variable n’importe quand. Mais lorsqu’une affectation est faite, le type est déterminé, c’est celui là et pas un autre, bordel. (Enfin… jusqu’à la prochaine affectation).

Ah oui ? mais alors, quel est donc le type de ce fameux None ? Ouvrons une console python et jouons un peu :

a = 5
type(a)

La console répond : <type ‘int’>
Le type de a est un numérique entier. Ces valeurs possibles sont : 0, 1, 2, -1, -2, … C’est super.

a = None
type(a)

La console répond : <type ‘NoneType’>
Le type de a est ‘NoneType’. Lorsqu’une variable est de ce type, sa seule valeur possible est ‘None’. Rigolo non ? Je crois même que c’est une espèce d’astuce pour se débarrasser d’un défaut de la théorie des types. La valeur vide est censée être de tous les types en même temps, et c’est un peu gênant. Bon enfin je dis ça, c’est juste pour faire mon malin parce que j’ai fait semblant de lire un article de Wikipédia que je me souviens même plus lequel c’est.

None = Nonne = gros nichons ?

None = Nonne = gros nichons ?

Tiens, pendant qu’on y est :

type(type(a))

ça répond : <type ‘type’>

type(type(type(a)))

ça répond aussi : <type ‘type’>
Les définitions de type : <type ‘int’>, <type ‘NoneType’>, etc. sont des valeurs, au même titre que 5, ou que None. Le type de ces valeurs est « type de valeur ».

« type de valeur » est également une définition de type, donc une valeur. Le type de la valeur « type de valeur » est « type de valeur ». Ha ha ! BOUCLE INFINIE OF THE DEATH !!!

Comme en Visual Beurk-hic, une comparaison avec None doit se faire sous la forme « machin is None », et non pas « machin == None ». La différence, c’est qu’en python on est un peu plus libre. Les deux fonctionnent.

Le == None est conventionnellement bizarre, et un peu dangereux dans des cas tordus. Parce qu’on peut surcharger l’opérateur « == », et donc créer une putain de classe qui renverrait True lorsqu’on la compare à None. Tandis que le « is » n’est pas surchargeable. C’est une comparaison d’identité brut, et non pas d’égalité de valeur. Et donc euh… Ben c’est mieux comme ça. (Interdit de dire que mes explications ne sont pas claires).

Et de toutes façons : « on n’est pas égal au vide. On EST le vide. »

Voici du blabla fun à ce sujet (http:// jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html).

Ne rien faire, ça c’est la vie

Le vide peut s’exprimer par l’absence d’objet, mais aussi par l’absence d’action. On peut dire, explicitement : « Là, je ne fais rien ».

Comme j’ai envie de me coucher, on va faire court.

En langage machine, il existe l’instruction NOP (No Operation Performed). Selon les microprocesseurs, on peut avoir un code spécifique pour ça. En général 0, ou une valeur hexadécimale qui tombe juste. Dans le cas contraire, on a recours à une instruction normale, qu’on utilise avec des paramètres à la con, de façon que rien ne soit fait. Par exemple, le code 0x90, sur les processeurs x86, permet d’échanger le registre EAX avec le registre EAX. Whizzz !!

Tiens à propos de Whizzz, pour indiquer un NOP, on utilise parfois le mot-clé xyzzy. Mais là je ne saurais rien vous dire de plus que ce que j’irais pomper dans wikipedia. Donc allez-y direct.

Nothing happened...

Nothing happened…

Dans les langages de programmation de plus haut niveau, l’inaction peut également être exprimée, mais ce que je propose là est une vision des choses ‘  » ‘capillotractée’  » ‘.

  • Le point-virgule tout seul, dans les langages de bourgeois où les fins de lignes doivent comporter un point-virgule.
  • { }. C’est à dire un début de bloc de code, immédiatement suivi de la fin du bloc de code.
  • En Pascal, un « begin » immédatement suivi d’un « end ».

En python, on est beaucoup plus classe et plus explicite que cela, puisqu’il existe l’instruction pass, qui ne fait rien. Pourquoi en avoir besoin, alors que c’est un langage pas-machine ?

L’indentation a une signification en python. Or, on est obligé de mettre au moins une ligne de code, indentée, après un début de bloc « if », « while », ou autre. Si on ne veut rien y mettre, on doit explicitement mettre pass.

Le python est un putain de langage trop bien. Mais vous le saviez déjà.

piton

Piton

Conclusion :

Un jour, on m’a reproché de parler pour ne rien dire. Et je me suis dit que c’est surtout le reproche lui-même qui était du « parler pour ne rien dire ». Après, j’ai dit que je ne dirais plus rien à ces reprochateurs. Comme ça le problème a été réglé.

Je suis content de voir que vous avez lu jusque là ! D’ailleurs, peut-être avez-vous carrément lu jusqu’ici ? Ou là ? Bon, y’a qu’ à dire « là-bas ». Ça vous va ?

Le prochain article sera corporate et purgatif. Je baverais sur les anciennes boîte pour lesquelles j’ai bossé comme un con.