
The engineer’s engineer: Computer industry luminaries salute Dave Cutler - rozzie
http://news.microsoft.com/features/the-engineers-engineer-computer-industry-luminaries-salute-dave-cutlers-five-decade-long-quest-for-quality/
======
moserware
Dave Cutler is a legend, but he keeps a relatively low profile, so it was nice
to watch the rare new video interview with him at the bottom. I especially
liked what he said at the end:

"I have this little saying that the successful people in the world are the
people that do the things that the unsuccessful ones won't. So I've always
been this person that, you know.. I will build the system, I will fix the
bugs, I will fix other people's bugs, I will fix build breaks. It's all part
of getting the job done."

When I was a kid, I enjoyed reading "Show Stopper! The Breakneck Race to
Create Windows NT and the Next Generation at Microsoft" that chronicled his
move from DEC to build NT. Jeff Atwood has a quick review of it at
[http://blog.codinghorror.com/showstopper/](http://blog.codinghorror.com/showstopper/)

~~~
existencebox
After reading this, I have so much I would give my right arm to ask him
(similar to my sentiments on other luminaries). His focus on quality is a
trait that often seems to go unrewarded in his very institution, and I often
struggle to reconcile the success I see achieved with the merit based success
often insinuated, and the act of "getting things done" often seems blocked
with politics and bureaucracy.

Clearly however he's found success through this, I can only hope he sticks
around long enough that I may selfishly brush shoulders and share some of his
wisdom, I find there to be far too few who have managed to succeed to that
level of notoriety/accomplishment while maintaining the principles he seems to
uphold, and would love to learn more from those who have on how they
approached surmounting their environment. (on that note, thanks for the
showstopper link, the review was more than sufficient to motivate a longer
read)

~~~
cm3
> His focus on quality is a trait that often seems to go unrewarded

In most companies focus on quality is something you're precluded from having,
and usually it's in the same category as security and maintainability
(refactoring). I've been in various planning meetings where I wasn't able to
convince the dev team manager to allow time for such things, because they
stubbornly wouldn't accept that these things will pay dividends sooner than
they believe. As a result in most code bases it's: prototype -> production ->
patch, patch, patch. This is the norm but there are also places that know
better and you don't have to convince anyone of the benefits.

~~~
WalterBright
Refactoring can be its own source of problems. I've seen far too many
refactorings that merely exchanged one mess for another. I'm a bit sympathetic
to a manager who is skeptical of refactorings.

~~~
cm3
Definitely, I've seen those kind of refactorings too, but what I mean is that
one isn't allowed to fix the architectural problems that make it hard or
impossible to implement what's requested. The existing design didn't
anticipate certain things which are now impossible to implement without
compromising the architecture.

------
pacaro
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.

~~~
moserware
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"

~~~
pacaro
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;
      }

~~~
moserware
Thanks for the example! I especially found the commenting style and return
type on its own line to be interesting.

Regarding placement of curly braces, did you see them on their own line or at
the end? This article seems to imply that CNF had braces at the end:
[https://blogs.msdn.microsoft.com/peterwie/2008/02/04/pedanti...](https://blogs.msdn.microsoft.com/peterwie/2008/02/04/pedantic-
coder-where-do-braces-go/)

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.

~~~
int_handler
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.

You can see more examples of CNF in the now open-sourced Windows-Driver-
Frameworks: [https://github.com/Microsoft/Windows-Driver-
Frameworks](https://github.com/Microsoft/Windows-Driver-Frameworks)

~~~
trentnelson
I've recently adopted CNF for Windows-based C work and I absolutely love it.

------
StillBored
Bell believes Cutler is the only engineer with the confidence to pull off NT
as he did. “Almost anyone who would have been good enough to do NT would have
insisted on a blank sheet for the spec,” Bell said. “Dave appreciates legacy
and compatibility.”

That seems to be what is missing most with modern software development.
Everyone thinks they can do it better, and in the end repeats the same
mistakes while creating new ones.

~~~
Angostura
Hmmm, I still wonder what Windows would look like today and Microsoft had
chosen the same path as Apple: create an emulation box for old 'Classic' apps,
create a clean new system for new style apps.

~~~
jdblair
That's pretty much what they did, but as a fundamental architecture of the OS.
The "emulation box" is the win32 subsystem. Applications interact with the API
in the subsystem, which translates, for example, win32 calls to the native NT
API. They also created a POSIX subsystem and an OS/2 subsystem.

~~~
Symbol
You just jogged my memory about WoW (Windows on Windows) :)

------
bmalicoat
When I was working on Xbox One, I got all the checkin mails. Whenever I had
time, I'd look for Dave's changes and see what he did. Nearly all of them were
over my head because they were so deep in the OS. The ones I understood were
usually fixing other people's bugs or build breaks like he mentions in the
video. It was definitely a highlight to see the actual work of someone so
disciplined and dedicated to their craft.

------
closure
I happened to come across this article recently, an article which I think
demonstrates how competitive Dave was in his youth:
[http://www.lansingstatejournal.com/story/sports/2015/07/23/d...](http://www.lansingstatejournal.com/story/sports/2015/07/23/dave-
cutler-dewitt-athletic-hall-fame/30582389/)

------
phodo
Little known factoid:

When Cutler came to MS, and worked on NT, he added a cool VMS easter egg in
the name WinNT:

W --> -1 --> V

N --> -1 --> M

T --> -1 --> S

VMS is/was a great OS. I was fortunate enough to work on it on a satellite
communication system straight out of college. I recall adding the the TCP/IP
drivers and achieving connectivity across large Wide Area Networks and setting
up one of the first wireless ISDN video conference systems, in this case
between former east and west berlin and moscow. There were many similar
projects around the world and VMS was a lot of fun/stable to work with.

~~~
EvanAnderson
The Wikipedia article for Windows NT references this, but also references a
statement from Mark Lucovsky stating that the original target for NT, the i860
processor, was codenamed "N-Ten" and that the "NT" name came from the target
processor.

It would mildly be interesting to get confirmation of the real source.

------
b1gFanOfVMS
I can only imagine the hate this guys going to get here for NT...but I'm a
huge fan.

One of mt first jobs was running a VMS cluster...then went on to work with
Windows. Enjoyed it all. Dave Cutler is brilliant.

Thanks Dave!

~~~
hga
Core NT is, or at least was, prior to NT 4 putting graphics in the kernel,
very very nice. It's mostly what Microsoft did on top of it, and their general
stewardship of it that I have a problem with.

For the latter, I noticed a serious drop in quality starting with 3.51 SP2,
which to the best of my ability on Google seems to have come out 9 months
before NT 4.

~~~
cm3
Exactly. Windows 8 and 10 include substantial improvements to the
underpinnings that would be worth the switch from Windows 7 if Microsoft
didn't basically kill the UI. This stupid desire to change stuff for a new
version, as done with cars, does nobody good.

\- 3D widgets serve a purpose and make it much easier to see what's a widget
and what's not

\- Windows XP theme engine was great and it got killed in Windows 7

\- Windows XP and Windows 2000 UI was to the point and didn't waste screen
real estate like 7, 8, 10 do as well as current OS X and GNOME or KDE. First
we complained open source desktops had no designers, now we should curse the
day we wished for designers to get involved.

\- all Windows tools and subsystems got much better and featureful and there's
new filesystems and subsystems, but you cannot take the core and slap on a
different desktop environment like you can with Unixes. Back in the day you
could use a different Windows Shell, but I don't know if that's still
possible.

I have this suspicion that Cutler has a private build of Windows on his
machine which still has Classic UI, but the product managers would never allow
that to get published, or else they would be wrong to have killed it off in
the first place. This constant desire to change the UI is unbelievable and
hard to explain. Imagine if new knives would follow the same mantra. Many
things work best the way they are with no need to change, and if change is
wanted, something like Windows XP's theme engine is more than sufficient.

~~~
oldsj
Having switched to windows 10 after using OSX and Linux primarily for the past
10 years or so, I have to say its been fine for me. The UI is simple: hit the
windows key and type the name of the program you want to launch. Switch
virtual desktops with ctrl+win left/right. Snap windows to the left or right
with win+left/right. And now, its actually usable for dev with the subsystem
for linux feature.

Oh and by the way games just work, chrome just works, spotify just works,
intellij just works and all of this can be installed from the cli with
chocolatey.

~~~
cm3
Yeah, like I said, many things have been improved, but they come with as many
regressions in the UI which are mostly done to chase wrong goals (tablet
unification) or misguided design (go back to Windows 1 flat UI). In some ways
Microsoft's Core Server variant might be a better Windows for development as
was Windows Server 2003 back in the day, but I doubt it'd be fully functional
on the desktop. These are just a few things that will hold back Microsoft
compared to Linux and BSD, when you want to do more than just Visual Studio
and Steam Games.

~~~
pjmlp
Holding back in what sense?

Personally, after a decade of dual booting between Windows and GNU/Linux, I
have focused again in just Windows with GNU/Linux on VMs.

At work, I seldom see anyone using anything else other than Windows on the
desktop, except for a few Macs that are shared across the company for the
occasional iOS project.

At customer sites there is always a mixture of UNIX and Windows deployments on
their server farms.

------
taspeotis
> The small, high-powered team of former DEC engineers and one existing
> Microsoft employee (Steve Wood) began by spending six months creating a
> specification for the operating system ­­– the specification that now
> resides in the Smithsonian Institute.

I _had_ to look for this, information is available here [1] but not an
electronic copy. Some Googling turned up this [2] but I'm not sure how
authentic it is.

[1]
[http://americanhistory.si.edu/collections/search/object/nmah...](http://americanhistory.si.edu/collections/search/object/nmah_742559)

[2]
[http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R...](http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_Resource_Kit-
ACADEMIC/WindowsResearchKernel-WRK/NT_Design_Workbook/Get_Workbook/)

------
chx
Wait a minute, rozzie? You mean, Ray Ozzie is posting about Dave Cutler? Wow.

------
sriramk
I just noticed who the OP is. Kind of cool to see Ray active on HN!

~~~
bryanlarsen
One of Ray's last comments was about Dave:

[https://news.ycombinator.com/item?id=7540544](https://news.ycombinator.com/item?id=7540544)

------
twoodfin
The article mentions that the original spec for NT is in the Smithsonian, and
indeed it is so:

[http://americanhistory.si.edu/collections/search/object/nmah...](http://americanhistory.si.edu/collections/search/object/nmah_742559)

I'd pay good money for a digitized copy. I wonder if there are any legal or
Microsoft barriers to that happening someday.

------
mrbill
One of my neatest hardware acquisitions back in the day was a MIPS Magnum
R4000 workstation - running NT 4.0.

It was great, stable, and ran Windows and DOS apps in emulation (sort of like
DEC's FX!32 for NT/Alpha).

Per Microsoft: "On RISC-based computers, Windows NT provides a 486 emulator
that runs applications designed for 286, 386, or higher processors."

------
robotdad
I audited a security course at UW a few years back, and one evening Cutler
stopped by as a guest lecturer.

------
chmaynard
Sadly, it appears that Dave Cutler has not had much influence on the worldwide
community of software engineers and programmers. I assume this is because his
work is proprietary and he can't discuss it in public.

------
vox_mollis
Dave Cutler is my personal aspirational model. When I am 70, I want to still
be writing production code, rather than languishing in middle management.

Engineers who choose to "trade up" to management will always baffle me.

~~~
dursk
Would you prefer to have a manager who wasn't an engineer previously?

~~~
cm3
A manager has to have the right skills to manage a project and lead people.
This is usually not something you find in engineers, so like teachers, it's
not the expert knowledge (e.g. tech) but soft skills that count most for a
manager. Therefore, a great manager doesn't have to know to code, at all. I
haven't seen a single dev lead who got promoted from developer to manager who
actually managed to manage the team/project reasonably.

------
wsfull
Say what you will but I still prefer the VAX to Windows.

------
meddlepal
Cutler is by far my favorite engineer. Great story and amazing
accomplishments.

------
johansch
I don't really feel competent to judge all of this, but my feeling is that
that Unix crowd respects Dave for his competence... they just disagree
fundamentally in his design choices. I think this is fair - there is more than
one way to skin a cat.

