In fact, namespaces are a very general concept that occurs a lot in computer science. Basically a namespace is an abstract "area" in which different objects cannot have the same name. Or rather, if a name occurs twice, it is assumend that it means the same object. Also, within a namespace, a name that belongs to it can be used directly, without further qualification.

Example: modern programming languages give separate parts of code separate namespaces for variables so that you can use variable names without having to worry about someone else who works on another part of the code using the same names. Using variables outside your own modules, classes or whatever is sometimes possible, but you have to specify where the variable can be found in addition to its name.