I am not shy about my advocacy of the Digital Mars C++ compiler. I have been using it since it was Symantec C++ version 6.0 (and by the way, that version was not exactly wonderful). Symantec held on to it until ending the product line at version 7.5, having given more attention to Visual Cafe (which is also now a dead product - if you trace the history, it went from Symantec to WebGain and then on to Borland who killed ti in favor of JBuiler). When Symantec ended their relationship with C++, they allowed Walter Bright to have owndership of his compiler again and he has continually updated it.
So what compelling reason is there to use this compiler, as opposed to something like Microsoft Visual C++ or Borland C++Builder, or even MetroWerks CodeWarrior? For one, there is the matter of cost. Walter does not charge for the command line version of the compiler, and this makes a compelling case for at least trying it. You can do quite a lot with the command line compiler, although you will not have the full complement of tools and libraries.
For a small investment, you can buy the CD and add in the IDDE and all of the nifty stuff that you might want to do more robust development. One thing that comes with the CD is an older version of the MFC, which is a good option for doing OO-based Win32 development. Some would argue that MFC is dead, but I would say that it is not quite gone yet. If it is dead, why does Microsoft still update it for Visual Studio .NET?
So what about OpenWatcom? It has a full IDE and all the tools and toys, including the libraries and the debuger and and and.... And it's very behind on supporting the C++ standard. And it seems to be unstable, from the times I have tried to use it - I have a simple application that, when I try to compile using OpenWatcom, the compiler generates a protection fault and I get a pretty register dump. And the IDE is, frankly, clumsy.
Walter has expended a good deal of time and energy on supporting the C++ standard. It is quite probable that DMC++ is the most compliant compiler on the market running under Windows right now. If language compliance is important to you, then this compiler is likely your very best choice.
The generated binaries are varied when it comes to smallest vs. largest and fastest vs. slowest. As is expected, this compiler does some things exceptionally well, in particularly memory allocation and management, while it slows down on other areas such as floating point math operations. It is a mixed bag. In general, I have found my code generated with DMC++ to be slightly better than average.
The compiler does NOT support .NET. I personally do not care to code to .NET's standard, so this does not bother me.
There is a good support community for DMC++ as well. There has been grassroots support as far back as the Symantec days, including efforts that have brought BOOST, the STL, wxWidgets, and the latest Win32 SDK to the table. If you get stuck, there is a well-tended support forum on the Digital Mars website (you could just use a news reader too and access the forums that way).
Digital Mars C++ is an excellent compiler, and has been around for a very long time, dating back prior to the Symantec days. It is fast, stable, compliant, and an absolute bargain. Visit the
Digital Mars website to score a copy for yourself. If you like the command line version, consider grabbing a CD too.