Culture

Ruby: Où est le programmeur _why?

Il était une fois le programmeur le plus étrange et le plus aimé du monde. Un jour, il disparut...

<a href="http://www.flickr.com/photos/jarkko/177403007/">_Why</a> /  jarrko via Flickr CC License By
_Why / jarrko via Flickr CC License By

Temps de lecture: 34 minutes

En mars 2009, Golan Levin, directeur du STUDIO interdisciplinaire de recherches créatives de l’université Carnegie Mellon (CMU), invita un programmeur aussi célèbre que mystérieux, uniquement connu du monde virtuel sous le pseudo de «Why the Lucky Stiff» ou «_why» (non, ce n’est pas une coquille), à intervenir lors d’une conférence de la CMU appelée Art && Code (pas une coquille là non plus), événement où nerds à tendance artistique et artistes à tendance nerd se retrouvent pour parler affaires.

_why vint à Pittsburgh et présenta son dernier projet à une salle remplie d’étudiants programmeurs et d’artistes. Il affichait une allure de beau gosse débraillé, paraissait avoir dans les 30-35 ans, portait les cheveux longs tombant dans les yeux et un immuable petit sourire. On aurait dit le membre d’un groupe de rock indé —d’ailleurs il a réellement fait partie d'un groupe de rock indé— ou le chef d’une troupe d’improvisation expérimentale.

_why / jarrko via Flickr CC License By

Pendant ce symposium, il arborait une paire de lunettes de soleil trop grandes et une veste de sport impeccable rehaussée d’une pochette rouge, détail incongru sur une tenue de prof guindé. Il s’y présenta en tant que «professeur free lance.» «Je ne sais pas exactement pourquoi on m’a invité ici aujourd’hui. Je ne suis pas associé à quoi ce soit de connu» avoua-t-il, provoquant des gloussements dans la salle pleine à craquer.

Il plaisanta sur son pseudo Internet, Why the Lucky Stiff:

«Certains voudraient m’appeler M. Why. Mon badge était classé à la lettre «L.» Mais en fait, c’est juste un deuxième prénom. Il n’y en a pas de premier, ni de nom de famille. Juste un deuxième prénom. C’est sa seule nature.»

Puis il présenta son nouveau produit, une application gratuite appelée Hackety Hack, imaginée par lui de A à Z pour résoudre un problème qu’il appelait le «Little Coder’s Predicament» [Le fâcheux problème du petit codeur] dans un manifeste de 2003.

Le fâcheux problème du petit codeur

Le fâcheux problème du petit codeur est né de la difficulté suivante: nous vivons dans un monde regorgeant de technologies incroyablement élaborées, omniprésentes et faciles à utiliser. Votre grand-mère a un smartphone. Votre fils de deux ans sait jouer avec un iPad. Mais la technologie derrière ces merveilles est complexe et invisible, soustraite aux yeux des humains qui la contrôlent. Et elle ne nous laisse pas non plus beaucoup d’occasions de nous livrer à de la programmation basique. Pour nous tous ou presque, le code, cette langue qui contrôle ces objets et, dans un sens, notre monde, reste mystérieux et indéchiffrable.

Autrefois, vous pouviez bidouiller votre vieux Commodore 64 sans trop vous fatiguer. Mais essayez seulement de comprendre quelque chose aux millions de lignes de code qui contrôlent un ordinateur sous Windows, le moteur de recherche Google, votre Android ou votre iPhone. Pour les novices, l’interface utilisateur et l’inviolabilité du code protégé par la loi vous empêcheront ne serait-ce que de le voir. Et même si vous parvenez à y jeter un œil, ce code serait si compliqué que vous auriez le plus grand mal à le comprendre, sans parler même de le manipuler.

C’est pour cette raison, expliquait _why dans le «Little Coder’s Predicament» —et lors de moult conférences et autres comités— que trop peu de gens apprennent à coder. La courbe d’apprentissage était trop abrupte. Il fallait un moyen simple, ludique et cool pour attirer les gens.

Une application pour rendre ludique le code

«Il nous faut des résultats immédiats pour donner confiance aux grands débutants. Des méthodes simples pour envoyer un mail, lire une page Web, jouer de la musique» écrivit-il. En outre, les programmeurs novices —surtout les enfants— ont besoin de ce moment de délire où ils comprennent que ce sont eux qui contrôlent l’ordinateur, que la programmation leur assure que l’ordinateur leur répond.

Et c’est là qu’Hackety Hack est entré en scène.

Hackety Hack

Hackety Hack commence par présenter Ruby, la langue de programmation favorite de _why, aux enfants. Puis il explique que la programmation, ce n’est rien d’autre que de donner des ordres à un ordinateur stupide et décérébré. Le patron, c’est vous. C’est à vous qu’il répond. Et avec assez de pratique, vous pouvez lui faire faire quasiment tout ce que vous voulez simplement en tapotant quelques touches.

Au bout de quelques minutes d’apprentissage de Hackety Hack, vous êtes capable d’utiliser de vrais codes pour donner l’ordre à une tortue de tirer un trait ou de dessiner une forme. En une heure, vous pouvez créer une bibliothèque virtuelle de vos bandes dessinées, ou insérer des blagues dans des fenêtres pop-up. Vous voilà instantanément investi d’un statut de créateur. Et soudain, les mystères du fonctionnement d’un ordinateur ne vous semblent plus si mystérieux que ça.

Plus de _why

Hackety Hack a résolu le «fâcheux problème du petit codeur»: assez divertissant pour intéresser un enfant, il est suffisamment malin pour lui faire apprendre des choses. Mais quelques mois à peine après l’avoir lancé, à la grande surprise des programmeurs utilisant Ruby qui éprouvaient pour lui une admiration confinant à la vénération messianique, _why a disparu.

Le 19 août 2009, son site personnel s’est bloqué. Il a cessé de répondre aux mails. L’accès public à son code a disparu. Son compte Twitter —envolé. Hackety Hack —volatilisé. Des dizaines d’autres projets —partis.

Les forums populaires, mailing listes et autres blogs autour de Ruby furent pris de panique. Avait-il été piraté? Est-ce que quelqu’un avait de ses nouvelles? Courait-il un danger physique? Une question, dont l’ironie ne passa pas inaperçue chez les Rubyistes passionnés, se faisait plus pressante que les autres: Pourquoi? Why?

***

Chaque année, Slate accorde un mois à ses employés pour leur permettre d’entreprendre un projet ambitieux qui explore un aspect nouveau dans le domaine du journalisme sur Internet. Tim Noah a choisi d’expliquer les inégalités de revenus. Julia Turner a exploré le monde des panneaux de signalisation. Dahlia Lithwick a écrit un roman chick-lit en temps réel, avec l’aide de ses amis de Facebook. Moi j’ai décidé d’apprendre à programmer.

Pourquoi? Je comprends, bien que de façon imparfaite, les lois qui régissent le monde physique qui m’entoure. Demandez-moi pourquoi une pomme tombe par terre ou un bouchon de liège flotte sur l’eau, ou pourquoi les électrons ne s’écrasent pas sur le noyau, je pourrai au moins tenter une explication. Mais le monde virtuel dans lequel j’évolue est un mystère. Arthur C. Clarke a écrit: «Toute technologie suffisamment avancée est indifférenciable de la magie.» Pour moi, et pour la plupart d’entre vous, j’imagine, l’ordinateur, c’est ça: une boîte magique, qui brille un peu. Apprendre à programmer m’aiderait à démystifier les technologies que j’utilise au quotidien et me permettrait même de créer ma modeste petite magie à moi.

Mais quelle langue apprendre? Sur recommandation de mes amis développeurs de logiciels, directeurs de projets et informaticiens, j’ai décidé de commencer avec Ruby, et ce pour trois raisons.

Ruby pour débuter

Premièrement, c’est une langue de plus en plus populaire, surtout pour les applications sur le Web. Elle est à la base d’un bon nombre de services cool et de sites que j’utilise régulièrement, comme Paperless Post et Living Social.

Deuxièmement, son code est relativement concis, ce qui le rend donc plus facile à taper et permet de moins s’emmêler les pinceaux. Imaginons que nous voulions rédiger un programme qui fasse dire à l’ordinateur: «Hello, world!» Avec Ruby, l’application entière se rédige ainsi:

print «Hello, world!»

Et voilà. Maintenant, imaginons que nous voulions la même chose en Java, le langage de programmation utilisé, par exemple, par environ 3 milliards de téléphones portables. Voilà comment il faudrait s’y prendre:

class Hello       { 

        public static void main(String args[])      {

           System.out.println(“Hello, world!”);

        }

}

Et attention, pas question de faire la moindre erreur dans l’un de ces petits { ou ), hein. Pour les dilettantes à gros doigts comme moi, Ruby est bien plus facile pour débuter.

Troisièmement, les Rubyistes ont la réputation souvent exagérée, mais pourtant méritée, d’être les Bisounours excentriques du monde de la programmation. Leur devise est MINSWAN, soit Matz Is Nice So We Are Nice [Matz est gentil alors nous aussi], référence au fondateur notoirement adorable du langage, Yukihiro Matsumoto, dont le pseudo Internet est Matz. On va tous très bien s’entendre.

Premiers pas difficiles

Une fois mon langage choisi, j’ai commencé par acheter et lire les grands classiques de la programmation. J’ai commandé la géniale histoire de la programmation rédigée par Steve Lohr, Go To, pour avoir une explication en bon anglais du fonctionnement d’un ordinateur et un peu de contexte sur le développement des logiciels et du matériel. Et je me suis procuré le plus recommandé des manuels de Ruby: Programming Ruby, surnommé «le livre-pic à glace» car sa couverture arbore un piolet, et _why’s (poignant) Guide, genre de roman graphique écrit par le programmeur disparu que l’on peut lire en ligne ou imprimer gratuitement.

Un mois devant moi et un café à la main, j’ai commencé à lire. J’ai avalé l’histoire de Lohr en moins de deux (saviez-vous que les premiers «ordinateurs» étaient en réalité des femmes payées pour insérer d'immenses cartes perforées dans des machines encore plus énormes? Moi non plus). Alors que quand j’ai ouvert les manuels de Ruby il ne m’a fallu que quelques secondes pour être paumée.

Le livre-pic à glace vous montre d’abord comment installer Ruby sur votre ordinateur (ce qui fait naître une étrange question ontologique: un langage de programmation est-il un programme? Fondamentalement, oui. Vous pouvez le télécharger sur Internet pour que votre ordinateur sache le parler).

Puis le livre-pic à glace passe à des trucs du genre:

«Ruby est un langage authentiquement orienté vers l’objet. Tout ce que vous manipulez est un objet, et les résultats de ces manipulations sont eux-mêmes des objets. Cependant, de nombreux langages revendiquent la même chose, et leurs utilisateurs ont souvent une interprétation différente de ce que signifie d’être orienté vers l’objet et une terminologie distincte pour les concepts qu’ils emploient.»

Manuel de programmation ou théorie de Derrida? À mesure que j’avançais, ça s’améliorait peu. Presque toutes les pages nécessitaient une recherche frénétique sur Google, suivie par un état de confusion morose. Rien que le champ lexical était immense et compliqué. Strings! Arrays! Objects! Variables! Interactive shells! J’avais presque compris, me disais-je. Et le lendemain matin, je ne me souvenais plus de rien. Ruby était pour moi à peine moins que du chinois.

Un guide post-postmoderne

Le premier livre de _why, The (poignant) Guide, ne s’avéra que très légèrement mieux. Dada ou post-postmoderne serait peut-être une description plus pertinente pour ce guide que l’adjectif poignant. Il s’ouvre sur le dessin d’un chat, à côté d’un «elfe et de son jambon domestique.» Le texte débute avec un mot de _why expliquant qu’il a mis un oignon au centre du guide. Pourquoi un oignon? Parce que tout le monde va apprendre à écrire le code et ce sera tellement beau que tous auront envie de pleurer.

Le texte est un mélange cacophonique de hauts et de bas, de sincérité et de cucul la praline, encombré d’images, de collages, d’encadrés décousus, d’histoires et de dessins. Les métaphores sont assez curieuses. L’elfe, par exemple, utilise des feuilles et des cristaux bleus comme monnaie. L’un des chapitres est en partie raconté à travers le prisme de la vie et de l’époque d’un certain Dr N. Harold Cham.

Dans son virage le plus ouvertement littéraire, _why, apparemment perturbé par sa relation avec une sœur suicidaire qui a arrêté ses études d'art, abandonne l’écriture de son livre. Les renards et le chat récupèrent son stylo pour se redessiner et reprendre le projet, jusqu’à ce que _why, déguisé, revienne.

_why lui-même l’envisageait comme un projet littéraire. «Le livre qui est pour moi le plus proche du mien est Le bizarre incident du chien pendant la nuit, qui intercale de brefs casse-tête mathématiques et des diagrammes astronomiques dans le récit» a-t-il envoyé sur une mailing list. «J’ai envie de présenter une première tentative de texte de programmation ayant une valeur littéraire. J’ai aussi envie que les gens ressentent au moins ce que je ressens quand je programme.»

Code pour apprendre à coder

Le livre est charmant mais épuisant. Mais surtout, le lire de bout en bout ne m’a pas rapprochée le moins du monde du moment où je serais capable de hacker—terme qui, soit dit en passant, veut davantage dire «coder génialement et efficacement» que «s’introduire par effraction».

Frustrée, j’ai demandé conseil sur Twitter. Des programmeurs m’ont répondu avec la solennité réprobatrice d’un chœur antique: on ne peut pas apprendre à coder dans les livres, pas sans essayer vraiment d’écrire des codes soi-même! Ce serait comme apprendre l’espagnol en lisant le dictionnaire, sans même tenter de dire: «hola, el mundo!».

Les langages de programmation sont des langues comme les autres: pour les maîtriser, il faut absolument les utiliser. Il me fallait écrire mon premier programme.

***

Fin 2009, la disparition de _why s'est déroulée en temps réel sur Internet, à mesure que les Rubyistes remarquaient que ses projets s’étaient volatilisés et relayaient l’information sur des forums populaires. Il ne s’agissait pas simplement d’un seul site ou serveur, réalisèrent-ils assez vite. _why, son blog, son compte Twitter et tout son code en open-source s’étaient évaporés d’Internet, d’un seul coup. Le terme consacré est «infosuicide», événement rare mais pas inconnu.

Deuil dans la communauté

À Ruby Inside, site d’information populaire autour de Ruby, Peter Cooper, programmeur et enseignant de Ruby, relaya la soudaine disparition du «génie cinglé attitré de Ruby.» Il souligna que les travaux de _why «revêtent une grande importance pour les Rubyistes, non pas uniquement pour leur utilité mais pour leur contribution significative à la culture Ruby, et si _why a réellement disparu de la circulation, c’est vraiment grave

Les centaines de tweets et de messages postés sur les forums traversèrent toutes les étapes du deuil définies par Elisabeth Kübler-Ross. L’incrédulité d’abord. «Peut-être que son ordinateur, ou ses mails ont été piratés... il faut attendre de voir si nous avons des nouvelles avant de supposer qu’il a effacé tous ses comptes lui-même» avança un internaute.

Ensuite vint la colère. Zed Shaw —éminent hacker ayant notoirement déserté Ruby— vécut cet infosuicide comme un affront. «Retirer tous ses codes et effacer intégralement son image sans avertir personne ni aider les gens à reprendre des projets dans lesquels ils se sont investis pendant des années est digne d’une tête de nœud» s’énerva-t-il sur son blog.

«Je le dis brutalement, mais je suis vraiment contrarié, parce que si je respecte l’idée du caractère éphémère des choses, je n’ai aucun respect pour quelqu’un qui méprise complètement les investissements et les sentiments des autres

Ensuite vint l’étape du marchandage. Peut-être allait-il revenir bientôt, et était-il occupé ailleurs par un autre projet, proposèrent certains Rubyistes. «_why était pour la communauté Ruby ce que Willy Wonka était pour le chocolat. Peut-être, juste comme le Willy Wonka fictionnel s’est enfermé dans son usine de chocolat pendant tant d’années… _why est-il simplement en train de s’isoler dans son usine à programmation» suggéra un internaute plein d'espoir.

Une grande dépression s’ensuivit. «wow, comme c’est triste. ça a fichu ma journée en l’air. c’était vraiment mon idole. c’est principalement grâce à lui si j’ai essayé ruby. j’adore tout simplement tout ce qu’il a fait» afficha un commentaire typique. En effet, des centaines de hackers écrivirent pour chanter les louanges de _why et expliquer comment il leur avait donné envie d’apprendre à coder.

Certains accédèrent au stade de l’acceptation. La réaction qui circula le plus était de nature introspective, et vint du programmeur John Resig. «Lorsque l’on regarde l’œuvre et l’art cumulés de _why, la douloureuse évidence doit sauter aux yeux: la présence en ligne de _why, et tout le code, ce qui a été écrit, la musique et les dessins produits ne sont qu’une portion transitoire de la vie d’une personne» écrivit-il.

«Il passait constamment de projet en projet, de blog en blog. Maintenant il a vraiment avancé et nous devrions nous réjouir d’avoir eu l’occasion de les connaître, lui et son art, ces deux dernières années

Mais cela ne fut qu’un piètre réconfort pour les innombrables programmeurs à qui _why avait donné l’envie de coder, ou pour ses nombreux interlocuteurs de la communauté Ruby.

***

Comment Matz inventa Ruby

En 1993, le programmeur japonais Yukihiro Matsumoto —«Matz»—inventa le langage Ruby. Ce projet naquit un peu par hasard, me confia-t-il alors que nous étions installés dans les méandres du San Francisco’s Moscone Center, où il devait prononcer un discours devant les 40.000 personnes de la conférence sur le cloud-computing DreamForce.

Il sentait des frictions avec les autres langages qu’il utilisait. Il se laissait déconcentrer quand il essayait de manipuler des codes. Il se sentait ralenti. Il aurait voulu pouvoir bidouiller du code lui-même pour aller plus vite de A à B. Il programmait depuis l’enfance. Il avait étudié les langages de programmation. Intuitivement, il avait deviné qu’il existait quelque chose de plus simple et s’était mis à en composer un.

Matz / kakutani via Flickr CC License By

«Ruby est fait pour rendre les programmeurs heureux» dit-il, expliquant qu’il voulait réfléchir à un langage intuitif pour les programmeurs plutôt que centré sur les capacités de l’ordinateur. «Ce sont les humains qui comptent, pas la machine

Vingt ans plus tard, Matz est un gourou de l’open-source et le personnage central du monde de Ruby, l’arbitre ultime des changements apportés au langage et celui qui est chargé de le mettre à jour à mesure qu’évoluent les besoins et les capacités des programmeurs. En ce moment, il est «architecte en chef» de Ruby à Heroku, section de l’énorme entreprise de cloud-computing SalesForce, qui utilise Ruby.

Le langage commença à gagner en popularité au Japon quand Matz le diffusa, bien qu’il affirme avoir très peu œuvré à le promouvoir. Son succès mondial se produisit en deux vagues successives. Tout d’abord, en 1999, Dave Thomas, Britannique obsédé des langages de programmation et développeur de longue date, le découvrit sur un forum Usenet et le téléchargea.

«Avant, je me contentais de jouer avec les langages» me dit-il, expliquant qu’il installait tous ceux qu’il trouvait juste pour les essayer. «En temps normal, j’aurais joué avec pendant quelques minutes. Avec Ruby, j’ai joué une matinée entière. Puis tout l’après-midi

Sa passion pour Ruby incita Thomas et son partenaire d’écriture à produire le livre-pic à glace, qui permit de présenter le langage à un public anglophone bien plus vaste. Si vous étiez un développeur désireux d’apprendre Ruby, vous n’étiez pas obligé le télécharger et de tâcher de vous y retrouver tout seul. Le manuel pouvait vous guider.

De Ruby à Ruby on Rails

La seconde vague—la vraiment très grosse—déferla en 2005, grâce à un programmateur et chef d’entreprise danois installé aux États-Unis appelé David Heinemeier Hansson. _why et Matz sont peut-être les fils prodigues du pays Ruby d’Internet. Mais DHH, comme on l’appelle, est indéniablement la plus grande star de Ruby. Une autorité, au point d’avoir été nommé «hacker de l’année» par Google. Il a aussi fait l’objet de nombreux profils flagorneurs dans les médias, notamment dans Wired qui le catapulta «roi-philosophe» tout en soulignant sa «belle gueule d’adolescent» (si on m’avait dit qu’il avait fait partie d’un boys band à la fin des année 1990, j’aurais pu le croire).

DHH during Dave Thomas' talk / Jesper via Flickr CC License By

En 2005, il se mit à élaborer un programme de gestion de projets basé sur le Web appelé Basecamp, fonctionnant sous Ruby. Et il finit par construire «une grosse infrastructure pour que Ruby convienne à la tâche» m’expliqua-t-il. Et se rendit compte que l’infrastructure s’appliquerait non seulement à Basecamp, mais également à n’importe quelle application du Web. Il la mit en place, et la baptisa «Ruby on Rails.»

Pour l’expliquer plus simplement à l’intention des novices, Ruby on Rails n’est pas un langage, ni une version de Ruby. Il utilise le code Ruby pour permettre de construire un site Internet plus rapidement et plus facilement. Imaginons que vous vouliez fabriquer un produit compliqué sur le Net, comme un service d’invitations en ligne. Vous pouvez faire toute la programmation vous-même. Ou utiliser Ruby on Rails, un framework qui comprend beaucoup des fonctions de bases qui vous seront nécessaires.

Twitter ou Groupon ont utilisé Ruby on Rails

Ruby on Rails connut un succès immédiat. Au printemps 2006, par exemple, un jeune entrepreneur appelé Jack Dorsey décida d’élaborer un service de micro-blogging. Avec Rails, il ne lui fallut que quelques mois pour fabriquer et lancer Twitter (le site a depuis changé de framework et de langage). Des milliers d’autres sites—notamment Github, Living Social et Groupon—utilisent eux aussi l’infrastructure Ruby on Rails.

Rails est devenu si populaire qu’il a converti des milliers de programmeurs à Ruby (quand vous créez un site en Rails, vous codez en Ruby). Combien exactement? Eh bien, difficile d’évaluer la popularité des langages de programmation. Il y en a des milliers, utilisés par des millions de programmeurs pour une gamme de projets si vaste qu’elle en donne le vertige. Il n’existe pas de dépositaire central, et la plupart des programmeurs travaillent en plusieurs langages de toute façon (Matz code une grande partie de son temps en C.)

Mais un classement le place en douzième position. Un autre en cinquième parmi les langages «de script», utilisés pour écrire des logiciels d’application. Certains programmeurs me l’ont décrit en le comparant à l’italien —assez familier, sans être vraiment courant.

***

Mon fâcheux petit problème de codeuse

Je suis restée bloquée dans le Little coder’s predicament. Aussi charmant que soit le (poignant) Guide, il semble cibler un public qui sait déjà programmer et veut aussi apprendre Ruby. Et certes, Hackety Hack est amusant, mais il est destiné aux enfants. Je me suis donc tournée vers un autre projet de _why: TryRuby, un service qui aide les amateurs de tous âges à apprendre à coder.

L’idée est géniale: Un écran apparaît, divisé en deux. D’un côté, les instructions. De l’autre, un espace où taper et appuyer sur entrée —ce qui crée de petits programmes qui sont alors exécutés et évalués directement sur l’écran.

Grâce à la série d’instructions qui s’affichent, vous commencez lentement à absorber le vocabulaire de base de la programmation informatique. Un «string» est une chaîne de caractères traitée par l’ordinateur, encadrée par des guillemets doubles. Les «méthodes» sont des commandes que le programme peut exécuter, comme la multiplication de chiffres par exemple. Les «arrays [tableaux]» sont simplement des listes. «Variables» est le surnom des items souvent utilisés.

Avec ces bases simples, vous pouvez commencer à ordonner à l’ordinateur de faire toutes sortes de choses. Vous pouvez sauvegarder des bibliothèques de données, puis dire à l’ordinateur d’aller y récupérer des items. Vous pouvez créer des fenêtres surgissantes avec des titres et des informations, déclenchées par certaines commandes. Vous pouvez commencer à relier certaines parties de votre programme à Internet.

Donc, une fois TryRuby et un nouveau programme Ruby-pour-débutants installés sur mon ordinateur, j’ai entrepris de créer mon premier programme, qui devait ordonner à la machine de résoudre un problème de maths. Dans le cas de Ruby, le programme entier afficherait : «print 1 + 2.»

Créer son premier programme

Mais il se trouve que connaître un peu un langage de programmation ne signifie pas nécessairement savoir comment faire exécuter un programme par votre ordinateur. Et travailler dans un environnement extrêmement structuré comme TryRuby ou Hackety Hack ne vous aide pas à trouver comment créer et exécuter des programmes sur votre machine à vous.

Tout d’abord, il me fallait télécharger Ruby, qui comme beaucoup de langages existe sous forme de fichier open-source gratuit (je me suis rendue compte plus tard que ce n’était même pas nécessaire —mon Mac relativement récent parlait déjà la langue).

Ensuite, je devais comprendre comment créer et sauvegarder un programme —qui constituait, dans mon cas, une seule phrase de texte. J’ai commencé par le sauvegarder comme un document Word, mais il fallait qu’il ne soit que sous forme de texte. Je l’ai donc sauvegardé sous format texte, mais il fallait que j’ajuste les paramètres pour les adapter à un format plus spécifique. Et comment un ordinateur exécute-t-il un nouveau programme en fait? La réponse, pour mon problème en tout cas, passait par un programme utilitaire appelé Terminal, une interface de base qui vous permet de parler à votre machine.

J’ai créé mon programme. Je l’ai sauvegardé. J’ai ouvert Terminal, et lui ai dit que je lui parlerais en Ruby. Je lui ai ordonné d’exécuter mon programme, en écrivant soigneusement le nom du ficher et l’endroit où il le trouverait.

Ca n’a pas marché. Il m’a fallu plus d’une heure pour trouver que j’avais laissé une espace superflue dans mon code, ce qui empêchait tout le bazar de fonctionner. Mais ensuite, au bout de quelque 98 minutes et de sérieuses recherches sur Google, un 3 est apparu sur mon interface Terminal. J’avais écrit un programme.

***

_why, le barman de Ruby

Qu’était-il arrivé au programmeur plein de vie, drôle et prolifique qui m’aidait à apprendre à programmer? Où était-il parti, pourquoi?

Le plus étrange dans cette disparition est le fait que _why faisait vraiment partie intégrante de la communauté fidèle des programmeurs de Ruby avant son infosuicide. _why n’était pas seulement une célébrité de la communauté Ruby, il en était l’un des fondateurs. Les librairies open-source de Ruby lui devaient des centaines de milliers de lignes de code. Il avait écrit l’un des plus célèbres manuels de Ruby. En outre, quand le langage commença à prendre dans le monde anglophone, _why devint l’équivalent du barman du vendredi soir de l’unique saloon de la ville, abritant toute une série de blogs populaires et écrivant souvent sur des forums Ruby, prêchant la beauté et la simplicité du langage.

Il était également réputé pour ses performances aussi bizarres qu’énergiques lors de ses conférences. Prenez par exemple son apparition à la O’Reilly Open Source Convention de 2005, événement annuel qui attire un essaim de sommités des nouvelles technologies, de gourous de l’open-source, de pirates et de partisans des logiciels libres.

Cette année-là les invités présents étaient la population nerd et loquace habituelle. Larry Wall, créateur du langage de programmation populaire Perl, vêtu d’une chemise hawaïenne, fit son discours humoristique annuel sur «l’état de l’oignon» (jeu de mot sur le Discours sur l'état de l'Union du président américain). DHH parla de Ruby on Rails.

_why montra un panneau au titre impénétrable «A Starry Afternoon, a Sinking Symphony, and the Polo Champ Who Gave It All Up for No Reason Whatsoever [Une après-midi étoilée, le naufrage d’une symphonie, et le champion de polo qui abandonna tout sans aucune raison valable] —ode à Ruby, accompagnée d’une vidéo partiellement commentée par deux renards dessinés, des ombres chinoises et une musique de fond.

Le mystère de _why

Les personnes présentes me confièrent que la présentation fut à la fois «géniale» et «catastrophique.» Un élément interactif partit complètement de travers au moment où les participants encombrèrent les serveurs de la salle de convention. Cela n’eut quasiment aucune conséquence. Le public était ravi. «C’était tout simplement magique» s’extasia Glenn Vanderburg, développeur de Ruby à Living Social.

En effet, ce genre de fantaisie contribua à faire de _why une icône de la communauté Ruby, communauté qui conserve une bonne part de fantaisie en grande partie à cause de lui. «Il était très aimé, très important» approuve Matz.

Mais rares étaient ceux qui connaissaient l’identité réelle de _why. Il réservait ses places aux conférences sous un pseudonyme. Il ne sortait jamais de carte de crédit devant d’autres participants aux événements sur Ruby, préférant payer en liquide. Il quittait les événements publics en se volatilisant tout simplement. Il avait même mené une campagne pour tuer son profil Wikipedia.

Extrait de _why’s (poignant) Guide, cliquez sur l'image pour l'agrandir

Personne ne l’appelait autrement que _why, ni ne le pressait de se distancer de son identité en ligne. Il existe une omerta autour de ce genre de choses.

Dans ses écrits, il manifestait un désir de pureté artistique issu de l’obscurité. «les gens s’accrochent à des idées, parce qu’elle sont censées être la clé qui leur fera gagner un million de dollars. non, écrivez un livre obscur. construisez quelque chose en dehors de toute cette pression. j’imagine qu’une cabane dans les arbres pour des mômes, ça marche» écrivit-il en 2004.

Il faut sauver le soldat Hackety Hack

Mais quand _why se volatilisa, la communauté Ruby voulut, car elle en avait besoin, récupérer son code open-source, et quelques heures après sa disparition se mit à travailler frénétiquement pour sauver tout ce qui pouvait l’être. Steve Klabnik est un programmeur agile aux cheveux d’un noir de jais dont il a teint une bonne partie en blanc. Professeur de programmation en herbe, il adorait Hackety Hack. Quand _why a disparu, il est resté branché sur les forums pour s’assurer que quelqu’un allait le prendre en charge.

«Je me suis juste dit: c’est un projet réellement important, et quelle que soit la personne qui décide de s’en charger, je l’aiderai parce que je ne suis pas prêt pour un projet open-source. Un jour ou deux ont passé. D’autres projets ont été repris, presque tous les autres, mais personne n’a choisi Hackety Hack» me raconta-t-il. «Je me suis dit: je refuse de le laisser mourir, je vais commencer à y travailler. Peut-être que quelqu’un le reprendra pour de vrai

Klabnik a trouvé une grande partie du code de Hackety sur d’autres serveurs. Mais il lui fallait tout de même «détricoter» le site lui-même. L’entreprise semblait de taille. Elle avait aussi quelque chose d'insolite —comme de vivre dans la maison d’un mort, ou de tenter de terminer la peinture de quelqu’un d’autre. «Reprendre quelque chose d’aussi intensément personnel, et une telle œuvre d’art, est très étrange» confia-t-il. «J’avais très peur d’y toucher, parce que je ne voulais pas détruire sa vision du projet

Andrew McElroy, autre programmeur et défenseur des animaux basé dans le Tennessee, connu en ligne sous le pseudo de Sophrinix, a fait à peu près la même chose avec TryRuby. «Le jour où il a disparu, la première chose à laquelle j’ai pensé c’est "que va-t-il arriver à TryRuby?"» explique-t-il. «Je suis allé sur le Ruby Reddit et j’ai demandé si quelqu’un s’en était occupé. Personne ne l’avait fait, et personne ne savait où était le code

McElroy et quelques autres volontaires finirent par le reconstituer, en rassemblant quelques morceaux sauvés du désastre et en réécrivant méticuleusement la plus grande partie du reste du site. «Il avait besoin d’être retravaillé» signale-t-il, soulignant que ses fonctions de sécurité étaient inadéquates et une grande partie du code assez faible. Mais un mois plus tard, il l’avait remis sur les rails et n’a cessé de le gérer depuis.

Quelques jours à peine après sa disparition, les Rubyistes s’étaient réappropriés et avaient préservé presque toute l’œuvre de _why. Quelqu’un créa un site unique contenant des liens vers chaque fragment imaginable de son œuvre, hébergés à de nouvelles adresses. Et pendant ce temps, la culture était en deuil.

***

Programmation et littérature

Naturellement, si les Rubyistes aiment Ruby, les partisans d’autres langages vénèrent d’autres langages. Il m’a semblé que les discussions autour de la beauté, de l’élégance et de l’utilité étaient prédominantes parmi les codeurs, toujours à la recherche de métaphores pour décrire comme un acte créatif délirant ce qui peut sembler froid et mécanique.

Lors de mon reportage, j’ai souvent pu faire une comparaison avec la littérature: un programme bien écrit engendre un monde bien plus riche et plus vivant que ne le suggèrent les chiffres, les lettres et les parenthèses qui le constituent. On peut voir Prufrock trembler devant son fruit, malgré le laconisme du poème de T.S. Eliot. De même, de petites portions d’un modeste code, soigneusement élaborées, ont donné naissance à de nouvelles et radicales possibilités. Google, après tout, n’est fondamentalement qu’un algorithme servant à classer la popularité et la qualité des pages Web.

 

Extrait de _why’s (poignant) Guide, cliquez sur l'image pour l'agrandir

_why lui-même soulignait sans cesse le potentiel créatif de la programmation. Dans son (poignant) Guide, il écrit:

«La vitamine R va directement au cerveau. Ruby vous aidera à exprimer vos idées par le biais d’un ordinateur. Vous écrirez des histoires pour une machine

«Le langage deviendra un outil qui vous servira à mieux connecter votre esprit au monde

Plus loin, il écrit:

«Tout ce que vous avez besoin de savoir pour l’instant c’est que Ruby est essentiellement écrit à partir de phrases. Ce ne sont pas exactement des phrases en anglais. Ce sont de courtes séries de mots et de ponctuation qui englobent une réflexion unique. Ces phrases peuvent former des livres. Elles peuvent former des pages. Elles peuvent former des romans entiers, quand on les attache ensemble. Des romans qui peuvent être lus par des humains, mais aussi par des ordinateurs

(Il est intéressant de noter que l’expression «Why, the lucky stiff!» vient du livre d’Ayn Rand The Fountainhead, bien que je n’aie jamais pu trouver une occurrence où _why disait que c’était spécifiquement l’origine de son pseudo. Ce livre parle d’un génie individualiste qui fuit la société pour préserver la pureté de son travail).

A chacun son langage

Comme pour les langues orales, les différents langages de programmation se prêtent à différentes formes créatives. Certaines permettent au programmeur de contrôler le monde plus facilement, plus rapidement, plus précisément ou plus intuitivement. Pour chaque programmeur et chaque projet, un certain langage peut convenir mieux qu’un autre.

Pour le célèbre programmeur néerlandais Guido van Rossum, le langage idéal est Python, le cousin linguistique de Ruby, qu’il a mis au point dans les années 1980 et est devenu l’un des langages les plus souvent utilisés pour les applications Web.

Rossum est aujourd’hui programmeur pour Google, tout en passant la moitié de son temps à exercer l’activité de «dictateur bienveillant à vie» de Python, ce qui signifie qu’il a son mot à dire sur tous les changements apportés au langage lui-même (Sergey Brin, ou un de ses codeurs, utilisa Python en élaborant le moteur de recherche, dans les années 1990, donnant le coup d’envoi à la longue relation entre Python et l’entreprise).

Des langages de «haut niveau» comme Ruby et Python sont devenus particulièrement populaires pour produire des applications Web, comparés à des langages «de bas niveau» comme C, expliqua Rossum.

«Imaginons que je sois en train de donner des indications pour quitter cette pièce» explique-t-il, en désignant du bras le bureau aux murs et tableaux blancs de Google autour de lui, que j’aperçois dans notre conversation Google+, un genre de chat vidéo.

«Avec Python, je dirais simplement un truc du genre, "Levez-vous et prenez la porte". Avec d’autres langages, il me faudrait peut-être préciser les choses comme "Levez-vous, mais sans y mettre trop de force pour ne pas tomber, faites trois pas en direction du nord, un pas vers l’est, approchez-vous de la porte, vérifiez qu’elle est ouverte, si elle n’est pas ouverte, ouvrez-la, puis franchissez-la à la vitesse suivante …"»

«Le programmeur n’a pas à contrôler les menus détails dans l’ordinateur,» note-t-il. Parfois, ça peut être une mauvaise chose. Les langages de plus bas niveau permettent au programmeur de manipuler l’ordinateur en lui donnant des instructions plus précises, par exemple.

Mais quand on développe sur internet, une telle concision, quand elle est bien conçue, est souvent inestimable pour un hacker car elle lui permet de coder bien plus vite.

En outre, avec le temps, gérer un gros corpus de code peut finir par peser au programmeur, avance Rossum. «On dit que tous les programmeurs ne peuvent gérer qu’un certain nombre de lignes de code,» note-t-il. «Disons 10.000 lignes. Avec Python, on peut avoir tellement plus de programmation pour ces 10.000 lignes. Il en faudrait 100.000 pour faire la même chose avec C.»

***

Démasqué avant son infosuicide

Malgré ses immenses efforts pour préserver son anonymat, _why avait été démasqué juste avant son infosuicide.

Un ou plusieurs anonymes avait publié un site web Wordpress étrange et injurieux —aujourd’hui fermé, mais largement reproduit ici— révélant que _why était un programmeur de Salt Lake City appelé Jonathan Gillette. (Il n’y a pas de moyen de connaître l’auteur de ce site Wordpress. Il n’y a pas de nom de domaine et peu d’indices pour retrouver l’adresse IP).

Les preuves affichées par le site Wordpress sont extraordinairement détaillées. On y trouve des photos, des numéros de téléphone, des adresses IP, des détails sur ses études, des adresses. Tout converge vers le même individu: un trentenaire diplômé de l’University of Utah, habitant à Sandy, faubourg de Salt Lake, membre d’un groupe de musique local. Et elles semblent probantes. En 2002 et 2003, par exemple, _why a écrit à des Rubyistes depuis l’ordinateur de son travail, et son nom figurait en bas du mail.

Juste après la disparition, la femme signalée comme étant l’épouse de _why sembla confirmer que Jonathan et lui étaient bien la même personne. Elle tweeta:

«Je mange un burger aux pois chiches avec _why. Vous avez bien entendu??? UN HAMBURGER AUX POIS CHICHES. COUREZ coller ça sur Wikipedia!»

Sur le Web, il subsistait un doute. Certaines traces IP et autres données d’identité profondément enfouies dans les broussailles virtuelles désignaient un habitant du Texas, ou un autre diplômé de l’Utah. Et quelques éminents Rubyistes, y compris Peter Cooper, gardien de Ruby Inside, insistèrent au début sur le fait que le site avait désigné la mauvaise personne.

Mais personne ne douta que les divulgations d’un tel site seraient susceptibles d’envoyer quelqu’un d’aussi fragile et renfermé que _why dans la plus profonde clandestinité.

Programmeur génial... et pas très bon à la fois

Dans les interviews, les collaborateurs et les amis virtuels de _why ont prudemment avancé une autre raison pouvant expliquer son départ du Net. Vanderburg, le programmeur de Living Social, le dit très simplement:

«Le code de _why manquait de rigueur. C’était un formidable penseur, mais pas un si bon exécutant que ça. Donc, il a vu plein de gens prendre ses idées, et les transformer en projets plus durables ou exploitables

Klabnik, qui gère aujourd’hui Hackety Hack, dit à peu près la même chose. «La programmation de _why n’est en fait pas très bonne» explique-t-il, avant de préciser «ce qui ne veut pas dire qu’il n’était pas génial

À chaque fois que _why construisait quelque chose, quelque chose de mieux ne tardait pas à le supplanter; soit une variation de son travail, soit une nouvelle approche. Rien de surprenant vu l’engagement de Ruby envers l’open source, et l’obsession du monde de la programmation pour tout ce qui est le plus nouveau, le plus rapide et le plus malin possible.

Peu de temps avant sa disparition, _why avait confessé que l’omniprésence de l’obsolescence commençait à lui peser. Il avait tweeté:

«la programmation est plutôt ingrate. tu vois ton travail remplacé par des trucs mieux en un an. et impossible à faire tourner en quelques années

Effet Streisand

Son travail était jalonné d’autres indices et avertissements plus subtils. Il écrivit un jour dans son blog RedHanded, par exemple:

«Heureusement, comme je l’ai déjà évoqué, j’ai la forte impression que je mourrai jeune sans intervention extérieure. Que je ne laisserai pas une impression durable. Ce sera ça, ma route. Alors ne vous emballez pas, il me reste juste quelques trucs à faire dans la vie et je débarrasse le plancher.»

Pourtant, même si la personne cachée derrière _why voulait disparaître, _why a tout fait sauf ça. L’effet Streisand a été gigantesque. Parmi les Rubyistes, son identité offline en tant que Jonathan Gillette est devenue connue et acceptée. Et sa disparition n’a fait que le rendre plus célèbre encore.

***

La «Ruby community» —concept qui fait fureur chez les Rubyistes, qui semblent très conscient de leur réputation de clique, dans le bon sens du terme— s’est rassemblée pour la 10e RubyConf annuelle fin septembre 2011, dans un hôtel à l’angle de Bourbon Street à la Nouvelle Orléans.

Le carnaval des nerds

L’ambiance? Un peu «carnaval des nerds,» mais dans un sens positif et revendiqué. À la RubyConf, c’est le plus grand nerd qui gagne, et tous les nerds sont les bienvenus. Les participants portaient autour du cou un collier de grosses perles où était attachée une étiquette portant leur nom, au-dessus duquel figurait souvent leur pseudo Twitter. Des doigts tachés de sucre de beignet laissaient leur empreinte, portable Mac après portable Mac.

Pendant la journée, les participants —dans les 500 au total, dont environ 475 hommes, bien que je me sois laissée fourvoyer par quelques magnifiques queues de cheval— assistaient à des tables rondes pour écouter leurs pairs parler des meilleurs pratiques ou de super nouveaux projets. Matz s’est adressé deux fois à la foule, notamment avec un discours décontracté qui commençait par les mots «Je ne suis qu’un simple programmeur

La table ronde qui incarnait peut-être le mieux l’esprit de la conférence et l’attitude générale de ses participants était une session sur un fatras de menus détails d’encodage. Une foule immense remplissait la plus grande des salles de conférence. En première ligne, quelques jeunes codeurs de Ruby étaient assis derrière un bureau. Avant même qu’ils n’aient commencé, la foule commença à glousser.

Les intervenants écrivirent leurs noms à la main sur des cartes, de gauche à droite : «Thelma,» «Brenda,» «Sally,» «Janet» et «Lois.» Brenda arborait une casquette de capitaine et une pipe. Les intervenants affichaient tous une pilosité faciale à divers stades de développement. Le modérateur déclara que le but du jeu serait d’en apprendre aussi peu que possible, et il encouragea tout le monde à partir pour trouver une conférence plus intéressante. Le public se gondola.

Un exposé sur _why pendant une conférence

Plus tard pendant la conférence, Klabnik présenta son travail et ses dernières mises à jour de Hackety Hack au cours de l’un des nombreux exposés concernant le personnage de _why, toujours présent dans les esprits malgré son absence physique.

«Je retire _why du projet, lentement mais sûrement » expliqua-t-il aux spectateurs.

«Ce n’est pas parce que je n’aime pas _why, parce que _why était génial… mais quand vous rompez avec une fille, vous ne gardez pas éternellement des photos d’elle chez vous

«Ses objectifs étaient différents des miens» ajouta-t-il. «Il m’a fallu un long moment pour accepter l’idée d’enlever des milliers de lignes de code que _why avait écrites.» Il a également pris le temps de critiquer le «piratage de stars» et le culte de la personnalité qui se développe parfois dans ce genre de communautés.

Il se trouve que McElroy, qui administre TryRuby, avait fait la même chose, en ôtant le travail original de _why du projet. Il fit intervenir l’entreprise Envy Labs pour relancer TryRuby et prendre en charge ses coûts d’hébergement (il déboursait une centaine de dollar par mois de sa poche).

«C’est bien plus rapide, et c’est aussi beaucoup mieux présenté» a-t-il annoncé, en expliquant qu’ils retravaillaient les entrailles du site. Il affirma regretter que le code ne soit plus en open-source, mais assura qu’Envy Labs avait promis au moins de garantir un accès gratuit aux milliers de personnes qui l’utilisent chaque année.

_why –by Patrick Ewing / r0wb0t via Flickr CC License By

_why reste vénéré

Mais _why reste vénéré, ses projets sont souvent cités par d’autres programmeurs, son nom évoqué avec un brin de nostalgie dans les forums Ruby, et sa présence est palpable à la RubyConf. L’année dernière, Vanderburg, le programmeur de Living Social, a lancé le «WhyDay» le jour anniversaire de l’infosuicide de _why. Un site internet dépouillé encourage les hackers à consacrer une journée à des projets amusants, imparfaits et créatifs dans l’esprit de ceux de _why.

Quelques centaines de personnes y participent chaque année. Pour l’instant, admet Vanderburg, les projets «n’étaient pas très bons. Mais je pense que l’esprit de _why vit toujours dans la communauté, et on le voit dans les productions les plus créatives des gens

Peter Cooper, professeur de programmation qui gère un site d’actualité sur Ruby, ajoute: «_why était une création, un personnage. Et ce personnage a vécu. Naturellement, la personne derrière ce personnage existe toujours. Et nous pouvons vénérer ce personnage. Mais _why n’est plus. Il n’y a pas de _why

***

Après avoir passé quelques jours à travailler sur des casse-tête mathématiques et d’autres programmes très simples, je suis passée aux jeux —devoirs populaires chez les programmeurs débutants, car ils sont faciles à subdiviser en plus petits éléments. Il vous faut savoir quel objectif vous voulez atteindre. Vous devez réfléchir ou faire des recherches sur la manière d’y parvenir. Ensuite vous devez en exécutez les étapes.

Pierre, feuille, ciseaux contre l'ordinateur

J’ai décidé de mettre au point un jeu simple, ordinateur contre hacker, de «Pierre, feuille, ciseaux» —«Rochambot» comme j'ai aimé l'intituler (il se trouve hélas que je n’ai pas été la seule). J’ai commencé par ma description:

print «Bienvenue à Rochambot!»

print «C’est un jeu de Pierre, feuille, ciseaux classique. La pierre écrase les ciseaux mais se fait emballer par la feuille, la feuille recouvre la pierre mais se fait découper par les ciseaux, et les ciseaux découpent la feuille mais sont moins forts que la pierre!»

print «Proposez votre choix, l’ordinateur en fera autant! Puis l’ordinateur vous dit si vous avez perdu, gagné ou si vous êtes à égalité. Tapez pierre, feuille ou ciseaux et appuyez sur Entrée pour jouer!»

Le plus facile était fait. Les règles du jeu apparaîtraient à l’ouverture du programme. J’arrivais ensuite à la partie difficile. Le joueur entre son choix, «pierre» par exemple. Mais l’ordinateur doit choisir aussi, et évaluer qui a gagné quoi. Comment faire?

Pour commencer, la partie ordinateur choisit pierre-feuille-ciseaux au hasard. Il existe dans Ruby une commande appelée «rand» qui choisit un chiffre au hasard. Au départ j’ai pensé à attribuer un chiffre à chaque objet —un pour pierre, deux pour ciseaux et trois pour feuille. Mais je me suis dit que cela rendrait l’encodage plus difficile plus tard, de symboliser des objets par des nombres entiers. J’ai fait quelques recherches, et me suis rendue compte que je pouvais manipuler la fonction rand pour qu’elle choisisse parmi une série d’objets, plutôt que de nombres. Voilà ce que j’ai produit:

Rochambeau = [«pierre», «feuille,» «ciseaux»]

Random = Rochambeau[rand(rand.3)]

Et j’ai complété le reste du jeu.

cas [humain, ordinateur]

quand [‘feuille, ‘pierre’], [‘pierre’, ‘ciseaux’], [‘ciseaux’, ‘feuille’]

print «Gagné!»

quand [‘pierre’, ‘feuille’], [‘ciseaux’, ‘pierre’], [‘feuille’, ‘ciseaux’]

print «Perdu!»

quand [‘feuille’, ‘feuille’], [‘pierre’, ‘pierre’], [‘ciseaux’, ‘ciseaux’]

print «Égalité!»

J’avais toutes les pièces, mais il me fallait les faire fonctionner ensemble —je devais créer la fonction où l’ordinateur choisit, puis le joueur choisit, puis où l’ordinateur désigne le gagnant. Je n’y arrivais pas car cela impliquait que l’ordinateur mémorise sa proposition et accepte celle du joueur.

J’ai donc fait ce que l’on m’avait conseillé: j’ai demandé à des Rubyistes. Quelques mails plus tard, on m’a aiguillée vers le code open-source qui exécutait exactement la fonction que je recherchais —un code gratuit, que tout le monde peut utiliser à volonté. Je me suis sentie un peu bête, de ne pas arriver à résoudre cette énigme toute seule. «Ne te fais pas de souci» m’a réconfortée l’un de mes nouveaux amis Ruby. «La programmation c’est toujours du pastiche :)»

***

Après un mois à apprendre à coder, j’étais capable de monter un certain nombre de petits programmes, des jeux simples par exemple. Je pouvais nommer les éléments de base de la programmation, comme les séquences si/alors. J’étais aussi capable d’expliquer les tableaux et les strings, la syntaxe et la grammaire et le lexique de base du langage. Ce faisant, j’ai gravi ce que je pense être la partie la plus abrupte de l’apprentissage du codage, et acquis les connaissances de base de ce à quoi servent réellement les langages de programmation.

Des langages dédiés aux connaisseurs

Car les langages de programmation ne sont pas, ai-je eu la surprise d’apprendre, la langue que parle l’ordinateur —ces zéros et ces uns restent dans les profondeurs de son châssis numérique, loin des utilisateurs de l’ordinateur. Non, les langages de programmation sont les langues que parle le codeur pour dire à l’ordinateur ce qu’il doit faire.

En créant Ruby, Matz avait pour philosophie de créer une langue plus sensible à l’intuition et aux désirs des codeurs, en réduisant la ponctuation que les hackers ont besoin de mettre dans leurs codes, par exemple. Mais même ce langage visant davantage les humains cible encore les programmeurs expérimentés, pas les nouveaux.

Trop souvent, ceux-ci doivent se débrouiller pour comprendre comment rédiger et exécuter des programmes basiques, submergés par toute cette nouvelle terminologie à apprendre et n’ayant pas la moindre idée de la manière d’éviter les erreurs les plus simples, comme celle consistant à laisser des espaces superflus dans les programmes.

Mais apprendre à coder devient de plus en plus facile —notamment parce que tant de programmeurs, comme _why, ont un jour souligné que cela restait trop difficile à apprendre. Il existe des ressources comme TryRuby et Hackety Hack. Il y a l’excellent Scratch, qui montre aux enfants comment bidouiller en utilisant des «blocs» visuels plutôt qu’en leur faisant taper chaque élément du code.

Codeacademy pour les débutants

En outre, cette année, un site futé qui vous apprend à coder simplement a pris une ampleur virale. Codecademy, fruit de l’imagination de deux entrepreneurs de moins de trente ans appelés Zack Sims et Ryan Bubinsky, fonctionne de la même manière que Hackety Hack. On vous incite à écrire des codes très simples sur le site (par exemple «Hey! Faisons connaissance. Comment t’appelles-tu? Tape le avec des guillemets comme ça: “Ryan” et appuie sur la touche Entrée de ton clavier»).

Il vous encourage, vous corrige à mesure que vous avancez, et vous décerne des médailles quand vous franchissez certaines étapes. Soutenu par de gros investisseurs et par une couverture médiatique positive et méritée, notamment chez Slate, Codecademy enregistre plus de 1 million d’utilisateurs, parmi lesquels figure Michael Bloomberg, le maire de New York.

J’ai demandé à Sims comment l’idée lui était venue, et ce qu’il m’a décrit n’était rien d’autre que le Little Coder’s Predicament. «J’ai lu des livres et regardé des vidéos pour essayer d’apprendre à travailler en Ruby et Javascript» m’a-t-il raconté, «mais les ressources disponibles ne faisaient qu’ajouter à ma frustration».

«Apprendre en pratiquant est la manière la plus efficace d’apprendre à coder» explique Sims; lui et Bubinsky avaient donc décidé de construire un site qui permettrait de faire exactement ça. «Le moment où l’on s’exclame "Aha!" est essentiel dans le processus de découverte» ajouta-t-il.

***

Jonathan est bien _why

Il ne me restait plus qu’à remercier mon tuteur virtuel, _why, ou au moins à le joindre. À RubyConf, la plupart des Rubyistes s’accordaient à dire que _why ne me parlerait jamais, même si j’arrivais à le trouver. Les histoires sur sa discrétion notoire et sa gêne face aux attentions étaient légion. Des gens qui avaient collaboré avec _why pendant des années avaient vainement essayé de lui parler après son infosuicide, je n’entretenais donc que peu d’espoir.

Je lui ai quand même écrit une lettre, pour l’informer de mon article et lui demander un entretien. J’ai laissé un message téléphonique chez lui, au numéro figurant dans l’annuaire, contenant les mêmes informations. Et j’ai prié plusieurs de ses anciens interlocuteurs de lui demander de ma part de me joindre. J’ai également contacté son employeur cité dans ses mails remontant à dix ans, Inetz Media Group, qui m’a répondu qu’il ne travaillait plus pour eux depuis des années. À moins de me pointer devant sa porte —ce que j’ai envisagé, ne fut-ce qu’un court instant— je n’avais pas de moyen de débusquer _why.

C’est une recherche de dépôts de brevets ouverts au public qui a fini par me conduire à lui. En novembre 2006, Jonathan Gillette et certains de ses collaborateurs ont déposé une demande de brevet pour un «système et une méthode pour utiliser une machine virtuelle». J’ai appelé Prowess Consulting, l’entreprise basée à Seattle qui avait déposé la demande. Jonathan Gillette ne figure pas parmi les noms proposés par le standard principal. J’ai fini par obtenir une réceptionniste. Oui, il travaille ici, m’a-t-elle confirmé. Non, elle ne m’indiquerait pas sa ligne directe, et ne voulait pas non plus me le passer. Je pouvais lui envoyer un mail à elle, elle ferait suivre.

Enfin, sur la fin de mon reportage, j’ai eu des nouvelles par le biais d’un autre programmeur de Salt Lake City: Jonathan est bien _why, il va bien, et il veut simplement qu’on le laisse tranquille.

Annie Lowrey 

Traduit par Bérengère Viennot

Mise à jour du lundi 19 novembre pour traduire le terme «hack» par «bidouiller» et non pas «pirater».

cover
-
/
cover

Liste de lecture