Naming convention in Phobos

Jim bitcirkel at yahoo.com
Sun Mar 6 09:50:09 PST 2011


Jonathan M Davis Wrote:

> On Sunday 06 March 2011 02:59:25 Jim wrote:
> > Okay, so there's a discussion about identifier names in the proposed
> > std.path replacement -- should they be abbreviated or not? Should we
> > perhaps seek to have a consistent naming convention for all identifier
> > names in Phobos?
> > 
> > 
> > Some of the potential benefits:
> > 
> > • Legibility, understandability and clarity (reduce ambiguity).
> > • Ease in finding a suitable function/class by name.
> > • Knowing if it's a cheap or costly function call.
> > • Aesthetics and professional appearance.
> > 
> > 
> > Some properties that I can think of for discussion:
> > 
> > • Abbreviation (and if so, what to abbreviate and how much)?
> > • Preference of commonly used terms in other languages, contexts?
> > • Use of get and set prefixes or not (getName() or simply name())?
> > • Explicit use of a prefix (example: calc or calculate) for costly
> > operations? • Naming of function and template arguments?
> > • Uppercase, lowercase, camelcase, underscore in multi-word names? All caps
> > for constants, or different appearance for different types (types,
> > functions, arguments, constants...). What about acronyms: TCP, Tcp?
> > 
> > Are there other concerns?
> 
> The general naming convention as far as variable names go is camelcased with the 
> name starting with a lower case letter - this includes constants. Most of Phobos 
> follows this, and the parts that haven't been have been moving towards it. There 
> are likely to be a few exceptions, but on the whole, that's how it's supposed to 
> be. Type names are the same, except they start with an upper case letter (this 
> includes enum names - the enum values are capitalized the same as any other 
> variables however). That's the way it has been, and that's the way that it's 
> pretty much guaranteed to stay.
> 
> Generally speaking, we want descriptive names, and I think that it's safe to say 
> that we don't want overly long names, so if we can have descriptive but short 
> names, that's generally best. get and set prefixes are likely to be rare, because 
> most of such functions will be properties, and properties will normally have 
> nouns for names and won't use get or set, but I don't think that we want to say 
> that we'll _never_ have function names prefixed with get or set. Normally, we 
> won't, but it's going to be very situation-dependent.
> 
> Now, as for the rest of it, I don't really want to get into a big discussion of 
> the best way to name everything. It's far too context-dependent and very quickly 
> turns towards bike shedding. I think that it's appropriate for anyone who's 
> developing a module for Phobos to come up with names that they think are 
> reasonable and which follow the very basic naming conventions that we follow, 
> and then have names adjusted as needed during the review process. I really don't 
> think that we're going to get much of value by having a big discussion over 
> general naming conventions. It seems to me like it's just going to be a classic 
> situation for bike shedding and generally useless discussion. What we've been 
> doing generally works just fine.
> 
> - Jonathan M Davis

All right, thanks for the courteous reply. Considering the other comments in this thread I think there isn't much interest in working out or agreeing on a few good principles or guidelines for naming identifiers in Phobos. Otherwise, even if we could only agree on a few of them, they could be written down somewhere, should anyone someday be inclined to join the development.


More information about the Digitalmars-d mailing list