Ogni volta che apri un foglio di calcolo, importi un file CSV o incolli un elenco in uno strumento, stai facendo affidamento su una piccola invenzione silenziosa: il delimitatore. È un carattere che indica al computer dove finisce un dato e dove inizia il successivo. Un'idea semplice, vero? Ma la storia di come siamo arrivati a usare virgole, pipe e tabulazioni è sorprendentemente interessante.
Cos'è davvero un delimitatore?
Un delimitatore è qualsiasi carattere usato per separare i campi in un flusso di dati testuali. Traccia un confine. Senza di esso, una stringa come MarioRossi30Milano è solo rumore. Aggiungi delle virgole e diventa Mario,Rossi,30,Milano, qualcosa che un programma può effettivamente analizzare e utilizzare.
Il concetto è più antico dei personal computer. Gli esseri umani usano separatori nei documenti scritti da secoli, dai registri contabili con colonne tracciate ai sistemi a schede perforate del primo Novecento.
Schede perforate e primi computer
Le prime radici della storia del delimitatore risalgono ai sistemi di tabulazione a schede perforate usati negli anni 1880, notoriamente associati a Herman Hollerith e al censimento degli Stati Uniti. Ogni scheda rappresentava un record e le colonne fisiche fungevano da separatori di campo. La struttura era incorporata nell'hardware stesso.
Quando il nastro magnetico sostituì le schede, quella struttura fisica scomparve. I dati divennero un flusso continuo di caratteri e gli ingegneri ebbero bisogno di un nuovo modo per indicare dove finiva un campo e iniziava il successivo. Fu allora che entrarono in scena i caratteri separatori speciali.
ASCII e la nascita dei caratteri di controllo
Nel 1963, l'American Standards Association pubblicò la prima versione dell'ASCII (American Standard Code for Information Interchange). L'ASCII non codificava solo lettere e numeri. Includeva un insieme di caratteri di controllo non stampabili progettati specificamente per la formattazione dei dati.
Due di questi sono particolarmente rilevanti:
- ASCII 28: il File Separator (FS)
- ASCII 29: il Group Separator (GS)
- ASCII 30: il Record Separator (RS)
- ASCII 31: lo Unit Separator (US)
Erano delimitatori progettati appositamente per questo scopo. Il problema era che la maggior parte del software e dei terminali dell'epoca non li visualizzava né li gestiva in modo coerente, così gli sviluppatori iniziarono a ricorrere a caratteri stampabili.
Lo Unit Separator ASCII (carattere 31) è stato letteralmente progettato per separare i campi di dati. La maggior parte degli sviluppatori moderni non lo ha mai usato, ma è ancora presente nello standard.
Come la virgola ha preso il sopravvento
Il formato a valori separati da virgola, meglio noto come CSV, divenne popolare negli anni '70 e '80 come modo per trasferire dati tra i primi programmi di fogli di calcolo. I mainframe IBM lo utilizzavano, le prime versioni di VisiCalc e Lotus 1-2-3 lo supportavano, e il formato si affermò.
L'ascesa del CSV avvenne per ragioni pratiche:
- Le virgole sono facili da digitare su qualsiasi tastiera.
- La maggior parte dei primi dati non conteneva virgole, quindi le collisioni erano rare.
- Il formato è leggibile dall'uomo senza alcun software speciale.
- Non richiedeva codifiche speciali o gestione binaria.
Naturalmente, le virgole all'interno dei campi dati causarono subito problemi. La soluzione standard fu racchiudere i campi tra doppi apici, il che introdusse a sua volta ulteriori casi particolari. Si capisce perché gli ingegneri continuarono a cercare opzioni migliori.
Altri delimitatori e perché esistono
Diversi formati di dati hanno adottato separatori diversi in base all'aspetto dei dati. Ecco un rapido confronto tra i più comuni:
| Delimitatore | Carattere | Caso d'uso comune |
|---|---|---|
| Virgola | , | File CSV, fogli di calcolo, esportazione dati generica |
| Tabulazione | \t | File TSV, export da database, dati negli appunti |
| Pipe | | | File di log, dati finanziari, campi con virgole |
| Punto e virgola | ; | File CSV nelle impostazioni europee (dove la virgola è il separatore decimale) |
| Due punti | : | File di configurazione Unix, coppie chiave-valore |
Il carattere pipe è diventato popolare nei file di log e nelle pipeline Unix proprio perché non compare quasi mai nel testo normale. Il punto e virgola si è affermato nel software europeo perché molti paesi usano la virgola come separatore decimale, rendendola una scelta pessima per dividere i numeri.
I formati di dati moderni si basano ancora sulla stessa idea
Anche i formati moderni di oggi sono solo variazioni dello stesso concetto. JSON usa i due punti per separare le chiavi dai valori e le virgole per separare le coppie. XML usa le parentesi angolari come delimitatori attorno ai nomi degli elementi. SQL usa le virgole nelle istruzioni INSERT. Il delimitatore non è mai scomparso. Si è solo vestito in modo diverso.
Se hai bisogno di convertire tra formati, un buon convertitore di delimitatori online rende il lavoro rapido e indolore senza dover scrivere uno script per un'operazione occasionale.
Punti chiave
- I delimitatori hanno origine dalle colonne fisiche delle schede perforate e si sono evoluti nei caratteri di controllo ASCII negli anni '60.
- L'ASCII includeva caratteri separatori dedicati (28-31), ma furono in gran parte abbandonati a favore di simboli leggibili come virgole e pipe.
- Il CSV è diventato dominante negli anni '70-'80 perché era semplice, leggibile e facile da digitare.
- Esistono diversi delimitatori perché dati e impostazioni locali diversi hanno esigenze diverse: non esiste una scelta perfetta unica.
- I formati di dati moderni come JSON e XML sono ancora costruiti sulla stessa idea fondamentale di usare caratteri speciali per delimitare i confini.
Un piccolo carattere con un grande compito
È facile trascurare qualcosa di così banale come una virgola o un simbolo pipe. Ma questi caratteri tengono insieme i dati strutturati in ogni settore, ogni database e ogni foglio di calcolo del pianeta. La prossima volta che usi un convertitore di delimitatori gratuito o apri un file CSV, stai toccando un'eredità che risale alle origini stesse dell'informatica. Quel piccolo separatore sta svolgendo un lavoro silenzioso e importantissimo.