Questions and answers. (programming tools) (Programming Power) (Column)
by Tom Campbell
This column is neither fish nor fowl. It's not the usual how-to column I normally present, and it's not exactly a review, either. Instead, it answers the questions I get asked more often than any other-namely, what programming tools I use and why.
Visual Basic 3.0. If you haven't programmed in BASIC for a few years and you have a Windows programming project coming up, you can probably do it in Visual Basic. Forget what the experts have been telling you about how underpowered and slow BASIC is. Visual Basic is sensational, the biggest thing to hit the programming world since C. With version 3.0, Visual Basic moved into the big leagues by offering built-in database support and the generally excellent Jet database engine, the same used by Microsoft Access. Visual Basic's greatest strength lies in its custom controls, which can take the form of anything from full-fledged image manipulation programs to industrial-strength word processors to communications modules to Windows 4-style bubble help controls--the possibilities are quite literally endless. Visual Basic has some short-comings that C and C++ don't have (custom controls must be written in C, C++, or Turbo Pascal and can't even be written in Visual Basic), but there's always a custom control to fit your needs. The professional edition costs a couple of hundred more than the standard edition, but it is essential for most database work, comes with some killer custom controls that the standard edition doesn't have, and has the help compiler you need to create true Windows online help. It's by far the easiest "real" Windows language to learn, and it's also the most fun. My biggest concerns about Visual Basic were speed and language limitations, but I've done a number of professional applications in Visual Basic, and neither of those issues has ever even come up.
Visual C++. In my day job I'm a systems programmer, doing things that generally require the maximum speed and flexibility. Because the programs I write are very close to the hardware, I use C and C++, and Visual C++ is the only compiler I've used for a year now. It's very clear to me that the future of Windows systems programming is C++ and that MFC will be the class library of choice. Microsoft has licensed it to other vendors, the source to MFC is included with the professional edition of Visual C++, and MFC is the best overall class library I've ever seen. More important, MFC is effectively the new Windows API, and most articles, third-party books, and examples will employ MFC. As Windows moves to other machines, the C API will change somewhat, but MFC will be much easier to maintain. Visual C++ 1.5 adds database and OLE support, the latter being unbelievably easy to add to your programs.
The SemWare Editor. If I could graft the Borland editor into the Visual C++ environment, I'd be in seventh heaven, but with The SemWare Editor for DOS, at least I'm in sixth heaven. It's very small, quite inexpensive, and totally reconfigurable; it edits files of any size; and it has a supercon-venient temporary macro facility that I use several times a day. You can contact Sem-Ware at (404) 641-9002.
Components. Spread/VBX from FarPoint Technologies (804-378-0432) is in many ways more advanced than the spreadsheet core of Excel 4.0; it's very well designed and implemented. It has formulas (even user-defined formulas), cool little calendars you can use to enter dates, different fonts for each cell, in-cell editing, full Clipboard support, and even support for images in cells. Tab/VBX gives you those cool tabs that OS/2 and the upcoming Windows 4 will have. Manuals for both products are a bit skimpy and would be well served by more examples, but the software is bug-free and very, very slick. FarPoint has other products, but I haven't looked them over yet.
MicroHelp (800-922-3383) has some very fine Visual Basic custom controls in its 3-D Gizmos toolkit, almost all of which work with Visual C++, too. HighEdit Pro lets you bring full word-processing capabilities into your apps, conquering the 32K, single-font limitations notorious to Visual Basic hackers. MicroHelp's custom controls always work great, but the documentation is of ony medium quality, sorely lacking in tutorial matter and real-world sample programs. MicroHelp also has an extensive communications library, a high-performance library of about 700 general-purpose routines, and other products.
Sheridan's VBAssist, which I covered in the April column, is worth its weight in gold when I'm developing database applications in Visual Basic. You can get by without it if you're not creating database apps professionally, but if you are, it's a wonder worker, attaching itself to the Visual Basic environment and giving you a feature set so well integrated into Visual Basic that you'll very quickly begin to wonder how developers can use Visual Basic without it. You can contact Sheridan at (516) 753-0985.