L'écran du programmeur

Il ne faut à mon avis jamais négliger l’importance d’un bon écran pour un programmeur. C’est le genre d’affirmation qui aura sans doute un goût d’évidence pour beaucoup de personnes dans l’informatique, peut-être moins pour les autres, mais il semble en tout cas que c’est le genre de règle que personne ou presque ne suit. Combien d’entreprises estiment qu’un écran d’entrée de gamme, qu’un 19″ est suffisant pour n’importe quel développeur ? Depuis que j’ai eu la chance de travailler avec un écran de 24″ au bureau, ce qui pourrait passer pour un luxe me semble aujourd’hui le minimum acceptable, et un critère dans l’évaluation du sérieux d’une entreprise.

Si vous êtes un bricoleur du dimanche, lorsque vous avez besoin d’outillage, il est vraisemblable que l’entrée de gamme soit suffisante, et même adaptée. Pour un professionnel tel qu’un électricien ou un plombier, ce matériel est son outil de travail : il est impensable d’utiliser de l’entrée de gamme, il lui faut du matériel de pro, celui qui est solide, de qualité et en conséquence, cher. Il lui faut le haut du rayon. Toute autre gamme sera inadaptée, car ces outils ne lui permettront pas de travailler correctement.

Il en va de même pour un programmeur. Son écran est son outil de travail. Le programmeur n’est certes pas un professionnel de l’image et n’a donc pas besoin d’un écran à 2500€ avec un rendu de couleurs qui tient compte du temps de chauffe. Mais un 19″ n’est pas suffisant pour autant. Qu’une entreprise fasse travailler ses développeurs avec quoi que ce soit de moins de 22″ est même très révélateur : c’est considérer qu’ils peuvent se contenter d’outils de bricoleur du dimanche.

Pourquoi cela, pourquoi ce parallèle avec la plomberie ? Un écran est un écran, et on n’use pas un écran comme on use un tournevis ou un coupe-tuyau. Serait-ce un simple caprice consistant à estimer que la taille et le prix de la machine doivent être à la mesure de son égo ? Évidemment pas, d’autant que vu à quel point les écrans de très bonne qualité sont devenus abordables, il en faudrait plus pour flatter l’ego d’un programmeur. :-)

Tout d’abord un écran plus grand permet d’afficher plus grand : cela signifie moins de fatigue oculaire et donc une plus grande capacité de travail. Comme dans beaucoup de métiers (malheureusement serais-je tenté d’ajouter) un programmeur passe la journée devant un écran, à réaliser des tâches qui demandent une forte concentration. Réduire toute source de fatigue périphérique permet de mieux se focaliser sur sa tache.

Ensuite un écran plus grand permet d’afficher simultanément plus de choses, notamment plus d’applications. Un programmeur passe typiquement sa journée à manipuler un nombre élevé d’entre elles: son éditeur, le programme qu’il est en train de développer, la sortie ou les logs du programme, l’outil de debug, le terminal (quand ce n’est pas une demi douzaine d’instances de ce dernier), l’explorateur de fichiers, la documentation, le navigateur web… Il ne travaille bien entendu pas avec tous en même temps, ce qui serait d’ailleurs contre productif étant donné que l’on se concentre mieux sur une chose à la fois, mais couramment avec deux ou trois en parallèle. Suivre à la fois éditeur, programme, sortie et debug est classique par exemple. Plus l’écran est grand, plus il permet de mettre ces applications côte à côte et moins il est nécessaire de jongler entre les fenêtres de ces programmes.

Enfin un écran plus grand permet d’afficher plus de texte. Parmi tous l’éditeur est sans doute l’outil que le programmeur utilise le plus, puisque son travail consiste en résumé à y écrire, mais aussi lire, du code. Bien qu’il soit de bonne pratique de travailler sur du code concis – fonctions courtes, fichiers courts – il n’est pas rare de travailler sur des fichiers de quelques centaines de lignes. Un tel fichier ne peut être affiché dans son intégralité, et ce serait vain du fait de la quantité trop importante d’informations assenée. Afficher une partie conséquente du fichier permet néanmoins de donner du contexte visuel facilitant la localisation d’éléments et d’éviter de devoir défiler en permanence. De plus quelque soit le projet, pour une tâche donnée, il est courant de devoir manipuler simultanément au moins deux et souvent trois fichiers différents, quand ce n’est pas beaucoup plus. Avec un grand écran il est possible d’afficher simultanément plusieurs fichiers tout en gardant ce contexte visuel. Il n’est alors plus nécessaire de jongler entre ces fichiers à chaque fois que l’on cherche une information, mais simplement de déplacer le regard.

Même le plus doué des jongleurs de raccourcis clavier avec une configuration de gestionnaire de fenêtre soignée aux petits oignons ne tient pas la comparaison en terme de vitesse face à quelqu’un à qui il suffit de déplacer le regard.

En conclusion le coût d’un écran de taille décente, ou même de plusieurs d’entre eux, est vraiment risible devant le gain en productivité pour un programmeur qui doit passer l’essentiel de son temps dessus. Si vous n’êtes pas convaincu, je vous invite à lire d’autres arguments et exemples qui me donnent même l’impression d’être encore très modéré.

Maxime

Hier j’ai fait la connaissance de Maxime. Il devait être pas loin de huit heures du soir, je marchais dans les rues du 13ème arrondissement de Paris, en plein quartier chinois, cherchant du regard une boutique qui proposerait des services d’encadrement, quand j’ai entendu un voix discrète sur ma gauche qui tentait timidement de m’interpeler.

C’était un jeune homme qui se tenait assis sous un petit porche. N’ayant pas compris sa phrase, quoi que me doutant un peu du contenu, je lui fais répéter. « Vous n’auriez pas une pièce ? » « Peut-être. » Je fouille dans mon porte-feuille tout en entamant la discussion. Il semble particulièrement jeune : des traits bouffis de fatigue sur un visage de lycéen.

Maxime a 20 ans. Il n’est bien sûr aucunement qualifié, et ce d’autant moins qu’il a pour seul diplôme un BEP. Il est à la rue depuis octobre ; presque un an, en attente d’une place dans un foyer, mais ça n’avance pas. Pas de famille, pas de potes, et puis au bout d’un moment on ne peut pas abuser de l’aide des gens. D’ailleurs son compagnon d’infortune, que je n’ai pas rencontré mais dont il m’a parlé, en a payé le prix : à lui rendre service il s’est retrouvé lui aussi à la rue. Il est le plus âgé des deux : 21 ans.

Je lui demande comment ils dorment, comment ils se douchent… Dormir, c’est ici ou là, dans la rue, à même le sol. Ils n’ont pas de sac de couchage ou de tapis de sol, car ça pose des problèmes de posséder de l’équipement quand on n’a pas de chez soi. Alors dormir est un bien grand mot : c’est une somnolence de quelques heures. Ceux qui ont déjà dormi sur du bitume le savent bien. La toilette se passe au Mac Do ou autre endroit du genre. Pour les douches ils ont essayé les bains public, mais la description qu’il m’en donne suffit à me faire comprendre pourquoi ils n’y retournent pas. Ils ne connaissent pas de squat ; ils ont déjà fréquenté des gens, mais avec la drogue ils ont préféré s’éloigner. Ses propos transpirent l’humilité et l’intégrité.

Alors ils économisent jour après jour afin de pouvoir s’offrir une nuit d’hôtel une fois de temps en temps. C’est le seul moment où ils peuvent recharger leurs batteries dit-il. Là ils peuvent dormir, prendre une douche. Mais l’hôtel c’est cher, et lui n’arrive à faire qu’une dizaine d’Euros par jour, « Alors 20 Euros, sa phrase est restée en suspend, 20 Euros c’est trop ». Pourtant quand on travaille, 20 Euros ça représente au plus à peine deux heures de travail. Mais comment travailler dans cette situation ?

Je lui demande quelle est la dernière fois qu’il a travaillé : un chantier, en février. Mais le patron a fini par lui faire arrêter, s’inquiétant de sa santé avec l’hiver. Et pour trouver du travail, il faut un CV, un téléphone… Pendant la discussion un asiatique est passé rapidement, lui annonçant sans lui promettre que c’était peut-être bon pour demain. Un plan pour une carte SIM. « C’est sympa, il n’est pas obligé de nous aider comme ça. » Et puis tout coûte cher : pour faire un CV, etc.

En deux mots, à un âge où ils devraient être à l’université ou apprentis sur un chantier, ils sont dans une merde noire.

« Je peux te proposer un lit et une douche, pour un jour ou deux.

– Mais y a mon pote…

– Je peux vous proposer deux lits et une douche.

– Ouais mais je veux pas vous gêner…

– Honnêtement ça me fait encore plus chier de te voir dans la rue. »

Son expression ne laisse aucun doute sur l’idée de pouvoir dormir sous un toit, mais ils ont déjà eu de mauvaises expériences semble-t-il sous-entendre, alors il va voir avec son pote quand ils se retrouveront. Je lui laisse un numéro où me rappeler. Je n’ai pas eu de nouvelle depuis. Peut-être ont-ils préféré ne pas faire confiance, peut-être n’ont-ils pas osé, peut-être un peu de tout ça. Peut-être aussi ont-ils eu une autre galère et n’ont pas pu me joindre. Je repasserai à l’occasion prendre des nouvelles.

Maxime est facile à trouver : il est toujours sur la rue d’Ivry, pas très loin de la rue Tolbiac. Il ne sait pas que j’ai écrit ceci, mais si vous pensez pouvoir l’aider, passez donc lui rendre visite. Ma conviction est qu’ils n’ont rien à faire là, croulant sous la fatigue et pourtant inactifs, quand ils devraient jouer un tout autre rôle dans la société. Mon impression est qu’il faudrait finalement assez peu de chose pour les sortir de là, mais que c’est absolument hors de portée sans une aide extérieure : un lit, un repas, un travail (à ce stade autant dire que même une très courte durée serait bien venue)…  Si vous avez cela, merci pour eux.

L'homme qui venait de partout

Pour mon deuxième passage à Hiroshima, deux ans après le premier, je suis retourné à ce café que la serveuse d’un restaurant avait eu la gentillesse de nous conseiller : le Café 44 (à prononcer en français).

Là, assis seul au bar, faute de place ailleurs en ce vendredi soir, je discute avec la serveuse du bar. Elle est déjà venue à Paris, il y a deux ans. Amusant comme coïncidence. Un client s’installe un peu à ma droite : un homme d’une quarantaine d’années, apparemment employé de bureau, peut-être avec des responsabilités, probablement père de famille. Il semble être un habitué des lieux et entame la discussion avec la serveuse et moi.

Je lui demande d’où il vient. C’est une question que je pose souvent aux japonais que je rencontre. « De Osaka. Mais j’ai habité à Tokyo. » À son tour il me demande par quelles villes je suis passé : Tokyo, Nagoya… « Ah, Nagoya, j’ai vécu à Nagoya aussi ! » « Mais vous avez vécu partout ! » « Oui, un peu. » concède-t-il avec un sourire.

Je lui demande alors, parmi ces villes, dans laquelle il a préféré vivre. La question m’est naturelle, pourtant il semble surpris. Elle le plonge dans une profonde réflexion, comme si on ne la lui avait jamais posée auparavant.

Après un temps il me répond : « Kobe ».

Utiliser un clavier PC AZERTY sous Mac OS X

Outre un enthousiasme modéré pour la disposition du clavier Mac, comme j’utilise un clavier de type PC la plupart du temps tandis que je travaille sur Mac au bureau, afin d’éviter de devoir changer mes réflexes à l’échelle de la journée, j’utilise un clavier PC sur le Mac également. On trouve très facilement sur le net des dispositions de clavier Mac pour PC, mais pas vraiment l’inverse, et les rares que j’ai trouvés ne m’ont pas semblé satisfaisants. J’ai donc pris le temps de configurer intégralement ma disposition clavier, que vous pouvez télécharger en bas de ce billet.

Cela m’a d’ailleurs permis d’ajouter au passage quelques combinaisons de touches personnelles donnant accès à des caractères brillant par leur absence du clavier AZERTY (lettres accentuées majuscules et « Ç » cédille majuscule grâce à la touche CAPS LOCK, ligatures « Æ » et « Œ » et avec la touche Alt et respectivement « A » et « O ») : pouvoir les utiliser sans recourir à des astuces ou des fonctionnalités dépendantes de l’éditeur est un plaisir quotidien. L’outil utilisé pour écrire cette disposition est le logiciel Ukelele.

Voici donc le fichier de configuration, à placer dans le répertoire adapté (/Library/Keyboard Layouts/ ou ~/Library/Keyboard Layouts/) pour pouvoir utiliser cette disposition. Une fois votre session fermée puis ouverte à nouveau, la nouvelle disposition sera accessible depuis le panneau International des Préférences Système. En espérant que cela vous rende service. ;-)

Disposition clavier PC AZERTY pour Mac OS X.

La programmation n'est pas un art

Il arrive de rencontrer au détour d’une page Internet des discussions sur la question de savoir si la programmation est-elle un art. Ma réponse à cette question est très tranchée : non, la programmation n’est pas un art.

La première question à se poser pour en débattre est ce qu’est l’art. Des générations de penseurs ayant été bien en peine d’y répondre, voyant systématiquement leurs artistes contemporains se faire un plaisir d’invalider par l’exemple leurs définitions successives (non l’art n’est pas forcément beau par exemple), je vais éviter soigneusement ce jeu auquel on perd des plumes facilement. Je vais plutôt me limiter à ce que l’art peut faire.

L’art peut émouvoir.

Un livre, un poème, un dessin, une peinture, une photo, une musique, une pièce de théâtre, un film, une danse, un opéra savent émouvoir. Avec une finesse parfois déconcertante. Un ornement floral peut exprimer aussi bien la passion que le deuil de même qu’une architecture peut exprimer le romantisme, le respect, le bien-être ou l’angoisse. Si l’on s’interroge sur ce qu’on considère habituellement comment tenant de l’artistique, on constate qu’une caractéristique de l’art est de pouvoir exprimer et communiquer, sciemment, des émotions.

Un programme informatique quant à lui exprime des concepts. Il ne communique aucune émotion. Ce n’est pas un art. On peut certes faire de l’art grâce à la programmation, mais elle n’en est pas un art pour autant : la sculpture est un art mais pas le maniement du ciseau en soi. Il existe certes plusieurs façons de résoudre un problème, dont certaines sont plus élégantes que d’autres, mais savoir les choisir tient de la compétence et non de l’art. Bien programmer est certes tout un art, mais maîtriser l’art de la programmation ne rend pas plus artiste que de maîtriser l’art de démontrer des théorèmes.

Non, la programmation n’est pas un art.

À vrai dire j’ai une certaine incompréhension envers cette tentative d’élever, si tant est que ce terme soit adapté, la programmation au rang d’art. Comme si sa nature scientifique était insuffisante pour la rendre digne d’intérêt et que la qualification d’art seule lui permettait d’acquérir des lettres de noblesse supposées manquantes.

Bon, tout ceci étant dit, je veux bien accorder qu’un programme peut faire ressentir de l’angoisse, faire rire, mettre en colère ou simplement donner envie pleurer. ;-)

Contemplation