Live data from Hacker News

The engineer’s engineer: Computer industry luminaries salute Dave Cutler

news.microsoft.com

41–50 of 79 posts

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#41
post #11

Earlier quoted context omitted.

I just started reading this book, maybe half way through, it's very interesting! Some of the technical analogies are a little weak, but all the quotes and anecdotes are great.

Yes, I agree. It's also a fascinating window into what an achievement Windows NT was, and I say that as someone who does not use Windows anywhere. By mid 1993 Dave Cutler and his team released a multi-threaded, pre-emptive multi tasking pure 32 bit version of Windows that supported the Windows API and worked across three different hardware architectures (two of which were pure RISC processors). Apple, often lauded fo…

And then Microsoft screwed up NT, over Cutler's objections, by putting in crap code from Windows 95 to make it "compatible" with programs that relied on quirks of Windows 95. It took many years to clean up that mess.

(I started with Windows NT 3.51, which was a very nice system. The 16-bit emulation module was entirely optional, and I configured it off. Worked fine, as long as you bought applications certified for NT. In Windows 95, 16-bit mode was an integral part of the system, and kludges such as 16-32 bit thunking were added so that the two modes were not so distinct.)

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#42

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 n…

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.

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#43

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 n…

[deleted]

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#44
post #26

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

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#45

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 wil…

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 howev…

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

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#46
post #25

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.

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

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.

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#47
post #45

Earlier quoted context omitted.

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 howev…

> 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…

One of managers' most important jobs is to keep the devs unbothered by the outside world or misguided product managers. But this can go wrong when the manager filters stuff that would have been great to implement.

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#48

Earlier quoted context omitted.

I ran the very first beta of Windows NT and it was glorious. I had never before experienced anything like it: you could compile and run your C code in a graphical debugger, and it would catch bad pointer errors by breaking the program right were the bug was. Fix, recompile, rerun. 16 bit Windows computers would crash reboot on errors like that, leaving you with the printf errorlog to find the bug. Sun and Silicon Gra…

The only thing that (IMO) came close was OS/2. I really wish Warp had beaten Windows 95. It was astounding. The kicker was that the Windows VM in OS/2 was, in some ways, actually more stable than the native apps [1]. > Ironically, if you never ran native OS/2 applications and just ran DOS and Windows apps in a VM, the operating system was much more stable. [1]: http://arstechnica.com/business/2013/11/half-an-operatin…

OS/2 had a much nicer API (such as a message loop that did not need a Window), it was very stable, but it was also more expensive. The early versions had no GUI and hardly any applications. I tried an early version, but the only software I could find for it in my student network was a FORTRAN compiler :-). Pricing, lack of application software, and the alternative of Microsoft Office on Windows 95 killed it.

Personally I hated Windows 95. It introduced changes to Windows NT 4 that made the OS much less reliable. It took many years for the consumer market to get away from 16 bit Windows, in which both OS/2 and Windows NT were niche products.

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#49

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 n…

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.

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.

Re: The engineer’s engineer: Computer industry luminaries salute Dave Cutler

#50
post #34
post #21

Earlier quoted context omitted.

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 -…

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…

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.
Post reply on HN