…ut have it generate ‘C++’ code, whatever the hell that is”. As a marketing necessity, it delivered: Borland, Symantec, Watcom, et al, didn’t completely displace Microsoft as the definition of what a development platform looked like. Even with the company’s stranglehold on the operating system and thus the APIs that such compilers needed to talk to, that was an open question for a couple of years.
Right, indeed. What’s worse is that, Borland in particular, had done an exceptional job in creating C++ Builder off the back of Delphi. Indeed, OWL was leagues ahead of MFC in its clarity. You couldn’t even class MFC as following SOLID principles now.
What folk have to be careful of, is confusing marketing success with technical meritocracy. MFC couldn’t have been more awful and what happened with .NET was Microsoft “quietly” [for mainstream customers] poached Anders Heijlsberg, author of most of Borland’s key, successful languages (Turbo Pascal, Borland C++, Delphi…) in what many regard as a tacit admission of failure, to re-engineer languages and the object model from the ground up. MFC was arguably too far gone to be saved and Microsoft paid the price for that, both in what they lost (development time, energy, money…) and what they paid for Heijlsberg et al.
I was an obsessive Delphi enthusiast at the time. I, of course, migrated over to C# 12 years ago and it took until .NET 2.0 before Microsoft got it to where Delphi was, close to a decade earlier, even though Anders Heijlsberg stated in C# and .NET he repaired what he got wrong with Delphi. Honestly, MFC was such a mess it felt little different from hammering away at Win32 API in C. Compared to that, coupled with the comprehensive nature of the language and object library, there was little to find in Delphi that was wrong at all.