Une chose intéressante avec Internet, c’est que la moindre publication peut déchainer les passions. Chris Thompkins, un ancien journaliste, qui m’est complètement inconnu a ainsi écrit un post sur son blog qui vient secouer le monde des développeurs. En quelque mots, il regrette qu’il n’existe pas de langage de programmation destiné au commun des utilisateurs. De manière plus complète, il présente son expérience de tentative de développement d’application iPhone qui se heurte à la complexité du langage. Le développement pour iPhone se fait avec le langage Objective-C qui dérive du langage C. Et il faut reconnaitre que ce ne sont pas les langages les plus simples. Globalement, sa réflexion repose sur le fait que les langages ont été conçu par informaticiens chevronnés qui par nature ne cherchent pas à simplifier la technologie. Non pas que tous les langages doivent être simples, le titre de son post est bien We need a programming languagefor the rest of us. Il soulève bien le problème de l’accessibilité de l’outil informatique au plus grand nombre. Cet outil informatique fait de plus en plus parti de notre quotidien, mais son bidouillage devient de plus en plus complexe.

Comme je l’ai dit, cet article a de quoi déchainer les passions. Je l’ai découvert via le site developpez.com qui en a fait un résumé assez correcte. À l’heure de la rédaction de ce billet, les 6 pages de commentaires illustrent exactement ce que Chris Thompkins dénonce…

L’ensemble de ces commentaires fustigent bien Chris Thompkins. À leur lecture, on sent bien que les développeurs sont blessé dans leur orgueil. Pour eux, le développement est une tâche complexe qui nécessite compétences, connaissances et expérience. Mais ce que ces développeurs ont raté avant de poster leurs commentaires, c’est que Chris Thompkins ne parle pas de développement. The rest of us ne va pas s’amuser à développer un nouveau Linux. Il n’a pas besoin de conception poussée à l’extrême, de tests de charge, de non régression et d’optimisations à outrance pour écrire un programme qui envoi un mail le jour de l’anniversaire de quelqu’un dans son carnet d’adresses… J’ai bien ainsi l’impression en lisant ces commentaires que Chris Thompkins a raison… L’outil informatique en tant que tel est volontairement complexifié, son accessibilité offusquée afin d’en réserver l’accès à une élite. Mais après tout, peut on en vouloir aux développeurs ? Il est vrai que ce métier est difficilement justifiable. Pour le commun des mortels, le développeur place un bouton et la magie s’opère. Un petit jeune qui touche un peu à php réalisera un site un peu dynamique en une petite semaine, c’est que ce ne doit pas être si compliqué. Et peu importe si le site ne tient pas la charge, est bourré de failles, est imaintenable et impossible à faire évoluer. Ça, l’utilisateur ne le voit pas. Alors oui, le développeur doit se réfugier dans la complexité de sa tâche.

Pourtant, ce discour n’est pas le même chez tous le monde. Récemment, Robert C. Martin (Uncle Bob) envoya 2 tweets sur ce sujet :

« Has anybody noticed that as languages grow in complexity, the best programmers switch to simpler languages? »

et

« Languages grow more complex because authors (or standards bodies) can’t keep their freaking hands off them. They add and add and add… »

On est en plein dans le sujet… Si on ajoute les considérations de Joel Spolsky, qui sont traduites ici, on peut facilement arriver à la conclusion que la distribution statistique des développeurs est juste. De nombreux développeurs doivent leur statut à leur investissement professionnel et non à leur aptitudes. La complexité des langages (l’article de Joel Splisky parlant des Javaternelles date de 2005, depuis Java dans le monde professionnel, JEE, a su devenir une usine à gaz sans pareil) leur assure une certaine valeur sur le marché du travail. Dans ce contexte, parler d’une simplification de l’outil, de le rendre plus abordable, est une attaque directe à la valeur du développeur moyen.

Et tout ça pour un article mal compris… La lecture la plus simple se résume bien par « Objective-C est trop complexe ». C’est possible, découlant du C, c’est même certain. Plutôt qu’Objective-C, il existe bien d’autres langages plus abordables : si certains pensent enseigner Python aux enfants à partir de 8 ans, c’est que ce doit être possible. Pourquoi apprendre la programmation simple ? Simplement pour exploiter un peu mieux et de manière plus personnelle son outil informatique. J’ai proposé l’exemple de paramétrer l’envoi de courriel aux personnes dont c’est l’anniversaire. En fait, Apple propose même encore plus simple avec Automator, qui permet de créer très facilement des automates simples. Mais sachant que cette initiative provient d’Apple, il est d’autant plus rageant pour Chris Thompkins de ne pas trouver l’équivalent pour son iPhone. Surtout que le concurent directe, Google, propose un outil simple pour sa plate-forme Android avecAppInventor. Mais pourquoi s’acharner sur l’iphone ? Et bien il faut quand même se rendre à l’évidence que tous ces mobidules vont certainement devenir des objets de notre quotidien encore plus communs que nos vieux Destop ou Laptops. Et demain, c’est probablement eux qui géreront une grande partie de nos informations. L’accessibilité à ces plate-formes est donc primordiale pour que nous puissions les utiliser comme bon nous semble. Le rest of us ne demande pas à rendre le métier de développeur abordable, l’article de Joel Spolsky en montre les limites. Le rest of us veut juste pouvoir faire vite et salement des choses simples non prévues jusqu’ici.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.