I worked on a project (while a Microsoft employee) where we were told that the coding standard was CNF (Cutler Normal Form). Naively I asked what this was, whether there was a document etc. The answer was to read Dave's code and write in the same style.
Do you remember any details from Cutler Normal Form? I'd love to learn more about this.
From a quick search I see that it uses braces at the end. I'd be curious if CNF encouraged subsystem prefixes (e.g. the "Ke" in "KeBugCheck").
I wonder if CNF had any influence on "Systems Hungarian" (e.g. "dwCreationFlags") that dominates the Win32 API or if that came as an accidental offshoot of Simonyi's "Application Hungarian"
I don't remember much hungarian in CNF, I do remember a lot of whitespace...
//
// Comments are always surrounded both by empty comment lines
// And by whitespace
//
//
// The return type is always on its own line.
// The function name always starts at column 0 and is whitespace delimited,
// this (allegedly) was a consequence of search macros that Cutler used
//
int
main (
int argc,
char **argv)
{
//
// Even a one line comment ends up taking up at least 4 lines
//
printf("Hello, World!\n");
if (argc == 2)
{
//
// All blocks always use braces
//
}
return 0;
}
I'm interested because it seems that lower-level systems programming at Microsoft put braces at the end (early .NET BCL, maybe even the first C# compiler's C++ code, TypeScript compiler source, etc), but that Microsoft documentation tended to put braces on their own line and then that became the more de-facto style that shows up in their open source code.
I also used to work at Microsoft. CNF was primarily used in the kernel and driver code but rarely in userland code, with the exception of certain tools that were developed and maintained by the kernel team (such as powercfg.exe). CNF was one of the few coding styles at Microsoft that I really enjoyed using due to how clean and disciplined it made the code. I felt that the style really reflected Dave Cutler's attention to detail and quality.