Code et données pour les sciences sociales (1.5) Informatique

Une série de billets visant à commenter (pas à traduire) le guide de Gentkow et Shapiro (2014). Précédemment : Ép. 1 (Introduction).

Vous l’aurez compris à la lecture de l’introduction, cette série de billets va parler de recherche empirique, reproductible, et donc très largement informatisée, au sens : conçue, et pour partie exécutée – en matière de production des résultats – face à un écran d’ordinateur.

Du coup, dans cet épisode intermédiaire, je souhaite rajouter quelques mots sur l’équipement informatique du chercheur lambda. Dans leur introduction, Gentzkow et Shapiro ne mentionnent qu’un seul logiciel :

Saying [empirical researchers] should spend more time thinking about the way they write code would be like telling a novelist that she should spend more time thinking about how best to use Microsoft Word.

Ne nous en tenons pas à ça.

La ligne de commande

Lorsque l’on cherche à rendre un protocole de recherche reproductible de part en part, ou lorsque l’on commence à avoir besoin (ou l’envie ; et ce sera notre prochain épisode) d’automatiser ce protocole de recherche, il faut commencer à bidouiller avec la ligne de commande :

Essayez, ce n’est pas si compliqué : sur macOS, ouvrez l’application « Terminal »1, qui vous ouvrira automatiquement une session dans un shell semblable à ceux que l’on ouvre sur n’importe quelle machine Unix2, et tapez simplement :

uptime

Voilà, vous y êtes.

Il s’agit du même shell qu’utilisé dans le billet où j’explique comment sauvegarder un flux vidéo en deux manipulations basiques. Par défaut, il s’agit d’un shell de type Bash, mais vous vous en fichez : tout ce qui compte est de savoir que vous en passerez par là pour accomplir une partie de vos manipulations.

Les éditeurs de texte simple

Lorsque vous aurez besoin d’écrire vos scripts (vos suites de commandes), vous le ferez soit dans un éditeur3 dédié à un langage de programmation spécifique (Stata, RStudio, PyCharm…), soit dans un éditeur en texte « simple » ou « brut » (plain text editor). Ce dernier outil va vous être extrêmement utile, et il vous faut quelque chose de mieux que Notepad ou TextEdit.

Sur Windows, allez voir du côté de Notepad++ ; sur Mac, allez voir du côté de TextMate, mon éditeur favori parce qu’il est extrêmement rapide à l’ouverture. D’autres éditeurs, plus lourds, ont néanmoins l’avantage d’être plus puissants et multi-plateformes : essayez Atom ou Visual Studio Code.

Un éditeur en texte simple ressemble à ça :

Rien d’exceptionnel ici, si ce n’est que vous remarquez tout de suite que les lignes sont numérotées, et que la syntaxe du fichier (ici, Markdown) colorise certaines parties du texte (ici, le lien Web, reconnu par l’éditeur grâce à son préfixe « http[s]://« ).

Le même éditeur va vous permettre de composer dans n’importe quel langage de programmation — ci-dessous, un peu de Python qui me sert à télécharger les émissions de France Culture tout en les renommant pour que je puisse les archiver plus vite4 :

Vous voilà équipé. Faisons le point :

  • Votre ordinateur est une architecture matérielle sur laquelle est posé votre système d’exploitation ; et vous avez l’habitude d’utiliser cet ordinateur via des logiciels comme Microsoft Word. Nous n’y reviendrons pas, car…
  • Pour écrire du code, il va falloir programmer, c’est-à-dire écrire du code informatique, dans un ou plusieurs langages ; vous allez le faire via des éditeurs spécialisés, ou via un éditeur de texte (simple, plutôt que « riche », comme Microsoft Word).
  • En plus de cet éditeur, vous allez aussi passer, de temps à autre, par la ligne de commande (le « terminal », le shell), qui à l’inverse des autres logiciels cités aux deux points précédents, est toujours pré-installé, car il fait partie intégrante de votre système d’exploitation.

Je m’arrête là, et pour les conseils informatiques plus généraux, vous renvoie à ce billet, qui renvoie vers les conseils informatiques que je donne en cours.

  1. Dans le dossier « Utilitaires », mais j’espère que vous utilisez Spotlight ou un launcher comme Alfred pour ouvrir vos applications… []
  2. Sur Windows, vous aurez à explorer les différentes alternatives : PowerShell, le successeur de CMD.EXE, ou bien faire tourner Linux sous Windows grâce à Windows Subsystem for Linux (WSL). []
  3. Nous y reviendrons, exemples à l’appui. Ces éditeurs sont souvent appelés des « IDE ». Si vous écrivez du code, vous passez plus de temps dans ces éditeurs que sur Microsoft Word. []
  4. Le code ne devrait pas vous convenir, et c’est du mauvais Python (3.x) de débutant, mais si vous le voulez, il est en ligne. []