Apprendre à coder ? Apprendre l’informatique ? Apprendre le numérique ?

Code python dans vim, photo sous licence CC de moleculea

Photo : Vim + NERDTree + Taglist par moleculea

J’ai participé samedi dernier à une conversation sur Twitter sur la question de l’utilité d’apprendre à coder au collège ou au lycée :

On peut distinguer deux grands pôles dans les débats sur ce sujet :

  • Le pôle « pratiques » selon lequel il suffit d’apprendre aux élèves à utiliser le numérique sans leur demander d’entrer dans la technique informatique sous-jacente.
  • Le pôle « techniques » qui considère que pour bien utiliser le numérique il faut savoir comment il fonctionne et donc apprendre à programmer.

Étrangement, il semble qu’il y ait peu de positions intermédiaires entre ces deux pôles. A priori et depuis longtemps, je suis plutôt du côté des « pratiques » : je ne connais rien au fonctionnement de ma voiture et ça ne m’empêche pas de faire 50000 km par an. Toutefois, avec le temps, j’en suis venu à nuancer cette position et à me dire qu’un apprentissage de certaines notions d’informatique serait utile.

Voici donc quelques réflexions à ce sujet (en plus de 140 caractères 😉 ) sur lesquelles je vous invite à réagir (en commentaires ici même par exemple, ou sur Twitter).

Questions de vocabulaire

Mes lecteurs fidèles savent que j’aime bien préciser le vocabulaire avant de discuter une question. C’est souvent un préalable indispensable sur ce qui touche au numérique où les buzzwords et les petits-mots-pour-avoir-l’air-savant-ou-à-la-mode-ou-les-deux-en-même-temps sont souvent très répandus, sans que personne ne comprenne vraiment ce qu’ils signifient (précisément parce qu’ils n’ont pas le même sens pour tout le monde).

Il faut donc s’entendre sur ce qu’on appelle ‘coder’. Dès ce point, un problème va se poser : classiquement, le verbe ‘coder’ (qui provient de l’anglais ‘to code’), pour le sens qui nous intéresse, signifie écrire du code informatique, c’est-à-dire du code exécutable. Il est un synonyme de programmer, c’est-à-dire ‘produire un programme informatique’. Ainsi, coder, c’est écrire dans des langages de programmation, comme C, C++, Java, Python, Ruby, Lisp, Cobol, Basic, Javascript, PHP… (et beaucoup d’autres) pour fournir des instructions à un ordinateur : « affiche une fenêtre », « écris telle phrase à l’écran », « fais tel calcul », « trouve telle information dans tel fichier » etc.

Par un glissement de sens subtil, ce verbe en est venu à signifier « écrire des choses incompréhensibles pour le commun des mortels mais qui fait sens pour un ordinateur ». C’est ainsi qu’on en arrive à parler de coder pour « écrire du HTML ». Le HTML n’est pas un langage de programmation, mais un langage de description de page. Il ne permet pas de dire à l’ordinateur de faire un calcul, par exemple, il se contente de lui dire que tel mot doit apparaître dans telle couleur, à telle position, dans telle taille de caractères. En fait, j’aurai l’occasion de parler plus tard de ces questions.

Si je me permets cette (trop) longue digression sur les sens du mot ‘coder’, ceux qu’il a réellement et ceux qu’on lui attribue un peu trop généreusement, c’est que, je crois, par une sorte d’admirable mise en abyme, la question de « pourquoi apprendre à coder » se trouve posée dans cette expression même. Il me semble en effet que si nous avions tous une expérience plus concrète de ce qu’est l’informatique, ces glissements de sens n’existeraient pas, non plus que les incroyables dialogues de sourds auxquels ils donnent parfois lieu. J’y reviendrai.

Deux autres définitions pourront être utiles. Comme je suis épuisé par la première (et que, je l’avoue, j’ai peur de lasser mes lecteurs avec mes définitions approximatives), je vais emprunter celles-là à l’Académie des Sciences (avouez qu’entre une de mes définitions et une autre écrite par des académiciens, vous ne perdez pas au change) :

  • Le mot « informatique » désignera spécifiquement la science et la technique du traitement de l’information, et, par extension, l’industrie directement dédiée à ces sujets.
  • L’adjectif « numérique » peut être accolé à toute activité fondée sur la numérisation et le traitement de l’information : photographie numérique, son numérique, édition numérique, sciences numériques, art numérique, etc.

On parle ainsi de « monde numérique » pour exprimer le passage d’un nombre toujours croissant d’activités à la numérisation de l’information et « d’économie numérique » pour toutes les activités économiques liées au monde numérique, le raccourci « le numérique » rassemblant toutes les activités auxquelles on peut accoler l’adjectif numérique. Puisque toute information numérisée ne peut être traitée que grâce à l’informatique, l’informatique est le moteur conceptuel et technique du monde numérique.

(Rapport de l’Académie des sciences. L’enseignement de l’informatique en France. Il est urgent de ne plus attendre., p. 8)

Les deux pôles du débat

Comme je le disais plus haut, il me semble que sur cette question on peut distinguer deux pôles. Deux textes me semblent emblématiques de chacun de ces deux pôles :

Le pôle « technique » : rapport de l’Académie des sciences

Les auteurs du rapport partent du constat suivant :

  • Le développement du numérique est intimement lié aux progrès de l’informatique, qui est devenue une science autonome avec ses formes de pensée spécifiques. Si les objets et applications numériques évoluent à allure soutenue, la science informatique reste fondée sur un ensemble stable et homogène de concepts et de savoirs.
  • Nombre des progrès technologiques les plus marquantes de ces dernières années sont des produits directs de l’informatique : moteurs de recherche et traitement de très grandes masses de données, réseaux à très large échelle, informatique sûre embarquée dans les objets, etc.
  • De par l’universalité de son objet, la science informatique interagit de façon étroite avec pratiquement toutes les autres sciences. Elle ne sert plus seulement d’auxiliaire de calcul, mais apporte des façons de penser nouvelles.

(Rapport de l’Académie des sciences. L’enseignement de l’informatique en France. Il est urgent de ne plus attendre., p. 3)

Ils estiment donc nécessaire d’enseigner la science informatique dès l’école primaire, en proposant une progression jusqu’au lycée (et même au-delà):

  1. La sensibilisation, principalement au primaire, qui peut se faire de façon complémentaire en utilisant des ordinateurs ou de façon « débranchée » ; un matériau didactique abondant et de qualité est d’ores et déjà disponible.
  2. L’acquisition de l’autonomie, qui doit commencer au collège et approfondir la structuration de données et l’algorithmique. Une initiation à la programmation est un point de passage obligé d’activités créatrices, et donc d’autonomie.
  3. Le perfectionnement, qui doit se faire principalement au lycée, avec un approfondissement accru des notions de base et des expérimentations les plus variées possibles.

(Rapport de l’Académie des sciences. L’enseignement de l’informatique en France. Il est urgent de ne plus attendre., p. 4)

Cet enseignement passe la création d’une nouvelle discipline, qui doit être enseignée à tous les jeunes, en adaptant les exercices et les objectifs au niveau d’enseignement et (au lycée) aux options et aux filières choisies. Le rapport prévoit aussi la formation des enseignants qui seraient amenés à enseigner cette nouvelle matière : formation des enseignants de premier degré pour qu’ils puissent enseigner cette matière comme ils enseignent déjà les autres, création de concours CAPES/Agrégation pour former les nouveaux enseignants d’informatique du secondaire.

Les finalités de cet enseignement sont les suivantes (p. 13 sq.):

– « Former les professionnel-le-s de tous les métiers » : puisque de plus en plus de métiers utilisent l’informatique ou ont à traiter de questions qui sont liées à ce domaine, les professionnels qui les pratiquent doivent pouvoir le comprendre d’une façon satisfaisante. Un exemple est particulièrement éclairant à cet égard :

Par exemple, les juristes sont de plus en plus souvent amenés à écrire et appliquer des lois qui concernent des questions liées à l’informatique. L’expérience récente montre que leur difficulté à comprendre et suivre le sujet mène à des retards permanents dans l’action, voire à des contresens, comme on en a vus sur questions d’identification, de vote électronique ou de protection de la vie privée : croyance répandue mais erronée qu’une adresse IP (dans sa version 4 actuelle) identifie un ordinateur, confiance a priori dans le vote électronique certainement pas partagée par les spécialistes de la sécurité informatique, etc. »

(Rapport de l’Académie des sciences. L’enseignement de l’informatique en France. Il est urgent de ne plus attendre., p. 14)

– « L’alphabétisation numérique pour tous » : les auteurs insistent, à juste titre à mon avis, sur le fait que la fracture numérique n’est pas tant entre ceux qui sont équipés de matériel informatique et ceux qui n’en sont pas équipés qu’entre ceux qui savent s’en servir efficacement et ceux qui ne savent pas. Le numérique est porteur de beaucoup de promesses pour améliorer la société : plus de transparence, plus grande liberté d’expression, accès facilité à l’information et à l’éducation etc. mais aussi de certaines menaces. Il importe que les citoyens puissent à la fois tirer profit de ces avantages et contrôler le développement du numérique dans la société. Pour cela il est nécessaire de les former à mieux comprendre ces questions par une éducation à l’informatique.

(Je passe sur la finalité suivante « Réduire les fractures numériques de genre et de catégorie sociale » qui n’est pas autre chose, à mon avis, qu’une petite glose politiquement correcte pour faire bonne mesure, puisque rien d’autre de sérieux n’est dit à ce sujet dans le rapport).

Ce sur quoi le rapport insiste à plusieurs reprises, c’est sur la nécessité d’apprendre aux élèves des concepts et non des procédures : « Il faut donc systématiquement rechercher l’enseignement des fondements et des concepts, au lieu de former les élèves aux détails d’outils vite périmés, faute de quoi les élèves se périmeront aussi vite que les objets enseignés » (p.17).

Le pôle « pratiques » : article de Michel Guillou « Apprendre à exercer sa liberté d’expression ou apprendre à coder »

(NB : je choisis cet article parce qu’il me semble assez caractéristique de ce que j’ai appelé le pôle « pratiques », même si je dois à la vérité de préciser qu’il ne résume pas toute le pensée de Michel Guillou sur ce sujet. En somme, je le prends comme exemple d’une position sur la question dont je parle, non comme exemple des réflexions de son auteur, par ailleurs plus subtiles et plus complexes que cela.)

Michel Guillou considère cette proposition de créer une nouvelle matière d’enseignement « pitoyable et dérisoire » et estime que les arguments avancés sont fallacieux :

Je cite Benoît Thieulin, président du CNN qui s’est maladroitement engouffré dans l’espace ouvert par l’EPI, les informaticiens de l’Académie des Sciences et la Société informatique de France, qui disait dans L’Express : « Une nouvelle culture numérique émerge pour laquelle les gens ne sont pas formés. Il faut donc enseigner un minimum de culture générale dans ce domaine dès le primaire. Tout le monde doit savoir ce qu’est un logiciel et comment il est conçu, par des couches de codes de langages informatiques ». Vous l’avez compris, c’est le syllogisme habituel : une nouvelle culture numérique est nécessaire, l’informatique en est le cœur donc il faut enseigner l’informatique et le code !

Il récuse ensuite l’idée que l’informatique soit absente des enseignements actuels :

Quant à l’idée que l’informatique serait absente des enseignements d’aujourd’hui, c’est une idée fausse bien sûr. La maîtrise des techniques usuelles de l’information et de la communication fait partie de la quatrième compétence exigible pour le socle commun et pour le B2i, aussi imparfait soit-il, les items de laquelle compétence pouvant être validés dans n’importe quelle discipline, des mathématiques à la technologie en passant par la documentation, souvent pionnière en la matière. Par ailleurs, et s’il faut absolument parler des programmes disciplinaires, faut-il rappeler qu’il existe déjà un enseignement optionnel de l’informatique et des sciences du numérique qui devrait être proposé bientôt, si on trouve les professeurs pour les encadrer, à toutes les classes de terminale ? Faut-il rappeler aussi que les programmes de technologie, au premier degré comme dans les collèges, contiennent de très nombreuses références à l’enseignement de l’informatique, dont la compréhension du code ?

Je dois avouer que cette partie de l’article me rend un peu perplexe : en ce qui concerne l’enseignement optionnel de l’informatique et des sciences du numérique, précisément, il est optionnel et ne peut donc pas être considéré comme susceptible de fournir une culture générale de base sur l’informatique. Dans le programme de technologie, je ne vois pas les « très nombreuses références à l’enseignement de l’informatique, dont la compréhension du code ». Je vois quelques références à l’informatique, qui me semble plutôt vue selon une perspective très technique et procédurale, je vois aussi que la seule mention du code est négative : « La programmation d’un support automatique ne demande pas l’écriture de lignes de code. » (Programmes de l’enseignement de technologie, Bulletin officiel de l’Education nationale spécial n° 6 du 28 août 2008, p. 22)

Sur la question du socle commun et du B2i, je n’ai aucun doute ; ce passage est de toute évidence une facétie de Michel Guillou, qui écrivait naguère au sujet du B2i, qu’il qualifiait d' »échec monumental » :

Au moment où il convient maintenant, compte tenu de l’urgence, d’enseigner le numérique et de prendre à ce sujet des décisions, la seule chose sensée à faire est d’annoncer la suppression de ce machin, par ailleurs particulièrement mal nommé.

Définitive, la suppression, de préférence..

Comme de décider de la suppression de la compétence 4 dont les items intègrent aisément l’ensemble des autres compétences, comme j’ai déjà eu l’occasion de le démontrer. Pour y revenir et n’évoquer, par exemple, que les compétences 6 et 7, comment travailler sur « les droits et les devoirs du citoyen » ou « les notions de responsabilité et de liberté et le lien qui existe entre elles » hors de toute référence au numérique qui imprègne les pratiques ordinaires de ces jeunes citoyens ?

(Avoir parfois le courage de renoncer)

Il sait très bien, comme tout le monde, que les items du B2i sont très peu enseignés, en particulier les plus « théoriques », qui sont ceux qui nous intéressent en ce moment.

Mais cela n’est pas l’essentiel de cet article. Le cœur du propos de son auteur est de dire que la vraie priorité pour maîtriser le numérique, plutôt qu’une éducation à l’informatique, est d’apprendre à exercer sa liberté d’expression par le numérique, à publier : « Je suis donc persuadé que l’exercice de ce droit s’apprend, dans le cadre d’une éducation aux médias rénovée, et doit faire partie des nouvelles compétences auxquelles il faut former le jeune citoyen ».

Deux positions irréconciliables ?

On le voit, ces deux pôles correspondent à deux positions très tranchées : création d’une discipline supplémentaire « informatique » comprenant l’apprentissage du code dans un cas, éducation aux médias rénovée dispensée de façon pluridisciplinaire dans l’autre cas.

Il semble difficile de mettre d’accord les tenants de ces deux positions. Pourtant, il faut reconnaître que les deux textes se proposent des objectifs communs : dans les deux cas, il s’agit de former des citoyens conscients, capables de faire des choix éclairés et d’exercer leur liberté d’expression.

Ils ont aussi, me semble-t-il, un autre point commun (et j’espère que ni les uns ni les autres ne prendront ombrage de cette remarque) : une rhétorique prédéterminée par certaines conceptions préalables.

Le vice logique du rapport de l’Académie des sciences est dans une certaine mesure mis en lumière par Michel Guillou dans la citation que j’ai faite plus haut : le numérique induit un changement du monde dans lequel nous vivons, la science informatique est à la base du numérique, donc il faut apprendre la science informatique et la programmation. Si on peut suivre le raisonnement jusqu’à apprendre la science informatique (c’est-à-dire une théorie du traitement de l’information), on ne voit pas très bien pourquoi la technique informatique (le code) arrive ici. C’est ce que j’appellerais la « logique du blop » : un élément arrive dans le discours par la seule raison de sa contiguïté avec un autre qui a été amené logiquement (il apparaît comme une bulle qui éclate sans qu’on s’y attende à la surface du porridge, en faisant « blop »).

Quant au raisonnement de Michel Guillou, je le qualifierais de « logique gaullienne » : le numérique pose des questions sur la société auxquelles il appartient au citoyen de répondre, il faut donc une éducation à la citoyenneté, les questions techniques étant des détails. Par conséquent, je forme un citoyen et l’intendance (numérique) suivra (d’où le nom de cette logique 😉 ). Je crois que depuis la création du B2I en 2000, l’intendance n’a pas toujours suivi comme on l’aurait voulu…

[A suivre… Dans un prochain billet, je dirai ce que je pense de l’enseignement de l’informatique]

L’âge du péta-octet…

Mon fils de bientôt cinq ans, qui, comme beaucoup de ses semblables, n’est pas chiche d’hyperboles, m’a demandé pendant l’été ce qu’il y a après « méga » (parce que mieux que superbien, c’est mégabien), puis ce qu’il y a après « giga »… Lorsque, quelques jours plus tard, il m’a demandé ce qu’il y a après « téra », je dois avouer que j’ai séché et ce n’est qu’après une recherche sur le web que j’ai pu lui répondre « péta » (mais en tant que parent responsable, j’ai néanmoins pris la peine de lui expliquer que le terme « pétabien » risquait de ne pas être intelligible pour tous).

Aussi ai-je particulièrement prêté l’oreille (devrais-je dire l’oeil ?) quand j’ai découvert, par l’intermédiaire d’Olivier Ertzscheid, l’article de Chris Anderson traitant de l’impact de l’Age du Pétaoctet sur la méthode scientifique. Depuis, Hubert Guillaud a écrit un article de synthèse très intéressant sur la fin de la science, dans lequel il évoque cet article : Est-ce que le déluge de données va rendre la méthode scientifique obsolète ?. Mais ce n’est pas de cet impact sur la science que je veux parler ici ; cet article m’a inspiré quelques réflexions, qui rencontrent des préoccupations que j’ai depuis longtemps.

D’abord cette idée d’un déluge de données dans lequel des logiciels pourraient trouver un sens automatiquement (l’exemple le plus saisissant est celui de la traduction : « à corpus de données égal, Google peut traduire du klingon en persan aussi facilement qu’il peut traduire du français en allemand », dit Anderson) me semble mettre en évidence une tendance importante et durable de l’internet actuel : la domination d’un système fonctionnant avec des données peu structurées, au détriment d’un système plus rigoureux et plus structuré. En somme, il s’agit d’une victoire du web 2.0 (ou 3.0, je ne compte plus) sur le web sémantique. C’est ce principe qui s’applique pour le moteur de recherche de Google ou les sites de signets collaboratifs comme del.icio.us : on ne demande pas au fournisseur de contenu (pages web ou liens dans ces exemples) de faire une description exhaustive de son contenu ; à la rigueur, on lui demande quelques mots clés (tags), mais cela ne va guère au-delà. Il me semble que cette tendance se confirme d’une façon très nette et que la mise en place d’un formalisme imposant de taxinomies et d’ontologies qu’on nous promet parfois n’aura pas lieu, en tout cas pas dans les dix ans qui viennent. A la place, le web continuera à être une sorte de vrac dans lequel les ordinateurs devront se débrouiller pour trouver un sens (quel qu’il soit), et non un objet bien propre spécialement fabriqué pour qu’ils le comprennent.

A cet égard, le billet de Jean Véronis sur la nouvelle fonctionnalité de Google de détection de pièce jointes oubliées, dans lequel il explique la méthode qu’il utiliserait pour implémenter cette fonction est un témoignage éloquent. Cette méthode donne véritablement le vertige : il s’agit d’ « extraire à l’aide d’outils statistiques les n-grammes qui apparaissent fréquemment dans les mails avec attachement et pas dans les mails sans attachement », puis « pour chaque nouveau mail, regarder si un de ces n-grammes magiques est présent dans le texte, et si oui déclencher une alerte ».

D’ailleurs, je crois que l’époque est au refus d’un formalisme excessif. Le succès d’une méthode comme GTD n’est sans doute pas étranger à ce refus : un projet, tel que le décrit David Allen, n’est pas un ensemble complexe de systèmes et de sous-systèmes, qui peut être représenté de diverses façons (diagramme de Gantt, de PERT…) ; c’est plutôt un ensemble d’actions qui peut être consigné sur le dos d’une enveloppe et dont la représentation essentielle est la Next action, c’est-à-dire « Et maintenant qu’est-ce qu’on fait ? »

En somme, le principe directeur, connu depuis toujours, est que « le Mieux est l’ennemi du Bien » et plutôt que d’avoir un modèle qui prévoit tout, il vaut mieux avoir un modèle facile à adapter quand on aura besoin de lui faire faire quelque chose d’imprévu… Les méthodes de programmation dites « agiles » ne reposent pas sur autre chose.

Mais aussi cette situation a un impact sur l’informatique en général : d’abord parce qu’elle peut contribuer à populariser l’idée qu’un ordinateur doit travailler à la place d’un humain et non lui donner du travail… Truisme… mais qui ne paraît pas si évident pour tous nos semblables : l’ami qui m’a dit il y a quelques années « Pourquoi as-tu 2 (ou 3 ou 6…) ordinateurs, tu ne peux pas être assis devant tous en même temps ? », sans savoir qu’un bon ordinateur est précisément celui que j’utilise sans être assis devant lui, ou bien ceux qui ne veulent pas utiliser l’informatique parce qu’ils n’ont pas le temps…

Je crois que cette tendance a aussi une conséquence sur le métier d’informaticien. En effet, de nos jours, il est possible de programmer facilement, sans avoir de compétences théoriques importantes. C’est un raisonnement que je me fais depuis longtemps à mon propre sujet : je passe une partie importante de mon temps de travail à écrire du code et pourtant, je n’ai jamais étudié l’informatique et je n’ai pas de connaissances approfondies en algorithmique. Un exemple parmi beaucoup d’autres : tout ce que j’ai pu apprendre sur les algorithmes de tri (que je n’ai appris que par curiosité et jamais par besoin) ne m’a jamais été directement utile, parce que toutes les fois où j’ai eu à trier des données, il était plus simple et plus efficace d’utiliser une fonction native ou fournie par une bibliothèque du langage que j’utilisais (le plus souvent python).

J’ai longtemps pensé que cette approche était caractéristique d’un autodidacte de la programmation, professeur de lettres de formation, mais j’ai constaté au contact de ‘vrais’ informaticiens, ou de stagiaires qui finissaient des études (de type BTS ou DUT) en programmation que beaucoup n’ont pas de notions théoriques plus approfondies et que ces connaissances ne sont guère utiles dans la pratique quotidienne de beaucoup de programmeurs.

Or l’âge du péta-octet exige une vraie réflexion sur les algorithmes : le volume gigantesque de données nécessite des traitements optimisés pour être réalisables dans des conditions acceptables, les opérations à mettre en oeuvre impliquent des notions sur les statistiques que tous ne possèdent pas. La conséquence de cela va être l’élargissement du fossé entre l’élite des programmeurs, très compétents, détenteurs de connaissances très pointues dans des disciplines scientifiques, et la piétaille des scripteurs, qui sera de moins en moins distincte des power users, de plus en plus nombreuse. Bien sûr, cette fracture existe déjà, mais il y a fort à parier qu’elle va aller en s’accentuant.

Le catalogue de ma bibliothèque…

J’adore les livres, les vrais livres, ceux en papier. J’ai envie d’en lire, j’ai envie d’en posséder, j’ai envie d’en toucher et j’ai envie de passer du temps dans ma bibliothèque, en particulier en ce moment.

Cela m’amène à fréquenter beaucoup le site d’Amazon, à lire des dizaines de blogs qui parlent de livres, de bibliophilie ou de lecture, mais aussi à vouloir faire un catalogue de mes livres. J’avais, naguère, évoqué sur ce blog le site LibraryThing pour cela, sans suffisamment prêter attention au fait que le compte gratuit ne permet pas d’insérer plus de 200 livres, autant dire rien…

[Entre le moment où ce billet a été écrit sur mon moleskine et le moment où il est dactylographié (n’est-ce pas un mot exquis ?), il s’est écoulé plusieurs semaines le contenu de ce billet a changé. Dans sa première version, il continuait ainsi : “et pour le dire comme je le pense, je ne suis pas disposé, au moins pour le moment, à payer ce service (je ne conteste pas qu’il soit légitime pour le créateur de ce site d’être rémunéré, je dis simplement que s’il n’est pas possible de profiter gratuitement d’un tel service, je préfère m’en passer, dans l’état actuel des choses”.

La nouvelle version est la suivante :]

J’expliquais dans ce billet pourquoi je n’étais pas disposé à payer pour ce service et comment j’en étais venu à tester d’autres services, dont la plupart ne m’avaient pas satisfait, et à choisir d’utiliser Listal. Je détaillais ensuite la procédure que j’envisageais d’adopter pour cataloguer mes livres avec Listal, que je peux résumer ainsi :

– Lecture des codes barres des livres ;

– Recherche du livre dans la base d’Amazon ;

– Importation des informations concernant le livre dans Listal.

Le code barre des livres (pour ceux qui en ont un) correspond à leur ISBN et permet donc de les identifier de façon assez précise.

J’ai fait quelques tests avec une petite application en Flash qui permet de lire des codes barres avec une webcam, avec l’API d’Amazon (ces derniers tests m’ont permis de comprendre pourquoi Listal ne recherche des livres que sur amazon.com et amazon.co.uk : la recherche par ISBN n’est pas possible, dans la version actuelle de l’API, sur les autres sites d’Amazon et notamment sur amazon.fr, même si cette possibilité existe avec des versions plus anciennes), avec les fonctionnalités d’importation de Listal…

Au final, ces tests ont révélé que cette solution serait trop compliquée : la lecture des codes barres, outre quelques petits bugs qui se sont révélés, est difficile et longue. L’utilisation de l’API d’Amazon ne permet pas de rechercher les ISBN sur le site français et l’importation dans Listal est malaisée (il n’est possible d’importer que des fichiers XML produits par l’application Mac de gestion de bibliothèque personnelle Delicious library, format qui n’est documenté nulle part).

Je suis donc retourné voir LibraryThing (d’ailleurs en partie pour préciser le nombre maximal de livres qu’on peut ajouter avec le compte gratuit) et, sur un coup de tête, j’ai pris un abonnement payant pour ce service (25 $ pour un abonnement à vie et, je l’ignorais, 25 $ représentent beaucoup moins que 25 € par les temps qui courent). Ici, l’importation est beaucoup plus simple : je peux téléverser un fichier texte contenant des ISBN, qui sont ajoutés automatiquement à ma bibliothèque (en utilisant amazon.fr qui reste une base à peu près inépuisable pour les livres en français).

J’avais aussi envisagé d’écrire quelques lignes de PHP pour saisir rapidement les ISBN et les inscrire dans un fichier texte, mais j’ai soudain songé que l’application qui permet de saisir un ISBN, puis de presser la touche “Entrée” avant d’en saisir un autre et finalement d’enregistrer tout cela dans un fichier texte, cette application, dis-je, existe déjà et elle s’appelle un éditeur de textes…

Je vais donc occuper une partie de mes congés (qui commencent demain soir) à saisir les livres de ma bibliothèque dans Notepad++ avant de les embougler dans LibraryThing… ce qui est assez différent du scénario initial. Je ne donne pas, pour le moment, l’adresse de ma bibliothèque sur LT, j’attends qu’elle soit plus à jour, mais les petits malins réussiront bien à la trouver.

En outre, je viens de découvrir chez Virginie Clayssen un autre service du même genre qui s’appelle Babelio et qui est nativement francophone, semble-t-il (LT est traduit en français, entre autres langues). Cependant, comme ce service repose sur le même business model que LT, je n’ai pas l’intention de reprendre un autre abonnement à vie (surtout que sur Babelio, il est à 30 €, soit presque le double de ce qu’il est sur LT). Cependant, je le testerai et, toujours fidèle à ma mission d’information de mes lecteurs, je vous dirai ce que j’en pense. ;-)

tags technorati: , , , ,

Et si le problème, c’était Word ?

Dans le cadre de diverses activités, telles que la formation d’enseignants, l’assistance aux utilisateurs, mais aussi dans le cadre de ma vie quotidienne de professionnel de l’informatique à qui tous les amis demandent de l’aide ou des conseils (vous savez : “Quoi ? tu es informaticien et tu ne connais pas par coeur tous les détails de fonctionnement de tous les scanners / tous les appareils photo numériques / toutes les cartes sons etc. !” ou bien ces questions énigmatiques que vous ne commencez à comprendre que quand vous avez saisi qu’elles portent sur l’utilisation de MS Word, parce que, pour votre interlocuteur, l’informatique, c’est Word. Tu sais de quoi je parle, hypocrite lecteur, mon semblable, mon frère), j’ai souvent été confronté à la question de ce qui est un frein à l’acquisition de techniques informatiques par des débutants, à celle de la bonne méthode pour apprendre de nouveaux savoir-faire à des utilisateurs néophytes.

Je me suis ainsi rendu compte qu’il existe une sorte de socle de connaissances, de repère universel qui est le traitement de texte. Tout le monde a, peu ou prou, utilisé un traitement de texte ; comme je l’ai dit plus haut, certains considèrent que l’informatique, c’est Word et beaucoup estiment que la maîtrise ou non d’un traitement de texte est un bon étalon de la compétence en informatique : “j’arrive à me débrouiller avec Word, mais c’est tout”, “je passe beaucoup de temps pour écrire un texte”, “tel ou tel logiciel est plus facile / plus difficile à utiliser qu’un traitement de texte”…

Je crois que l’ensemble de ce raisonnement est faux. Tout simplement parce que les traitements de texte, quels qu’ils soient, ne sont pas des logiciels de débutants :

  • D’abord, ne serait-ce que dans leur interface : ils proposent en général une multitude d’options et de fonctionnalités, beaucoup plus que la moyenne des applications, une sorte de surabondance baroque qui convainc l’utilisateur néophyte que les outils informatiques sont complexes. D’ailleurs, il est évident qu’apprendre à utiliser un traitement de texte, c’est en réalité apprendre à ignorer la plupart de ses options.
  • Ensuite, les traitements de texte essaient presque toujours de tout faire : être à la fois un éditeur de texte, une application de PAO, un outil de traitement d’images, voire un navigateur web dans une certaine mesure… Cela a pour effet de varier terriblement les termes utilisés, en empruntant à droite et à gauche dans les différents domaines concernés, d’où un vocabulaire hétérogène, abscons et simplement incompréhensible.
  • Une autre complexité vient de tous les gadgets que les éditeurs de traitements de texte ajoutent libéralement à leurs produits pour aider les utilisateurs. Toutes ces petites choses qui modifient les marges de votre document si vous commencez un paragraphe par un tiret, qui vous imposent une numérotation dont vous n’avez que faire si vous avez le malheur de le commencer par un chiffre… Cette autre fonctionnalité qui vous apprend qu’il est inapproprié d’écrire un mot qui commence par deux majuscules, ou ces autres si pratiques qui font que créer un tableau ou insérer une image peut devenir un véritable cauchemar si vous ne voulez pas procéder exactement comme le Logiciel l’a décidé ! Ne souriez pas ainsi, ce sont ces petites choses que vous avez appris à combattre quotidiennement. En somme, pour éviter aux utilisateurs d’avoir à apprendre le logiciel, on les oblige à apprendre à s’en protéger…
  • Une dernière (?) tribulation du traitement de texte vient du fait que, le plus souvent, il sert à imprimer. Ce petit point de contact avec la réalité, s’il est souvent ce qui amène le débutant à utiliser un traitement de texte, est aussi la source de nombreux soucis : bourrages de l’imprimante, impressions incohérentes, difficultés pour définir la zone à imprimer, l’orientation des feuilles etc.

Il me semble donc qu’il faudrait rétablir la vérité : le traitement de texte est un logiciel complexe dont la maîtrise n’est jamais un prérequis et qu’il est bon de ne pas utiliser. La plupart des autres outils informatiques dont on peut avoir besoin sont infiniment plus simples à maîtriser.

Tags: , , ,