The moment you start writing code that grows beyond a few classes, you start to realise that you need a way to group files and logic. While this is easy to do, it can become quite difficult to ensure that you have class names that are unique and don’t end up accidentally clashing with other classes in your own code, or classes in other people’s code that you are using. Namespaces! That’s What You Want.
See the original article here:
RubySource: Confessions of a Converted PHP Developer: Namespace Superhero!