\chapter{Présentation du langage R} \label{chap:rpresentation} \section{Bref historique} \label{sec:rpresentation:historique} À l'origine fut le S, un langage pour «programmer avec des données» développé chez Bell Laboratories à partir du milieu des années 1970 par une équipe de chercheurs menée par John~M.\ Chambers. Au fil du temps, le S a connu quatre principales versions communément identifiées par la couleur du livre dans lequel elles étaient présentées: % version «originale», % version 2, % version 3 et % version 4; % voir aussi et pour plus de détails. Dès la fin des années 1980 et pendant près de vingt ans, le S a principalement été popularisé par une mise en {\oe}uvre commerciale nommée S-PLUS. En 2008, Lucent Technologies a vendu le langage S à Insightful Corporation, ce qui a effectivement stoppé le développement du langage par ses auteurs originaux. Aujourd'hui, le S est commercialisé de manière relativement confidentielle sous le nom Spotfire S$+$ par TIBCO Software. Ce qui a fortement contribué à la perte d'influence de S-PLUS, c'est une nouvelle mise en {\oe}uvre du langage développée au milieu des années 1990. Inspirés à la fois par le S et par Scheme (un dérivé du Lisp), Ross Ihaka et Robert Gentleman proposent un langage pour l'analyse de données et les graphiques qu'ils nomment R. À la suggestion de Martin Maechler de l'ETH de Zurich, les auteurs décident d'intégrer leur nouveau langage au projet GNU\footnote{% \url{https://www.gnu.org}}, % faisant de R un logiciel libre. Ainsi disponible gratuitement et ouvert aux contributions de tous, R gagne rapidement en popularité là même où S-PLUS avait acquis ses lettres de noblesse, soit dans les milieux académiques. De simple dérivé «\emph{not unlike S}», R devient un concurrent sérieux à S-PLUS, puis le surpasse lorsque les efforts de développement se rangent massivement derrière le projet libre. D'ailleurs John Chambers place aujourd'hui ses efforts de réflexion et de développement dans le projet R. \section{Interfaces} \label{sec:rpresentation:interfaces} R est d'abord et avant tout une application n'offrant qu'une invite de commande du type de celle présentée à la \ref{fig:rpresentation:console}. En soi, cela n'est pas si différent d'un tableur tel que Excel: la zone d'entrée de texte dans une cellule n'est rien d'autre qu'une invite de commande\footnote{% Merci à Markus Gesmann pour cette observation.}, par ailleurs aux capacités d'édition plutôt réduites. \begin{figure} \centering % \includegraphics[width=\textwidth]{console-screenshot} \caption{Fenêtre de la console sous macOS au démarrage de R} \label{fig:rpresentation:console} \end{figure} \begin{itemize} \item Sous Unix et Linux, R n'est accessible que depuis la ligne de commande du système d'exploitation (terminal). Aucune interface graphique n'est offerte avec la distribution de base de R. \item Sous Windows, une interface graphique plutôt rudimentaire est disponible. Elle facilite certaines opérations tel que l'installation de packages externes, mais elle offre autrement peu de fonctionnalités additionnelles pour l'édition de code R. \item L'interface graphique de R sous Mac OS~X est la plus élaborée. Outre la console présentée à la \ref{fig:rpresentation:console}, l'application \texttt{R.app} comporte de nombreuses fonctionnalités, dont un éditeur de code assez complet. \end{itemize}