panzone
Il registro di sistema, nelle intenzioni originarie, è un database il cui scopo è ospitare le opzioni di configurazione delle varie applicazioni (e del sistema operativo).
Tecnicamente si, se ne può fare meno (molti programmi windows non lo usano e unix e derivati ad esempio non han un concetto di registro ma preferiscono che ogni programma si gestisca da solo le sue configurazioni per la rule of modularity). Il vantaggio principale è che, appunto, permette di aver in un database centralizzato rapido da accedere ogni opzione di configurazione delle applicazioni. La cosa risulta molto più rapida ed in qualche maniera obbliga ogni programma a dover render conto al sistema delle opzioni che vuole accedere (viceversa unix ha un sistema di permessi molto più primitivo a riguardo).
Ora, avere un unico entry point per le configurazioni di ogni singolo programma è una cosa figa sia lato performance (è un database relazionale, ergo rapidissimo da consultare), sia lato sviluppatore (obbliga a gestire in un certo modo le configurazioni lato programma), sia lato sicurezza se lo consideri post Vista (logga ogni accesso. Io posso controllare quando un programma vuole leggere roba degli altri. Unix ha una cosa simile ma è leggermente più complessa perchè l' idea originale è: se due programmi hanno lo stesso livello di privilegio nulla dovrebbe vietar loro di comunicare, cosa che nel 2014 è abbastanza aberrante). Regedit in questo è laffigata.
Lo svantaggio è che appunto è un database utilizzato molto frequentemente: con l' utilizzo si riempe di roba che spesso diventa inutile e dunque degrada le prestazioni (ma qui, basta far una pulizia periodica e via andare). Oltretutto impedisce di gestire i file di configurazione in maniera indipendente ed in un paio di situazioni può tornare comodo. Infine, un file di configurazione può aver il formato scelto dal programmatore (rendendo la stessa configurazione portatile) invece di quello imposto dal sistema, rendendo il programma meno portatile.