È stato deciso dopo ORE di conversazione (qui l'annuncio ufficiale) il carattere che rappresenterà il separatore, scelta ricaduta sul backslash ( \ ), che andrà a rimpiazzare i '::' che causavano dei problemi in quanto già utilizzati per i metodi statici di una classe. Dal RFC relativo possiamo vedere quali sono i criteri di questa scelta:
- Facilità di digitazione;
- Vulnerabilità ai typo;
- Semplicità di parsing;
- Compatibilità con gli IDE;
- Numero di caratteri.
Facilità di digitazione e Vulnerabilità ai typo: basare una scelta del genere sulla facilità di digitazione a mio parere è sbagliato, soprattutto perchè esistono molti layout di tastiera, per cui ciò che è semplice digitare su una tastiera qwerty può essere difficile per altri layout.
Compatibilità con gli IDE: Il carattere '\' rappresenta il carattere di escape, gli IDE dovranno quindi confrontarsi con namespace del tipo "nome\troppo\bello", dove \t genericamente rappresenta il carattere tab, o "mio\namespace", e così via. Come si comporteranno in questo caso?
Anche per quanto riguarda l'esperienza dei programmatori il carattere potrebbe rappresentare dei problemi di chiarezza, dato il suo significato "acquisito" come carattere di escape.
Aggiungo quali sono le alternative proposte, scartando quindi "::" per i motivi citati in precedenza e "." in quanto è già utilizzato per la concatenazione di stringhe: **, ^^, :>, :), %%, ::: .
Forse ":)" paradossalmente avrebbe fatto meno sorridere :)