allora in un insieme di librerie ci sono tante funzioni!!queste funzioni devono avere nome diverso per non creare ambiguita'!!poiche' le librerie non vengono fatte tutte dalla stessa persona o in generale dagli stessi programmatori,come si fa a evitare collisione di nomi?tramite i namespace!!
cioe' io tiro su una libreria con un insieme di funzioni definite in uno spazio di nome da me stabilito!!per usare le funzione della mia libreria, un programmatore deve prima specificare che quelle funzioni sono definite nel namespace tiziocaio!!

esempio(in C++)

//dichiaro un namespace
namespace tiziocaio {
class MiaClasse{...}
void MiaFunzione(){......}
}

ora se voglio usare la funzione MiaFunzione() o dichiarare un oggetto di MiaClasse, devo dire che i nomi li deve andare a prendere nel namespace toziocaio e non in quello globale(standard)!!
quindi prima di scrivere MiaFunzione() scrivo
using namespace tiziocaio;

In questo modo un altro pinco pallino fa un'altra libreria definisce una funzione che ha come nome sempre MiaFunzione(), ma si trova nel namespace pincopallino!!

-->>non c'e' collisione di nomi!!

spero di essere stato chiaroe terra terra