One of the hardest tasks in software is finding a good name. Names for variables, classes, libraries, and products requires countless mental cycles - as it should. Names are a serious business. In software, names bring imaginary things to life. Good names lead to readability, shared vocabularies, and emotional attachments. Bad names lead to confusion, pain, and assistance from highly paid consultants.
Have you ever wondered how many hours the software world has spent inventing naming standards? You know the "prefix this" and "suffix that" and "start all of these with a capital C" documents. These standards are the perfect method for making Code look Consistent, but always include the rule "use logical and descriptive names". A naming standard is to good names as "use pronouns clearly" is to good grammar.
It's a shame Visual Basic uses keywords like MustInherit and Overridable. The rest of the world talks about abstract classes and virtual functions, but Visual Basic has to be different. They say it's because VB is geared to the developer who wants to add value to their business. Yet the developer who is typing "MustInherit" clearly isn't thinking about a business problem - they are thinking about a class hierarchy. Why shouldn't VB have the same vocabulary as the rest of the OOP world? Ever hear of a MustInherit factory pattern?
For libraries and frameworks, the naming stakes get even higher. If the framework is going into widespread use, people will encounter the name in book titles, articles, power point slides, and technical conversations. People become attached to the name, as it covers many abstract and conceptual things. Witness the outcry over the Indigo to WCF switch, and the Avalon to WPF switch. Will Atlas stay Atlas, or will Atlas become the ASP.NET Client Side Integration Framework (ACSIF)?
Naming a product is the toughest assignment of all. We need to search trademarks and domain names. We need something that is snappy and looks good on a business card. The safe approach is just to make something up, like FlazBlatter. Someday, there will be a product named FlazBlatter, mark my words….