[ Go to July 1997 Table of Contents ]|
-- by Martin Heller
Microsoft's new version of Visual C++ turns the black art of building ActiveX controls and COM objects into a dramatically easier process. New wizards, a new template library, new language extensions and enhanced tools have also made the resulting controls considerably smaller. Though Visual C++ lacks the rapid application development (RAD) environment of Borland C++ Builder, its strong ActiveX support makes it an impressive package. Microsoft offers Visual C++ 5.0 in a Professional Edition, which we looked at, and an Enterprise Edition, aimed at programming teams building multitier client/server applications. It bundles a database, a query builder, a version-control system and a transaction server with the IDE.
The new Developer Studio features macro recording and automation employing VBScript, an open object model and extensions using ActiveX add-ins. Workspaces can contain multiple projects, and projects can contain subprojects. Studio's Class View, Wizard Bar and editor syntax coloring have all been significantly enhanced. InfoViewer can now double as a Web browser, enabling easy preview of ActiveX components in Web pages.
The core C++ compiler has new options and improved optimization. Microsoft claims a 5 to 10 percent size reduction with the /O1 option and significant gains from synchronous exception handling. The company also cites anecdotal evidence of 20 to 25 percent size reductions in specific large applications. Speed improvements will depend heavily on what your application does and what processor it uses. We found, experimentally, remarkable size reductions for COM objects-our Pinger object, for instance, dropped from 45KB to 24KB. We built the object using the ActiveX Template Library (ATL), and much of the gain can be attributed to improvements in ATL itself.
The language-conformance story in this release is mixed. Version 5.0 finally brings Visual C++ into conformance with the current draft ANSI C++ specification. It also has a fully conformant implementation of the Standard C++ Library. However, it introduces several new Microsoft-specific extensions to C++. Extensions are not unfavorable, though they tempt developers to sacrifice portability for convenience.
So, the question remains: Borland C++ Builder or Microsoft Visual C++ 5.0? We're forced to demur, gently. It depends. If you're building a Windows application designed to be used, C++ Builder's drag-and-drop paradigm offers some compelling advantages in terms of the ease and speed of development. But if you're building ActiveX controls or COM objects, Visual C++ offers compelling advantages not only in terms of the ease and speed of development but also in terms of the size of the final control. Therefore, Microsoft Visual C++ 5.0 will join Borland C++ Builder on our WinList.