Discussion about this post

User's avatar
Kirk Glerum's avatar

The Usenet postings at the bottom of the BillG memo are terrific. I loved reading those at the time, the industry speculation about DOS/OS2/Windows/NT. So many keystrokes, so much bloviating and prediction and posturing.

Gary Lang's avatar

(adapted from my own memoir writing drafts folder - seemed to fit your post)

I had been brought back to Autodesk in the Fall of 1992 to lead development of a completely new architecture for AutoCAD that would allow it to play well in a world where all desktop computing was going to be based on GUI development. I was chosen for this because of having developed Windows apps since 1986, having 3 years of NeXT development experience, and having become the leader for AutoCAD development on the Mac. Though we historically did all core AutoCAD development on Sun workstations and shipped on DOS and Windows using 1–2-man porting teams, these products, while all identical, had user experiences and architectural shortcomings that prevented them from running well with expected user interaction models. This was fine in a world where AutoCAD on DOS was a bespoke environment for users on a platform that was standards-free with respect to interaction models. But the GUI was clearly where all our platforms were going. AutoCAD was built around its famous command line which relied on a keyboard-polling architecture which was not suitable for event-driven environments. This did not allow for newly expected idioms such as modeless dialog boxes, floating palettes, dynamic tear-off menus that reflected program state, and so on.

I had successfully convinced the company that Windows would be the dominant platform and I had successfully and painfully convinced the founders that yes, one could develop the very-large AutoCAD and associated add-ons using the newly released NT. We would eliminate portable C idioms we had used for over a decade and move to portable C++ with Win32 APIs used for the basic architecture. We would rely on portability framework for providing Win32 APIs on non-Windows platforms (Bristol Wind/U and Mainsoft - yeah, those guys - for Unix and Mewel for DOS) and we considered and prototyped with all the C++ or Objective-C Windows application frameworks that would allow us to develop in a style akin to NeXTStep's AppKit.

We tried them all - XVT, C++Views, Objective-C Views, a few more I can't remember, and Zinc from some friendly guys in Utah that we were able to get working in DOS using Mewel, a Win32 API implementation for DOS. After a lot of prototyping and examination by two dozen engineers, we chose Zinc. We paid a corporate license for it of $1-2M and began work. Zinc shipped us a pallet of boxes of the software, and we distributed copies to 100 engineers. We were building AutoCAD on MSC for the first time ever (was a MetaWare High C app for years on PCs, like dBase, Paradox, and other large DOS programs), and all was going well with AutoCAD on Zinc design and MSC conversion for the code base.

Then Visual C++ came out with MFC 2.0. I should say, MFC 1.0 was looked at and was a non-starter, for reasons you would know. There were two engineers who had worked on the NeXT platform in the entire company - myself and a guy I brought with me from the company where we had done this. We opened the box and pored over the manuals, installed it, and got to coding over a delirious 2 days. We were shocked, to say the least.

The framework, the wizards and everything else reminded us of Interface Builder/Project Builder systems, and the rest of the environment was particularly good. Our experience and that of many other people I knew in the valley (including my many NeXT friends) told us that using frameworks like AppKit had a 10x effect on productivity and program understanding for newly onboarded people. MFC 2.0 seemed like it would have the same effect.

Since our portability strategy for other operating systems was based on a Win32 layer, I called Bristol and they agreed that they would have Wind/U working with MFC ASAP. Our DOS guy thought he could get it to work.

Now I had to convince our VP of Engineering John Lynch that despite all the effort that had gone into engineering a solution on Win32 and Zinc under my leadership, despite spending millions on Zinc software and months of training that **this** was the platform we needed to use instead. John was livid, saying that we'd look stupid and indecisive, but I pointed out that we were not told about MFC 2.0 until that week and had jumped on it and analyzed it inside and out. None of that mattered anyway I said, moving exclusively to MFC was the right thing to do to create a Windows-centric code base for all our products and everybody would have higher job satisfaction working with MFC (better on your resume, etc.). He said fine, but that I needed to present this about-face to our CEO myself.

In the meeting with Carol Bartz, I walked through the details of the decision process, and was reminded by her questions that she had a computer science background and had an immediate understanding of most of the issues. She can be very intimidating (ask Steve who won in the Yahoo deal). Finally, she said, "it sounds well thought out; it's just too bad that NeXT didn't win, because all of these advantages would be available to us on a 4-year-old platform".

My response was, "MFC provides almost all of the same advantages but with an important advantage - it runs on a platform people actually buy".

Carol said, "That’s it. Go do it". We did.

Today all of Autodesk's core revenue-producing software was developed using MFC, on Windows. That decision simplified our product development and enabled us to go from $200M to $1.8B while I was there. I should thank you for my career.

My tagline when explaining my decision and why I moved the company in this direction became "MFC is NeXTSTEP on a platform people actually buy". You couldn't use it, but I could.

I was right for 15 years, anyway.

9 more comments...

Ready for more?