What's the best practice for field API prefixes? (To prefix or not to prefix, that is the question) I'm implementing a giant list of fields, instances, bundles, et cetera in a custom site specific module.

In progress, I see that the core Tags vocabulary has a field_ machine name prefix, and none of my custom vocabularies have this prefix. I've known that creating fields through the Drupal GUI also prefixes fields with field_.

In my previous experience working with prefixed fields, this has always seemed too verbose.

Is prefixing Field API fields with _field a best practice for a reason I haven't come across yet?
I prefix my custom fields always with the name of my module, which, I think, is a good practice, so that I know which module provides this field. And also I think this is the same reason Drupal Field UI adds the field_ prefix since the fields are created by the Field module in this case.