6 minuti
Ma si chiama directory o cartella?
Come chiamate quella cosina gialla sul desktop con una linguetta sopra? O, se siete tipi da shell, quella dove accedete tramite cd? Nel primo caso Windows è chiaro: si chiama cartella. Eppure il comando cd, comune sia alle shell Unix che al prompt dei comandi originario DOS, è un’abbreviazione: change directory.
Questo post vuole entrare in una ben nota diatriba informatica che va avanti ormai da una quarantina d’anni sul temine corretto per definire un elemento ormai comune della vita informatica ma che, nonostante ciò, non ha un nome scevro da controversie.
E, molto probabilmente, il nome che usate dipende da come concepite una directory: se per voi è un elenco di file, probabilmente la chiamerete directory, termine che in inglese vuol dire proprio elenco, mentre se per voi è un contenitore di file molto probabilmente la chiamerete cartella.
Directory vs Cartella
In principio, erano una lista…
In principio era la directory. Nei primi file system a supportare quest’idea, infatti, una directory era, da un punto di vista logico, un elenco di file. Su UNIX, per di più, in base alla filosofia tutto è un file (o meglio, tutto ha un descrittore da file) le directory erano (e, negli Unix-like, sono) file, come ben dice IBM:
A directory is a unique type of file that contains only the information needed to access files or other directories Una directory è un tipo di file speciale che contiene solamente le informazioni necessarie ad accedere ai file o ad altre directory
Una directory, appunto, non contiene i file, ma solo le informazioni per accedervi. Per fare un paragone, è come una lista che dice in quale armadio si trovano una serie di documenti collegati.
Ma poi arrivò il desktop
Con l’avvento delle interfacce grafiche nacque il cosiddetto “paradigma del desktop”, che provava a rappresentare gli elementi del computer con elementi già presenti sulla scrivania. Tale paradigma, come ben spiega qui Davide Bianchi, è fondamentalmente fallato, ma ha portato l’idea della directory rappresentata come cartella d’archivio, in inglese folder, che contiene i file.
Tale visione, ovviamente, non ha senso logicamente parlando: una directory elenca, non contiene. Basta pensare al fatto che, spostando file su un medesimo file system, essi rimarranno sempre nello stesso punto, verrà aggiornato solamente il riferimento nelle directory. Ma, come rappresentazione, è decisamente più immediata per l’utente, che pensa a dei semplici contenitori dove son presenti i suoi file, eliminando l’intermediazione del concetto di elenco, di sicuro interesse per gli informatici ma - diciamocelo - fondamentalmente inutile per l’utente quadratico medio.
Stessa cosa dunque?
Verrebbe dunque da dire che, nei fatti, directory e cartella sono termini intercambiabili, uno d’origine testuale/logica e l’altro d’origine grafica. O, più precisamente, che:
- La directory è la rappresentazione logica di un elenco di file
- La cartella è la rappresentazione grafica di un elenco di file
Ma è davvero così? Come molte cose in informatica… dipende!
Sì, sui sistemi Unix-like
Nei sistemi Unix like, come Linux, MacOS o gli altri BSD, è effettivamente così: il sistema rappresenta al suo interno le directory come file che hanno al loro interno l’identificativo unico di altri file. Sarà poi, se presente, l’ambiente grafico a decidere se e come rappresentarle.
Nel mondo Unix, comunque, è ritenuto ben più corretto usare directory, a prescindere dal contesto: non a caso molti dei più talebani sull’uso del termine son sistemisti, ossia gente che mangia pane e standard UNIX a colazione. Resta comunque tollerato l’uso di cartella per aiutare l’utente inesperto, ad esempio nell’ormai mitico Da Windows a Linux di Paolo Attivissimo si riferisce ad esse come “cartelle” nel segmento Windows, annunciando poi che
Sempre a proposito di nomi, c'è un’altra particolarità da imparare. Le cartelle in Linux non si chiamano cartelle: si chiamano directory
e riferendosi, più avanti, a “cartelle” solo nell’ambiente Windows o nella loro apparenza grafica generata da un ambiente desktop.
Fa un po’ eccezione MacOS: la Apple è stata una delle principali autrici del paradigma del desktop, ergo vengono utilizzati con relativa tranquillità sia directory che cartella.
No, su Windows
Su Windows, invece, la cosa è stata chiarita direttamente dallo sviluppatore, nonché idolo delle masse, Raymond Chen.
Ai tempi del DOS, similmente a Unix, le directory erano tali e anche in Windows pre-95 il File Manager le denominava in questo modo.
Fu con Windows 95 che venne introdotto il concetto di “cartella” ma, attenzione, non si è trattata di una mera trasposizione della directory DOS!
Infatti, in Windows, esistono due tipi di cartelle:
- Le directory, che rappresentano locazioni sul file system
- Le cartelle virtuali, cose che non esistono sul file system, come il pannello di controllo, le stampanti e, ad esempio, i file zip
Sembra certamente, perdonate il termine, una definizione un po’ paracula, che permette di dire che C:\Windows è sia una directory che una cartella, ma alla fine è chi sviluppa il sistema, o più precisamente la shell in questo caso, a decidere come gestire certi elementi.
Per di più ciò influsce sul paradigma di programmazione: se sui sistemi Unix tutto è un file, quindi si possono - semplifichiamola, ma nei riferimenti c'è una pagina che lo spiega bene - utilizzare gli stessi metodi per praticamente tutto, su Windows esistono più metodi ed è necessario tenere a mente queste distinzioni per programmare efficacemente.
Cosa usare, dunque?
In generale, il termine corretto e più opportuno da usare, grazie alla sua università, è directory. Anche in ambiente Windows, se si intende una locazione effettiva sul file system, è il termine più specifico, quindi il migliore. Non bisogna però peccare in ipercorrettismo e definire directory cose come “Computer”, ex “Risorse del Computer”, che sono indubbiamente cartelle.
L’uso di cartella, in ambiente Windows, non è errato, ma è sconsigliato quand'è possibile usare un’alternativa più specifica in ambiente sistemistico: in ambiente di sviluppo software può aver senso, invece, parlare di cartelle, poiché l’oggetto che si elabora è quello, non la directory.
Non bisogna, però, fare gli estremisti, lartando gli utenti quando usano il termine cartella: è tutto ciò che han sempre sentito, sarebbe come prendersela con chi chiama l’interruttore differenziale “salvavita”.
Tuttavia, come soleva dire il mio professore di Educazione Tecnica “siete tecnici, dovete essere precisi”, quindi, se si parla seriamente di informatica, è bene usare “directory” o, nei rari casi visti dove opportuno, “cartella”, essendo pronti a spiegare la cosa a chi non ha particolare esperienza.
Magari linkandogli questo post ;)