For C++ developers there is one package that outperforms all others - C++ Builder. And this latest version has plenty of new features to keep users happy.
These are interesting times for Borland watchers. First, the company announces that Interbase, its server database engine, will be open source and freely deployable. Next it says that it is focused on Linux, a far cry both from the Windows development tools that generate most of its income and the high-end application server product with which Inprise was going to tap into the enterprise market. Then the company is taken over by Corel, an unlikely home for products such as Visibroker, Borland's high-end Corba-compliant object request broker. Finally, it gives away a couple of top-notch developer tools, JBuilder Foundation and the C++ Compiler 5.5. The same compiler used in C++ Builder 5 is available free at www.borland.com.
The reason for these quick-fire changes of direction is that Borland has come to regard the Windows market as a dead end, because Microsoft is able to be a single supplier for everything from tools to applications.
The irony is that Windows remains Borland's biggest market. In addition, giving away Borland C++ merely proves that in the days of GNU C++ the commercial value of a naked C++ compiler is small. What counts is the class library and visual development tools, which brings us to C++ Builder.
C++ Builder combines the Pascal Visual Component Library and visual IDE as found in Delphi with the aforementioned C++ compiler. The release cycle is such that Delphi gets major enhancements first, with C++ Builder following and adding a few extras of its own. That means most of the new features in C++ Builder 5 can already be found in Delphi 5, although this counts for little if you are a C++ developer. The Pascal is more or less invisible, unless you need to delve into the library source code.
Fully featured
There is a host of new features in C++ Builder. Top of the list is support for ADO, Microsoft's current data access standard. ADO is important because it is used as the data access application program interface (API) for Active Server Pages (ASP), Microsoft's popular extension to Internet Information Server. Another advantage is that some native ADO drivers, such as that for Microsoft Access, have more features and perform better than ODBC or DAO equivalents. ADO does not require the Borland Database Engine, and nor does Interbase Express, a set of components that give direct access to the Interbase API.
Web developers get a new set of multi-tier database development services (Midas) that use XML data packets and can easily support browser clients. The snag with Midas is that it requires expensive runtime licences. There is also a new control for embedding Internet Explorer into an application, enhancements to the ISAPI/NSAPI web server application components, and a useful wizard that builds skeleton objects for ASP applications.
New tools for Com+, the Windows 2000 name for Microsoft Transaction Server, also make an appearance. The advantage of Com+ is that it provides intelligent management for components running on a server, including transaction support, so that resource use is reduced and applications scale more effectively. It is also effective in ASP applications. The transactional object wizard creates objects that can be used with either Com+ or MTS. Since the migration to Windows 2000 on the server will be slow and careful, this is a vital feature. In addition, a handy IsComPlusPlatform variable lets you detect whether a component is running under MTS or Com+.
The C++ Builder IDE now saves project options as XML, which means you can easily edit them as text. The real advantage is the potential for third-party access to the file. The layout of the IDE can be saved, so you can have several different layouts that you load as required. New to-do lists help keep track of outstanding tasks, a practical and useful feature. Compilation is slower in C++ Builder than in Delphi, but a new background compilation makes this less of an issue than it was, and the incremental compiler is smart.
For debugging, Codeguard makes a welcome return. This utility checks for memory errors, such as uninitialised pointers at runtime. It was first shipped with Borland C++, but until now was not available in C++ Builder. Codeguard is not as sophisticated as specialist tools from Rational and Compuware Numega, but as a bundled and well-integrated extra it is invaluable.
Windows 2000 client application
Unlike Delphi 5, C++ Builder 5 has emerged after the release build of Windows 2000. To prove it, there is a wizard for a Windows 2000 client application. This is stunningly similar to the old Windows 95 logo application wizard, with some small differences, such as a new default to saving files to My Documents, which the Window 95 version should have done anyway. There is a serious point here, which is that C++ Builder does not have a wizard for building applications suitable for Windows 2000 certification, no doubt because the requirements are too stringent.
Borland is also shipping a disgracefully old Windows programmers' reference. The reason seems to be that the company is sticking to the old winhelp online format, whereas Microsoft's newer documentation is in HTML help. If you want documentation for a function such as EncryptFile, new in Windows 2000, the only option is to obtain the MSDN library CD from Microsoft. This kind of niggle persuades developers looking for a single development suite to choose Visual Studio rather than a Borland product. On the other hand, Borland has worked hard to keep pace with Com, which is the most significant aspect of enhancements to Windows itself.
Enterprise users get a range of goodies including a new source management system called Teamsource. This uses a parallel model of source control, which means that checked-out files are not locked. More than one developer can work on the same file simultaneously, and at check-in time differences are reconciled. Teamsource requires a separate physical version controller, which can be Merant's PVCS or the supplied ZLib, a simple zip-like archiver. Sadly, there is no support for the popular Visual SourceSafe. The Corba features are updated to work with Visibroker 3.32. There is also a highly impressive set of translation tools, the Integrated Translation Suite, which does a lot to smooth your path if you want to use international resources in an application.
Despite a few hassles, C++ Builder has a lot to commend it, even when up against its arch-rival Visual C++. The Visual Class Library is a higher-level wrapper than Microsoft's Foundation Classes (MFC), which means programming is quicker and safer. Its other big plus over MFC is the support for drag-and-drop visual development. The beauty of the VCL is that it does not compromise what you can do, since there is nothing to stop you creating your own VCL extension components, or coding directly to the Windows API, or ever using MFC if you have to.
C++ Builder has a compiler option specifically for MFC compatibility. C++ developers who dislike Pascal may find themselves having to browse Pascal source from time to time, but in practise this has not proved much of a problem. Finally, the Borland C++ compiler is one of the best when it comes to standards compliance, whereas Microsoft is primarily focused on Windows development. If you want to work with the Standard Template Library, C++ Builder is a better choice than Visual C++.
There are three versions of C++ Builder. The Standard edition has no database features or web components. For most users, these limitations are too great to make it usable. Professional has old-style database support through the Borland Database Engine (BDE), and multi-tier Com support, but no SQL Links drivers for client-server data access, and no ADO components either, although these are available as add-ons. Buy the Enterprise and you get all those plus the XML-based Midas tools, multi-tier Corba support, Teamsource and the Translation Suite. The snag with the Enterprise edition is not only the price, but that you need run-time licences to use many of its features. Whatever the respective merits of Com and Corba, Com is a substantially cheaper solution.
Borland C++ Builder 5.0 Standard costs £81.01, Professional costs £586.33, Professional competitive upgrade costs £292.58, and the Enterprise edition costs £1,996.33.
Contact Borland/Inprise (Corel) 0800 454 065