Archives par étiquette : historien programmeur

Je ne veux pas « apprendre à programmer » – Je veux écrire des programmes « sympas »… en voici un exemple

J’essaye d’être rigoureux dans ma manière d’apprendre à utiliser python. Mais coder un jeu de roulette ou un pendu ne m’amuse pas longtemps. Et ne m’est pas utile. Pourtant, les tutoriaux que vous trouvez sur le net vous donnent comme exercice ce genre d’exemples.

Alors de temps à autres – et avant de commencer à utiliser The Programming Historian – j’essaye de faire quelque chose de (vaguement) utile, mais surtout très sympas.

En voici un exemple:

C’est une représentation des gens qui ont retweeté mes tweets sur Twitter.

Le code que j’ai utilisé a été appris à THATCamp Luxembourg/Trier que le CVCE et son Digital Humanities Lab (que je coordonne) ont organisé la semaine passé à Luxembourg-Ville, juste après DHLU (Digital Humanities Luxembourg). C’est lors de la session de Lars Wieneke, chercheur au CVCE et cheville ouvrière de ce THATCamp, que ce code a été écrit. Il faut avoir installé l’extension python pattern du CLiPS.

# coding: utf-8
## Introduction

# we will use the graph library from pattern to visualize the relationships and the export module to save the graph to a webpage

from pattern.graph import Graph, export

# Now we use the great Pattern library from the CLiPS research center http://www.clips.ua.ac.be/pages/pattern
from pattern.web import Twitter
twit = Twitter()

recherche = raw_input(‘Quel est le terme recherché? ‘)
recherche = str(recherche)

results = twit.search(recherche, count = 1500) # the search method returns a list of 1500 entries

g = Graph()

authors = [] # this creates an empty list that we will use to create a list of authors

for item in results:
if item.author not in authors: # if the current author hasn’t been in the list
authors.append(item.author) # we will add him

# we will add every author as a node to the graph
for a in authors:
g.add_node(a)

# if the Twitter message is a re-tweet we will create an edge (think of it as a connection) between the original author and the author of the re-tweet
for item in results:
if item.description[:2]== »RT »:
g.add_edge(item.author, item.description.split(« : »)[0][4:])

# export saves the graph g to the filename « twitterAnalysis » and add the name of your research
export(g, « twitterAnalysis-{0} ».format(recherche), directed=True)

Divagations sur le développement: apprendre à programmer est une question d’objectifs et de choix

Comme je l’ai déjà écrit précédemment, je souhaite apprendre à programmer. Ce n’est pas la première fois que je le tente. C’est la première fois, par contre que je vais aussi loin.

Mes tentatives précédentes se centraient sur le trio PHP/Apache/MySQL. PHP pour le langage, Apache pour le serveur Web, MySQL pour la base de données. Je n’ai pas réussi. Bien sûr, j’ai pu faire un petit annuaire en ligne (des sites touchant aux relations internationales), mais qui n’a jamais évolué. C’était une époque lointaine, où les CMS (Content Management System – comme WordPress que j’utilise pour ce blog) n’étaient pas aussi performants et développer un annuaire soi-même se justifiait. Aujourd’hui, entre Google et les nombreux logiciels serveurs ou services web qui peuvent remplir cette fonction, ce choix de programmation n’avait pas grand intérêt.

Bref, j’ai vite arrêté.

Aujourd’hui – et alors que mes fonctions professionnelles me poussent à apprend à dialoguer avec des développeurs aguerris – ma motivation est nettement plus importante. Et mon choix sont bien différents. Je reste attaché au développement web, très certainement.

Mais mon but, aujourd’hui est bien plus affirmé. Nous devons – comme l’avait perçu Roy Rosenzweig dans un article que vous devriez tous lire1 –  faire face à une abondance de données, qui rendra difficile de ne pas se faire assister par un ordinateur pour faire ses recherches. Si je ne prétends pas – en tout cas pour le moment – devenir « développeur » – car il y a une différence entre développer et être développeur – j’aimerais toutefois être capable de maîtriser mon avenir informatique de chercheur.

Faire face à un déluge de données. Donc être capable de se constituer – à partir de sources publiées sur le web – un corpus pour ses propres recherches. Voici aujourd’hui mon but. The programming historian de William J. Turkel et Alolan MacEachern explique très bien comment l’atteindre assez facilement. Il explique aussi certains choix: des choix d’outils libre (zotero), des choix de langage de programmation (python).

Pour apprendre à programmer, ce dernier choix est capital. Beaucoup de langages sont promus par leur communauté comme « faciles » à apprendre. Dans la réalité, peu d’entre eux le sont. Le langage mis en avant par Turkel et MacEachern – et que j’avais pré-sélectionné avant de connaître ce site – est python. Il ne se limite pas au web, mais peut en faire. Il est ***vraiment*** facile, et ses bases s’apprennent vite.

Voici les quelques ressources que j’utilise à l’heure actuelle dans cet apprentissage:

  1. Rosenzweig, Roy. « Scarcity or Abundance? Preserving the Past in a Digital Era ». The American Historical Review 108.3 (2003): 735‑762. CrossRef. Web. 28 avr. 2010. []

Le code et l’historien contemporanéiste – pensées éparses

Je ne code pas. Ou peu. Si jamais on peut considérer qu’écrire un peu de HTML avec une goutte de PHP pas toujours bien maîtrisé signifie que l’on « code ». Pourtant, en tant qu’historien comme en tant que citoyen, je souhaiterais apprendre – je n’ai malheureusement jusqu’ici jamais trouvé le temps.

Pourquoi serait-il utile pour moi, historien, de me lancer dans un apprentissage nouveau, quasiment une nouvelle langue vivante à apprendre? Comme contemporanéiste, je travaille sur un thème – les banquiers centraux – qui requiert de prendre en compte l’ensemble du XXe siècle et quelques années du XXIe. Pour les années les plus récentes, j’ai une source formidable: le web. Mais comment exploiter cette source qui, à l’échelle d’un historien, est potentiellement infinie? Comment appréhender une abondance de sources1 telle qu’il n’est pas possible humainement de la lire intégralement comme j’ai pu lire quelques centaines de boîtes d’archives pour ma thèse?

En programmant. En codant.

Cette question de l’historien-informaticien n’est pas nouvelle. La plus célèbre phrase des humanités numériques françaises l’évoque: « L’historien de demain sera programmeur ou ne sera plus »2. En fait, en France, les premières études utilisant des ordinateurs – on parle alors de mécanographie – datent de la fin des années 1950. Les Annales publient un premier article en 19593, puis un second en 19604. En clair, les historiens français – même s’ils ne sont pas les premiers en la matière5 – ont très rapidement utilisé les premiers supercalculateurs arrivés dans l’hexagone. Dans le cas des bâtiments assyriens en Cappadoce, ce sont ceux de la Communauté Européenne de l’Énergie Atomique – CEEA ou Euratom, l’autre Communauté créée par les traités de Rome de 19576. En effet, Euratom, au contraire de la CEE, est, avec le retour du général De Gaulle au pouvoir, très vite vidé de sa substance. Ses supercalculateurs peuvent ainsi être loués.

L’historien qui utilise un ordinateur est alors confronté à des conditions matérielles qui n’ont rien à voir avec ce que nous connaissons aujourd’hui7. Les ordinateurs occupent l’équivalent d’une salle. Il n’existe pas d’interface graphique et l’ordinateur est utilisé grâce à des cartes perforées. Une erreur dans ces cartes peut remettre en cause l’ensemble du traitement « mécanographique ». Et la location de l’ordinateur coûte cher.

Ce que n’a probablement pas prévu Emmanuel Le Roy Ladurie, c’est le développement de l’ordinateur individuel, particulièrement à partir de 1984 – date de la sortie du premier Macintosh et début de l’expansion des interfaces graphiques telles que nous les connaissons aujourd’hui. D’une certaine manière, ces ordinateurs personnels – chers au début, mais dont le prix à décru de manière impressionnante en 25 ans – me semblent avoir à la fois popularisé l’usage des ordinateurs mais retardé la prophétie d’Emmanuel Le Roy Ladurie8.

En effet, l’utilisation des traitements de texte, tableurs, etc – ces logiciels basiques que nous connaissons relativement bien aujourd’hui – s’est répandue grâce à cette nouvelle génération d’ordinateurs à interface graphique, le Macintosh d’Apple étant assez vite suivi par le logiciel Windows de Microsoft. Certains ont vite saisi en quoi l’utilisation de l’ordinateur transformait, même par l’utilisation d’un traitement de texte simple, l’écriture9. Mais cette expansion de l’ordinateur individuel a aussi retardé le recours au développement, au code lui-même, à la programmation. Parce que ces interfaces graphiques en réduisait, dans un premier temps et pour certains types d’usages, l’utilité.

Pour certains types d’usage, mais pas pour tous. Ainsi, dans toutes les disciplines des sciences humaines et sociales qui ont besoin de manipuler les textes, d’en faire ressortir tous les aspects, de les presser comme des citrons pour en tirer le plus d’informations possible, le recours à l’informatique s’est fortement développé. Ce n’est pas pour rien que la Text Encoding Initiative a été fondée en 1987. S’appelant Humanities computing d’abord, puis Digital Humanities ensuite, s’étendant à de plus en plus de disciplines, le mouvement – la transdiscipline? – associant les sciences humaines (et sociales) et l’informatique et le numérique se développe progressivement. Les associations nord-américaines majeures sont créées dans les années 1970 et la grande série des conférences Digital Humanities commence en 1989.

Mais ce courant est resté somme toute – jusque récemment – relativement en marge. Dans les sciences historiques en France, Jean-Pierre Genet parle d’urgence pour la formation informatique des historiens dans les années 199010.

En histoire contemporaine, il n’y avait pas besoin – sauf peut-être les historiens économistes – d’usage très intensif de l’informatique. C’est très pratique lorsque – ce qui fut le cas pour ma thèse – vous travaillez, par exemple, sur l’entre-deux-guerres. Vous avez juste assez d’archives. Pas trop, donc pas besoin de traitement informatique. Mais suffisamment pour pouvoir écrire une thèse substantielle.

Mais cette situation va évoluer. Les « XXièmistes » avancent dans leurs recherches au fur et à mesure de l’ouverture des archives. La fameuse loi des trente ans. Nous dépouillons donc, actuellement, en France, les archives qui touchent la fin des années 1970 et le début des années 1980. Or, internet, le web, ne sont plus, pour leurs débuts, si lointains. Dès que nous aborderons les années 1990, nous devrons faire face à un afflux croissant suivant une courbe – dans un premier temps – exponentielle d’archives numériques, comme le fait si bien remarquer Dan Cohen11. Dans le domaine de l’histoire de l’intégration européenne, ne faudra-t-il pas prendre en compte les milliers – probablement les millions – de courriers électroniques vraisemblablement échangés pour la préparation de l’élargissement de l’Union européenne à dix nouveaux pays membres en 2004?

Pour l’exploitation de ces archives, nous devrons apprendre à coder, pour mettre au point les outils informatiques permettant d’exploiter ces archives numériques, trop nombreuses pour faire l’objet d’un traitement strictement humain – et si toutefois ces archives numériques sont conservées. Nous devons apprendre à coder dès maintenant si nous voulons nous préparer à temps. La citation de Le Roy Ladurie n’a jamais été aussi actuelle.

Bien sûr, il est hors de question de laisser l’historien seul face à son ordinateur. Comme nous l’avons dit pour les conclusions de THATCamp Paris, le chercheur ne peut survivre seul dans un environnement numérique – c’est du moins ce qu’il me semble. Nous devrons donc travailler avec des techniciens, avec des corps de métiers qui disposent de savoir-faire que nous n’avons pas. Mais savoir développer des programmes informatiques permet de dialoguer et de travailler avec ces corps de métiers, dialogue qui sera indispensable pour poursuivre nos recherches12.

En clair, étant donné la profusion d’information dont nous disposons via le web notamment, le code deviendra la clé de la liberté de trouver et d’exploiter l’information – ces sources qui nous sont si chères.

Comme le disait, donc, Jean-Philippe Genet dans les années 1990, la formation informatique des historiens en France et ailleurs reste une urgence. En fait, une question de survie de la discipline, toutefois de cette partie de la discipline qui s’intéresse à notre histoire la plus récente.

Apprendre à coder est l’un de mes objectifs à venir. J’espère ne pas être le seul.

EDIT: Daniel Letouzey a publié quelques pistes pour compléter mon billet. Et bien sûr, il y a la réponse de La Boîte à outils des historiens.

  1. Sur la notion d’abondance et l’historien: Rosenzweig, Roy. « Scarcity or Abundance? Preserving the Past in a Digital Era ». The American Historical Review 108.3 (2003): 735‑762. CrossRef. Web. 28 avr. 2010. []
  2. Emmanuel Le Roy Ladurie. Le territoire de l’historien. Gallimard, 1973. Print. []
  3. François Furet, et Adeline Daumard. « Méthodes de l’Histoire sociale: les Archives notariales et la Mécanographie ». Annales ESC 14.4 (1959): 676‑693. Print. []
  4. Paul Garelli, et Jean-Claude Gardin. « Étude par ordinateurs des établissements assyriens en Cappadoce ». Annales ESC 16.5 (1961): 837‑876. Print. []
  5. cf. la notice biographique du Père Roberto Busa sur Wikipedia []
  6. Voir La création de la CEE et de l’Euratom []
  7. Nous nous fondons ici sur une intervention entendue il y a fort longtemps et espérons ne pas trahir les propos à l’époque tenus par l’auteur: Éric Castex, “Présentation du rapport entre l’informatique et les historiens au cours des dernières décennies”, Introduction des Journées Doctorales de Paris I, Des outils informatiques dans la Recherche, décembre 1999. []
  8. Je suis ici dans le pur domaine spéculatif – mes propos sont fondés sur des impressions et non sur une étude solide []
  9. Relisez le Pendule de Foucault d’Umberto Eco []
  10. Genet, Jean-Philippe. « La formation informatique des historiens en France: une urgence ». Mémoire vive 9 (1993): n. pag. Print. []
  11. Daniel Cohen. « History and the Second Decade of the Web ». Rethining History 8.2 (2004): 293‑301. Print. []
  12. Vous pouvez consulter les écrits de William J. Turkel sur le sujet de l’historien-programmeur: Turkel, William J., et Alan MacEachern. The Programming historian. 1re éd. NiCHE: Network in Canadian History & Environment, 2007. Web. 15 sept. 2008. []