Application developers’ heads must spin as they decide which platforms to target. Should they write for DOS, where the vast majority of users remain? Should they write for Windows, where the growth seems to be? How about OS/2, with its wealth of slick APIs and multithreading capabilities? And then there’s the Macintosh … and Windows NT … and Unix …
As these decisions grow more complicated, vendors of development tools are simplifying choices by adding cross-platform support to their utilities.
C++ is where the action is in development tools, and 1992 saw a number of important product releases, especially with respect to cross-platform support.
The market leader is still Borland International Inc., which introduced a Windows integrated development environment (IDE) as part of C++ version 3.1 in April.
Borland C++ can be used to develop both DOS and Windows 3.x programs. There were several excellent new Windows-based tools in 3.1, but Turbo Vision and ObjectWindows, Borland’s application frameworks for DOS and Windows, respectively, were not upgraded.
The best cross-platform news from Borland had to do with unreleased products: The company has promised versions of its C++ product for OS/2 and Windows NT, with accompanying releases of ObjectWindows. All the other major C++ vendors also introduced packages with facilities for cross-platform development.
Microsoft Corp., for example, in April released a major version of a C++ compiler, the company’s first. Microsoft C/C++ 7.0 was also put together mostly with Windows in mind–the Microsoft Foundation Classes, the application framework, is designed specifically for Windows. C/C++ 7.0’s development tools are generally DOS-hosted, although Microsoft has promised a Windows-hosted version of the Programmer’s Workbench, the company’s IDE.
Although a Windows-everywhere strategy suits Microsoft C/C++ well for porting to NT, it does little for developers of other environments. OS/2 development, which had its genesis in Microsoft C, is conspicuously absent in version 7.0. After much griping from customers, Microsoft released a limited-function OS/2 2.0-hosted development system for DOS and Windows, but it is missing crucial tools such as the CodeView debugger.
The most important releases in cross-platform languages this year were on the Smalltalk and Pascal fronts, and in Microsoft’s Visual Basic products.
Smalltalk is the granddaddy of object-oriented development, and Digitalk Inc.’s products are leaders in this area.
Other versions of Digitalk’s Smalltalk/V are available for DOS and Windows, and Smalltalk is available from other vendors for a variety of Unix platforms and for the Macintosh.
Borland’s Pascal products support DOS, extended DOS and Windows. The newest release, 7.0 (released last month), incorporates a fascinating innovation: binary-compatible dynamic link libraries for Windows and extended DOS. No other compiler, including Borland’s own C++ products, has accomplished this.
Microsoft’s Visual Basic became available in September for both DOS and Windows, but portability between them is not quite as seamless as it can be with a conventional high-level language. A conversion tool, which flags portions of the code that must be modified, is used to port between the two platforms.
But even Visual Basic programs frequently use facilities that are not portable. For instance, Visual Basic is frequently used as an easy front-end to Windows facilities. The new version 2.0 of Visual Basic for Windows contains controls for using Windows for Workgroups’ messaging facilities, for instance. PC Week Labs found during testing that Visual Basic is an excellent facility for stand-alone and network Dynamic Data Exchange. None of this is portable to DOS. Likewise, the graphics facilities of both operating systems are not portable.
The great vapor wars
In addition to announcements, there have also been a number of significant leaks related to cross-platform development. Microsoft’s Alar and Symantec Corp. and Apple Computer Inc.’s Bedrock are the truly significant non-products in this field. Developers would be well-advised to pay them no consideration when making strategic decisions, because their very existence is debatable.
When it is eventually deployed, Bedrock is supposed to be the ultimate cross-platform application framework. Original claims that it will make the best applications on whatever platform it is implemented have been modified, as critics pointed out the complexity of the task.
Alar is a bizarre combination of cross-compiling and a software-translation layer. The idea is for Windows developers to run a Motorola 680X0 cross-compiler on their application so it will run on a Macintosh with a software translation layer that modifies the Windows calls into Macintosh calls.