Première quête: à la recherche d’Excalibur

« What is your quest ? » Bien entendu, « to seek the Holy Grail »  (ou « Holy Gr@il » dans notre cas…). Mais pour s’aventurer dans une quête aussi périlleuse, on ne saurait s’aventurer sans armes. Et parmi les armes, il faut choisir: impossible d’apporter tous les types d’armes sur son dos, c’est bien trop lourd.

C’est à faire ce choix difficile parmi le vaste arsenal des armes informatiques disponibles que nous allons nous attacher dans les premiers moments de ce blog. Aujourd’hui, il est quasiment impossible de maîtriser le fonctionnement de tous ces outils disponibles, même pour un professionnel de l’informatique. Et dans la foule des langages de programmation et des logiciels disponibles, il est souvent difficile de se repérer : de quoi aurais-je besoin ? qu’est-ce qui sera le plus maniable ? le plus puissant ? le plus simple d’usage ? Au gré de nos propres expérimentations, nous vous livrerons donc des éléments vous permettant de discerner les outils informatiques qui seraient utiles à vos recherches.

Retour sur notre « hello world »: langage de haut niveau et langage de bas niveau

Dans notre premier billet, Jean-Baptiste nous montrait la différence de codage d’une instruction très simple – saluer nos visiteurs autant fois qu’ils le désirent – entre C++ et Perl. Plus généralement, cette différence est celle que l’on trouve entre des langages de plus ou moins « haut niveau ».

Qu’on ne se méprenne pas sur cette appellation: il ne s’agit pas de distinguer une élite de langages de programmation d’une sorte de plèbe informatique. Un langage dit de bas niveau est un langage qui se rapproche de celui qu’utilise la machine, le processeur. Le plus  bas niveau serait ainsi de coder directement ses instructions en binaire – ce qu’on n’a plus à faire depuis des décennies, pour notre plus grand bonheur. D’un peu plus haut niveau, on trouvera la programmation en hexadécimal, le langage assembleur, puis le C etc. Et assez haut, on trouvera par exemple Perl, ou son rival Python.

Les langages de bas niveau sont cruciaux dans nombre de domaines de l’informatique. Ils permettent d’exploiter toutes les capacités de la machine employée, en étant au plus proche se son fonctionnement. Ils sont également d’une très grande rapidité d’exécution. Cependant, dans le cas des recherches en humanités qui nous occupent ici, ces langages sont assez significativement dominés par des langages de haut niveau.

Comme le premier post le montrait, il faut beaucoup moins de lignes de codes pour écrire un programme avec un langage de plus haut niveau (C++ n’étant pas à proprement parler un langage de bas niveau, mais étant toutefois de moins haut niveau d’abstraction que Perl par exemple). Et qui dit moins de lignes de codes dit moins de temps passé à coder, moins de fautes de frappe ou d’étourderie commises en écrivant le programme – et donc moins de temps passé à s’énerver en cherchant les bogues… En bref, un langage comme Perl (mais il n’y a pas que lui) est plus maniable, plus rapide à coder, et d’une certaine manière plus « magique »: avec très peu de lignes, il fait faire une masse prodigieuse d’opérations à notre machine. Voilà peut-être notre Excalibur…

Pour ces raisons, nous ne présenterons que des langages de programmation de  (très) haut niveau au cours des prochains posts.

Florian CAFIERO

Ancien élève de l'Ecole Normale Supérieure, Florian Cafiero enseigne les méthodes quantitatives appliquées à la philologie à l'Ecole nationale des chartes, ainsi que les humanités numériques à Paris Sciences et Lettres (PSL).

More Posts

Follow Me:
TwitterLinkedIn

Un premier pas avec Perl

Dans la perspective de choisir un langage de programmation pour réaliser des programmes de traitement textuel, je me suis décidé, pour commencer, à comparer deux langages, un de relativement bas niveau (en l’occurence C++, mais j’aurais également pu choisir Java) et un de plus haut niveau (en l’occurence Perl, mais j’aurais pu aussi choisir Python).

 

Le test consiste à réaliser, sans connaissance a priori de ces deux langages, en un quart d’heure ou une demie heure, un programme très simple, version un tout petit peu plus évoluée d’un hello world ! qui demande à l’utilisateur combien de fois il veut qu’on lui dise « Bonjour ! » et effectuant cette opération1 :

À gauche, le code C++, à droite le code Perl

Première constatation, Perl paraît à la fois plus concis et un petit peu moins précis (moins propre ?) puisqu’on ne déclare pas la nature de la variable. En dehors de cela, rien de trépidant. Ce qui est plus intéressant, en revanche, c’est que l’on dispose d’au moins une autre solution très simple en Perl (qui, admettons-le, a été créé pour faire des traitements textuels, ce qui n’est pas le cas de C++) :

Alternative en Perl

Et voilà ! En un mirobolant total de 3 lignes de code, c’est fait. Voilà qui aurait tendance à prêcher pour Perl, même si ça n’a pas la rigueur et la beauté abstraite du C++.

  1. Je précise que je ne suis pas informaticien de formation, et ai donc sur le sujet le regard, peut-être un peu naïf, du néophyte. Que les programmeurs veuillent bien m’en excuser ! []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn