Uncategorized

À parse error près

Il arrive un moment dans l’exercice d’une tâche technique où les détails deviennent des automatismes. Je ne sais pas vous, mais j’ai depuis longtemps oublié la séquence suivant laquelle les muscles de mes jambes doivent se contracter/relâcher pour exécuter un mouvement de marche.

On me demande souvent ce que je fais comme métier. Pour simplifier, je dis que j’écris du code pour faire des sites internet. Je n’aime pas dire que je suis développeur, parce que j’ai l’impression que le terme nie la dimension créative de ce que je fais toute la journée (et parfois le soir pour mon plaisir) pour en faire un boulot de technicien purement exécutant. Or j’ai l’orgueil de croire qu’aucune machine ne pourra jamais remplacer mon travail, du moins pas totalement. Ce que la machine pourra/peut remplacer, lorsque je dois l’accomplir, m’emplit en général d’une frustration immense et source de la majeure partie de la fatigue qui me fait m’effondrer sur mon lit comme une masse en rentrant chez moi le soir.

On me demande comment, ce travail, qui est perçu comme technique peut être créatif. On me demande si je parle de design, de graphisme. Je ri dans ces cas-là, et je réponds qu’absolument pas du tout, je suis probablement la dernière personne au monde à qui il faudrait confier une tâche de graphisme. Non, je parle bien de créativité dans le code. Et je donne cet exemple :
Un ordinateur, c’est un tas de plastique, de cuivre et de silicium qui, à peu de chose près, ne sait rien faire. Le peu de chose se résume à comprendre les instructions suivantes : enregistrer des nombres et des textes dans sa mémoire, lire ces nombres/textes dans sa mémoire, tester si deux nombres sont égaux ou non. Ça n’est pas grand-chose, mais ça suffit amplement pour tout faire.
Tout comme indiquer un chemin pour se rendre d’un point à un autre revient à donner une suite de directions en fonction de lieu que le touriste devra reconnaître.
Et tout comme il y a mille manières plus ou moins coûteuses (en temps, en argent), plus ou moins agréables, plus ou moins flexible (si le touriste veut faire un détour par un lieu de son choix) de choisir un itinéraire dans une ville, il y a mille manières de donner des instructions à un ordinateur pour qu’il accomplisse ce qui est désiré (“afficher par ordre de prix les vols en partance de Paris à destination de Florence le jeudi 11 novembre”).

Mon métier consiste donc à ça : donner des suites d’instructions à une machine pour qu’elle les accomplisse de la manière la moins coûteuse (en temps et argent), la plus lisible et la plus flexible.

Lorsque j’avais parlé à la conférence PHP l’an dernier (ou était-ce l’année d’avant, je n’ai aucune notion du temps), j’avais insisté sur le fait que la notion de flexibilité était extrêmement relative. On voit souvent aujourd’hui, les clients demander à ce qu’on utilise des “outils open-source avec un large public” sous prétexte qu’en faisant ces choix, l’objet final pourra être repris par d’autres personnes immédiatement. C’est un leurre.
La capacité d’un code à être repris dépend selon moi de la capacité du code à pouvoir être expliqué par un programmeur expérimenté en langage humain à quelqu’un qui n’a absolument aucune notion d’informatique, voire de logique élémentaire ET de la capacité du code à pouvoir être modifié sans changer fondamentalement sa structure selon les demandes de l’humain “normal” (pourvu que cette demande ne soit pas un changement radical).
Il est évident et tout à fait normal que l’être humain non expérimenté ne comprenne rien au code. D’une part parce qu’il ne parle pas le langage, d’autre part parce que même si il le parle un peu, la traduction langage naturel-code la plus naïve est rarement la plus efficace et la plus flexible et n’a donc pas été retenue par le codeur expérimenté.

Fidèle lecteur de nombreux blogs sur les bonnes pratiques de code, il n’est pas rare que j’oublie pourquoi certaines choses sont à faire et d’autres à proscrire et je me retrouve parfois bien en peine de justifier pourquoi une solution me rebute alors qu’elle semble naïvement la meilleure.
Je sais que croiser ses pieds (mettre le pied gauche plus à droite que le pied droit) est une mauvaise idée lorsque l’on descend une pente en randonnée en montagne alors même que c’est bien souvent le choix le plus pratique si l’on veut conserver un rythme de marche normal (un pied en avant puis le suivant en avant et ainsi de suite) sur un sentier où les zones stables sont réparties aléatoirement à gauche puis à droite. C’est une mauvaise idée parce qu’à vouloir conserver ce rythme de marche normal, on décuple le risque de se faire une entorse. (cette explication mériterait un petit schéma, mais je ne sais pas dessiner).

Une pratique courante en PHP (le langage que j’utilise professionellement) consiste à ne jamais afficher les erreurs du programme, sauf en cas d’erreur grave qui planterait complètement le programme (par exemple si vous demandez à votre machine de diviser par zéro). Tout le monde le fait, mais c’est selon moi une très mauvaise habitude. Ça revient à indiquer son chemin à un enfant dans une ville en oubliant de lui préciser qu’il ne faut pas traverser quand le feu des voitures est vert. On se dit qu’il va bien comprendre qu’il ne doit pas se jeter sous un bus et attendre que la voie soit dégagée. Sauf qu’en vrai, un ordinateur c’est encore plus bête qu’un enfant, et ça finit parfois mal. Et on blâme alors le chauffard alors même que notre responsabilité est aussi en cause. Lorsque j’avais passé mon entretien chez last.fm ils m’avaient demandé quelle était la première cause de bugs dans les programmes et c’est ce que j’avais répondu, ils avaient ri (j’avais tourné ça d’une manière un peu plus drôle)

Je me rappelle également d’une dicussion sur la terrasse du toit du Théâtre du Châtelet où l’on me demandait pourquoi je détestais tant eZPublish.
eZPublish, c’est un outil de gestion de contenu, open-source, utilisé par un large public comme les aime les clients. Et c’est l’archétype parfait (pléonasme) du leurre. Certes, il fait son travail d’outil de gestion de contenu, bien que je n’ai dans mon entourage aucun utilisateur/rédacteur qui en soit un tant soit peu satisfait. Mais pour le développeur qui cherche à faire d’un site simple une véritable application, il atteint immédiatement ses limites : il n’est pas pratique, les outils sont rarement découpés en éléments simples réutilisables ; il n’est pas structurant, le développeur est laissé à lui-même, il n’est nullement tenu de respecter quelconque convention et peut tout à fait pondre quelquechose de parfaitement non-maintenable et obscur; il est contraignant, le développeur doit multiplier les lignes de codes pour parvenir à faire des choses basiques si il veut respecter utiliser les données du CMS. Bref, une horreur. Je suis un fervent défenseur de Zend Framework que je trouve structurant et pratique (bien que parfois un peu contraignant) mais il y a tout un tas d’autres outils bien meilleurs que eZ.

Voilà quel est mon métier, et tous les choix quotidiens qu’il implique. La plupart des choix que je donne ici peuvent sembler d’ordre purement technique, mais ils se résument beaucoup plus souvent à un choix de philosophie de code et de goût. Ce que j’aime, c’est créer du code que mes collègues, lorsqu’ils auront à l’utiliser, trouveront “pratique” et utiliseront sans mal, c’est penser que j’ai travaillé une fois mais que ce travail sera réutilisé tout un tas de fois sans effort par les autres. Et c’est dans cette tâche que joue à plein ce que j’appelle ma créativité.

Standard
Uncategorized

Prose non rimée

Plutôt que de m’épancher sur la vacuité et les vicissitudes de mes congénères, je pourrais effectivement produire une logghorrée auto-référentielle et d’aucun dirait que j’ai cédé (enfin) à l’appel de la littérature. La vérité, c’est que cette lie de verbe serait tout aussi futile, et son objet relégué loin de toute préoccupation, comme si l’emploi systématique de substantifs, adjectifs et autres adverbes (avec parcimonie) d’au moins une demi-douzaine de caractères dans leur sens “2” justifiait mieux l’existence d’un texte que celui d’apâter un lectorat nombreux (mais soi-disant médiocre) comme fin, seule et une.

Un trait frappant des intellectuels érudits conscients de l’être est une nette propension naturelle à l’élitisme et à une faible considération de leurs semblables s’adonnant à un hédonisme manifestement vain généralement doublé de force cris et imbibation éthylique. Ce comportement leur procure une certaine satisfaction, s’offrant à eux-même le loisir de jeter l’opprobre, se privant au passage de la potentialité de nouvelles rencontres, spoliation dont ils ne souffrent cependant nullement, n’ayant pas conscience de ce qu’ils s’arrachent à eux-même.

Mais voilà que je disserte à nouveau sur mes pareils, je ne souffre me défaire de cette névrose d’analyste, c’est bien là mon défaut, mon vice. Je voulais être vain absolument, je n’ai réussi qu’à, une fois de plus, retomber dans la pure énonciation de faits et leur interprêtation du point de vue qui est le mien.
Je ne parviens jamais à ne parler de rien.

Standard
Uncategorized

Filles chiantes, bus et ailes d’avion.

Pour simplifier grandement, je dirai que l’origine du défaut des filles que l’on qualifie généralement de méga-chiantes ou encore de grosses reloues vient essentiellement de leur manque d’une (ou plusieurs) copine et d’une méprise de leur part sur le public auquel elles s’adressent. Cette phrase comporte beaucoup trop d’adverbes, mais c’est volontaire, c’est pour atténuer un propos que je trouve assez (voire complètement) misogyne et que du coup, je n’assume que moyennement.

Genre, mettons que votre amie (qui n’est pas nécessairement votre copine) vous parle d’une robe qu’elle a vu rue des Francs-Bourgeois, l’autre vendredi soir en rentrant de soirée, les projecteurs de la vitrine la faisant ressembler à une apparition divine au milieu de la pénombre de la rue, avec un noeud et des trucs. Je dis des trucs parce que je n’y connais rien en robe, si les robes ça m’intéressait, j’aurai pas pris cet exemple. Oui parce que le fait est, les robes, ça ne m’intéresse pas, comme le maquillage et plein d’autres choses. Si au rang de ces choses il y avait “la sculpture italienne de la Renaissance”, on m’accuserait de manque de curiosité, mais on me pardonnerait tout à fait de ne pas trouver un intérêt quelconque dans “pourquoi les avions arrivent-ils à voler à l’envers ?” (alors que objectivement, c’est quand même beaucoup plus intéressant, non ?).

Donc, quand elle fait ça, la jeune fille en question se trompe manifestement de public. Vous êtes sympa alors vous l’écoutez longuement disserter sur la coupe, et comment si elle l’achetait ça résoudrait sûrement tous ses problèmes de couple avec Jérôme.
Voilà. En fait, cette robe n’était qu’un prétexte à s’épancher sur ses problèmes de couple avec Jérôme. De toute manière, tout est prétexte à s’épancher sur ses problèmes de couple avec Jérôme. Si ça ne tenait qu’à vous, vous lui diriez de larguer ce connard de Jérôme et de sortir avec Sébastien qui est un mec cool et célibataire. « Nan mais tu comprends, je peux pas le laisser, j’ai construit quelquechose avec lui, il compte, j’aurais l’impression d’avoir gâché ces trois derniers mois de ma vie pour rien et je ne veux pas rester sur une sensation d’échec » répliquerait-elle. En vrai, vous dodelinez de la tête, en espérant qu’au prochain feu (vous êtes tous les deux en train de marcher dans la rue), elle se fasse faucher par un bus.


Paf le bus extrait de Lolita malgré moi (j’adore ce film)

Ma prof de philo de Terminale disait qu’une des différences manifeste entre les hommes et les femmes était que les premiers, lorsque confronté à un problème, cherchaient immédiatement à trouver une solution, là où les secondes ne cherchaient qu’à le vocaliser, ne considérant pas ce problème comme quelquechose appelant une solution.
Votre amie chiante ne veut pas que vous lui suggériez la solution rapide, simple et efficace de larguer Jérémy pour Sébastien, elle veut que vous lui disiez « han mais trop, ce connard de Jérémy, il te mérite pas, sois forte, de toute manière quoi que tu fasses je te soutiens han ». Sauf que je n’ai nullement envie de débiter des sornettes pareilles. Surtout que je sais très bien qu’elle va larguer Jérémy dans trois semaines. Mais vous ne pouvez pas lui dire, ça risquerait de l’énerver encore plus.

La vraie solution donc, serait qu’elle aille s’adresser à un public adéquat, une copine. Quelqu’un qui la comprenne et sache faire les répliques toutes faites qu’elle attend à ses non-problèmes.

Mais ne soyons pas complètement misogyne (je rappelle que je n’assume pas), parfois, votre amie chiante se pose aussi des questions auxquelles elle attend des réponses. Les poser à sa copine ne créera que frustration puisque « je te soutiens » n’est PAS une solution applicable. Dans ce cas-là, vous êtes le bon public. Alors soyez un bon public (même si, dans ce cas, c’est elle qui devient rapidement le public) (y a un jeu de mot à faire avec “banc public” mais je ne trouve pas).

Standard