Chaque fois que vous ouvrez un tableur, importez un fichier CSV ou collez une liste dans un outil, vous vous appuyez sur une petite invention discrète : le délimiteur. C'est un caractère qui indique à un ordinateur où se termine une donnée et où commence la suivante. Un concept simple, non ? Mais l'histoire de la façon dont nous en sommes arrivés aux virgules, aux pipes et aux tabulations est étonnamment intéressante.
Qu'est-ce qu'un délimiteur, au juste ?
Un délimiteur est un caractère utilisé pour séparer des champs dans un flux de données textuelles. Il trace une frontière. Sans lui, une chaîne comme JeanDupont30Paris n'est qu'un bruit incompréhensible. Ajoutez des virgules et elle devient Jean,Dupont,30,Paris, ce qu'un programme peut réellement analyser et exploiter.
Le concept est plus ancien que les ordinateurs personnels. Les humains utilisent des séparateurs dans les documents écrits depuis des siècles, des livres de comptes avec des colonnes réglées aux systèmes de cartes perforées du début du XXe siècle.
Cartes perforées et débuts de l'informatique
Les origines les plus anciennes de l'histoire du délimiteur remontent aux systèmes de tabulation par cartes perforées utilisés dans les années 1880, associés notamment à Herman Hollerith et au recensement américain. Chaque carte représentait un enregistrement, et les colonnes physiques servaient de séparateurs de champs. La structure était intégrée au matériel lui-même.
Lorsque la bande magnétique a remplacé les cartes, cette structure physique a disparu. Les données sont devenues un flux continu de caractères, et les ingénieurs avaient besoin d'un nouveau moyen de marquer la fin d'un champ et le début d'un autre. C'est alors que les caractères séparateurs spéciaux sont entrés en scène.
L'ASCII et la naissance des caractères de contrôle
En 1963, l'American Standards Association publia la première version de l'ASCII (American Standard Code for Information Interchange). L'ASCII n'encodait pas seulement des lettres et des chiffres. Il incluait un ensemble de caractères de contrôle non imprimables spécifiquement conçus pour le formatage des données.
Deux d'entre eux sont particulièrement pertinents ici :
- ASCII 28 : le séparateur de fichier (File Separator – FS)
- ASCII 29 : le séparateur de groupe (Group Separator – GS)
- ASCII 30 : le séparateur d'enregistrement (Record Separator – RS)
- ASCII 31 : le séparateur d'unité (Unit Separator – US)
Il s'agissait de délimiteurs conçus spécifiquement à cet effet. Le problème était que la plupart des logiciels et terminaux de l'époque ne les affichaient pas et ne les géraient pas de manière cohérente, si bien que les développeurs ont commencé à se tourner vers des caractères imprimables.
Le séparateur d'unité ASCII (caractère 31) a été littéralement conçu pour séparer les champs de données. La plupart des développeurs modernes ne l'ont jamais utilisé, mais il figure toujours dans le standard.
Comment la virgule a pris le dessus
Le format de valeurs séparées par des virgules, plus connu sous le nom de CSV, est devenu populaire dans les années 1970 et 1980 comme moyen de transférer des données entre les premiers tableurs. Les mainframes IBM l'utilisaient, les premières versions de VisiCalc et Lotus 1-2-3 le prenaient en charge, et il s'est imposé.
L'essor du CSV s'explique par des raisons pratiques :
- Les virgules sont faciles à taper sur n'importe quel clavier.
- La plupart des données de l'époque ne contenaient pas de virgules, donc les conflits étaient rares.
- Le format est lisible par l'humain sans logiciel spécial.
- Il ne nécessitait aucun encodage spécial ni traitement binaire.
Bien entendu, les virgules à l'intérieur des champs de données ont immédiatement posé problème. La solution standard consistait à encadrer les champs par des guillemets doubles, ce qui introduisait ses propres cas limites. On comprend pourquoi les ingénieurs ont continué à chercher de meilleures options.
Autres délimiteurs et pourquoi ils existent
Différents formats de données ont adopté différents séparateurs en fonction de la nature des données. Voici une comparaison rapide des plus courants :
| Délimiteur | Caractère | Cas d'utilisation courant |
|---|---|---|
| Virgule | , | Fichiers CSV, tableurs, export de données général |
| Tabulation | \t | Fichiers TSV, exports de bases de données, données du presse-papiers |
| Pipe | | | Fichiers de logs, données financières, champs contenant des virgules |
| Point-virgule | ; | Fichiers CSV dans les locales européennes (où la virgule est le séparateur décimal) |
| Deux-points | : | Fichiers de configuration Unix, paires clé-valeur |
Le caractère pipe est devenu populaire dans les fichiers de logs et les pipelines Unix précisément parce qu'il n'apparaît presque jamais dans du texte normal. Le point-virgule s'est imposé dans les logiciels européens car de nombreux pays utilisent la virgule comme séparateur décimal, ce qui en fait un choix désastreux pour découper des nombres.
Les formats de données modernes reposent toujours sur le même principe
Même les formats modernes d'aujourd'hui ne sont que des variations du même concept. JSON utilise les deux-points pour séparer les clés des valeurs et les virgules pour séparer les paires. XML utilise des chevrons comme délimiteurs autour des noms d'éléments. SQL utilise des virgules dans les instructions INSERT. Le délimiteur n'a jamais disparu. Il s'est simplement habillé différemment.
Si vous avez besoin de passer d'un format à un autre, un bon convertisseur de délimiteurs en ligne rend la tâche rapide et sans effort, sans avoir à écrire un script pour une opération ponctuelle.
Points clés à retenir
- Les délimiteurs trouvent leur origine dans les colonnes physiques des cartes perforées et ont évolué vers les caractères de contrôle ASCII dans les années 1960.
- L'ASCII incluait des caractères séparateurs dédiés (28-31), mais ils ont été largement abandonnés au profit de symboles lisibles comme les virgules et les pipes.
- Le CSV s'est imposé dans les années 1970-80 car il était simple, lisible et facile à saisir au clavier.
- Différents délimiteurs existent parce que différentes données et différentes locales ont des besoins différents — il n'y a pas de choix unique et parfait.
- Les formats de données modernes comme JSON et XML reposent toujours sur le même principe fondamental : utiliser des caractères spéciaux pour marquer des frontières.
Un petit caractère avec une grande mission
Il est facile de négliger quelque chose d'aussi banal qu'une virgule ou un symbole pipe. Mais ces caractères maintiennent la cohérence des données structurées dans chaque secteur d'activité, chaque base de données et chaque tableur de la planète. La prochaine fois que vous utiliserez un convertisseur de délimiteurs gratuit ou ouvrirez un fichier CSV, vous toucherez à un héritage qui remonte aux tout débuts de l'informatique. Ce petit séparateur accomplit un travail discret mais essentiel.