On the subject of compilers, I like VC++6 and am looking forward to the switch to VC7 for its improved compiler support. Having said that, I don't think one should write code that isn't portable across compilers. Writing to the Win32 API and not using MFC would be a way to do that in the near-term as far as GUI needs go. In the longer term, the code should really be split into a platform agnostic "engine" and a platform-specific GUI chunk. Then you can use the full GUI-ness of the platform to your advantage, which could mean MFC/WTL/ATL on Win32 or Mac Toolbox on the Macintosh, Motif on X11, etc. -- Ask me about my upcoming book on Direct3D from Addison-Wesley! Direct3D Book <http://www.xmission.com/~legalize/book/> izfree: Open source tools for Windows Installer <http://izfree.sourceforge.net>