Falsehoods Programmers Believe About Names
Jamie points out this interesting article about how hard it is for programmers to get names right. Since software ultimately is used by and for humans, and we humans are pretty tightly linked to our names (whatever the language, spelling, or orthography), this is a big deal. This piece notes some of the ways that names get mishandled, and suggests rules of thumb (in the form of anti-suggestions) to encourage programmers to handle names more gracefully.
Software is NOT designed to be perfect and cover every case.
Then it's designed to fail, and probably also has security holes, and should not be deployed. At the very least it will be a block to compatibility, at worst it will become a botnet.
Software in the Internet age NEEDS to be 100% correct because it has a potential lifetime of infinity years and 6 billion and counting potential users. If you're building a system 'to throw away' as the XP people suggest, you're also building one to be rooted unless you DO throw it away before the. And if you ever put it or any references to it on the Web, you're going to leave permanent identifiers to your system scattered all over the planet even after you throw it away - so if you're designing it to be thrown away, you're designing to leave a trail of broken data and angry users in your wake.
Is that really what you want to do?
You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC