The Cole Papers

It's basic: A demonstration of how easy it is to build the user interface in Visual Basic, this screen shows a File Open dialog. Note that the just-drawn directory and drive dialogs are already working.

Suppliers debate which tools to use when making software

In the beginning, when geeks were real geeks who could code for 427 hours at a stretch -- fueled only by cola and day-old pizza -- all programs were written in assembly language.

But that was hard and slow, and after flirting with things like Fortran and RPG, C soon became the programming language of choice.

Then, one day, someone asked one of those simple but bright questions:

"Why do I have to spend 10 minutes drawing a box pixel by pixel? Why can't I just do it with a mouse, which even the little Windows Paint applet can manage?"

Before you lose interest, dreading a piece on the development of programming languages -- which would be as much fun to read as watching grass grow, or, even worse, golf -- let's shift gears.

Let's talk about your fleet of delivery trucks.

Now, you may not know how to bore out a piston, but you surely want to know if you're getting a Cummins diesel or a used Yugo push-rod four-banger under the shiny hood of that new truck you're buying.

The same should hold true when you buy software. Just what is running in there?

Here's the debate: C++ has become the de facto standard for commercial software. It produces fast, tight code through a compiler.

It also takes forever to produce, and has never lived up to its promise of expediting development by providing pieces of software to be used and reused.

On the other hand, Rapid Application Development tools such as Microsoft's Visual Basic can produce software almost instantly. But many RAD tools have developed a reputation for slow execution because they aren't compiled languages.

These characteristics may be interesting in and of themselves, but when you're wandering the floor at NEXPO and listening to suppliers tout their code and knock their competitors based on the development tools used, how do you know what to believe?

One point to remember: Programmers tend to be even more monogamous, more devoted to their compilers -- and more zealous about that devotion -- than even Mac and Windows bigots are about their chosen machines.

Another point: Most of what you think of as the software is actually just an interface.

In good client-server design, the important part is the database; the stuff that runs on the user's computer -- the client -- is just an interface to that database.

Think of those delivery trucks again: You step on the accelerator, but the engine makes the truck go.

And just as the engine is suited to the size and uses of the truck, programming tools are designed to serve various needs.

"I don't see the issue as RAD tools versus C++ objects at all. They are two different things, like shovels and hoes. You use each one, depending on the job you are doing," said Don Oldham, chief executive of Digital Technology International of Orem, Utah.

"A problem I have observed is that there is a breed of 'real' programmers who disdain the use of RAD tools," Oldham said. "They would probably prefer to write every program in the world in assembler.

"They would also dig holes with hoes."

Oldham isn't alone. C.E. Steuart Dewar, founder of Dewar Information Systems Corp., now a part of Sysdeco Media Group, and Scott Brinker of Galacticomm of Fort Lauderdale, Fla., both lead companies that make extensive use of C++ and RAD tools such as Visual Basic.

"In my opinion, Visual Basic 4 is more than fast enough for the vast majority of applications that people write -- and there are great advantages in terms of development speed," Dewar said. "There is a great joke that circulates among Visual Basic programmers:

"People are always concerned about the speed of programs coded in Visual Basic, but Visual Basic programs are often much faster than C++ ... sometimes many months faster.

"The point is that there are very few programs that have to be coded in C in order to get top execution speed," said Dewar.

Slow software performance is more often the fault of bad program design than the speed of the language, he contended: "A rework on the algorithm is often much more effective than a brute force optimization of the original algorithm."

With Galacticomm's Worldgroup, Brinker said, "we've gone for the 'best of both worlds' approach." The Worldgroup client-server telecommunications software has parts built in C++ for speed and parts built in Visual Basic for flexibility.

"We use C for our low-level communications, database and client/server engines, and all of the server-side applications code," Brinker said. "We use Visual Basic for the interface and high-level logic of our client applications."

The result, he said, is "an excellent combination of good development cycles" -- less than six months for most major product releases -- and "real-world performance" because of the underlying C-based engine code.

The developer wins, and so does the customer.

"It also allows our customers to use Visual Basic -- which is a much easier environment for people to pick up -- to have more freedom and flexibility in tweaking our software to their purposes, as well as for writing their own applications that run on the Worldgroup platform," Brinker said.

An upcoming release will support the Delphi development tool from Borland for client-side applications creation, he noted.

Oldham says his company also wants the best of both worlds.

"At DT we heavily use RAD tools such as Facespan and 4D and AppleScript for tasks that are suitable for them, such as user interface building, database directories, work-flow control and reporting functions," said Oldham. "We also use C heavily for things like composition engines, image manipulation, and PostScript generation. We write extensions to our RAD tools here in C."

Thus, a division of labor that Dewar calls "reasonable": Use C++ on the server-end of products, where raw processing speed is more of an issue, and RAD products for the client end, where the ability to change or update the interface is a strong consideration.

Dewar spoke of a next step in software design: three-tier client-server architectures, in which software is separated into the client, the database and what are called the rules -- the ways to search the database. Current structures put the last two together on a single server.

"Microsoft is supposedly including specific support for three-tier client-server programs in Visual Basic 5.0, which is expected to be released yet this year," Dewar said.

Dewar sees another step to be taken by Microsoft.

"C remains more of a cross-platform language, having been implemented on PC, Mac or UNIX. Visual Basic only exists on Windows, although with Microsoft wanting to push VB as a scripting language for the Internet, that will force them to finally port it over to the Mac and other platforms."

But again, thanks to the division of labor each programming approach allows, "servers, which are often UNIX-based, would have to be coded in C anyway at this point," he said.

Which products to use?
As with any issue, the debate in the developer community over the relative merits of RAD tools such as Visual Basic and C++ has been clouded by developments in both areas.

RAD tools are gaining speed, and even compilers. Borland's Delphi tool kit ships with a compiler, and the next revision of Visual Basic is supposed to have one.

In the other camp, Microsoft, IBM and others have been working to bring RAD-style tools and interfaces to C++ and Smalltalk, another object-oriented programming language.

But sheer program speed is often not the determining factor when it comes to newspaper software, which is often acting as an interface to a database. In this situation the integration with the database is often more of a speed factor than the software.

Take, for example, software built in Visual Basic as opposed to programs built in Oracle Objects and PowerBuilder, which are RAD tools designed primarily as front-ends for Oracle and Sybase databases.

"Visual Basic is much, much faster than, say, Oracle Objects (by about an order of magnitude) when looking at common things like string manipulation," Dewar said. "Visual Basic is about two to three times faster than PowerBuilder -- although I haven't benchmarked their new compiled version."

Dewar noted that Oracle Objects and PowerBuilder handle database operations efficiently, opening up a potential bottleneck in any program.

"Given the success of a product like PowerBuilder, which is much slower than Visual Basic," he said, "clearly Visual Basic performance issues are not that much of an issue."

Thanks to RAD tools, developers can prototype a design quickly and easily, allowing them to look at software and make revisions without setting an entire project back months.

Dewar finds Visual Basic is an excellent prototyping tool "because it has such strong handling for screen design." While C programs now have screen designers, "none of them are integrated as elegantly as Visual Basic is," he said.

That ability of RAD tools to let programmers get things done in a hurry is a big advantage for purchasers, said Oldham.

"At DT, we are having great success in empowering many of our users with our Digital Tools Toolkit (a set of RAD tools we have developed around our databases and AppleScript) to be able to customize and automate many system features for themselves."

Oldham cited Matt Anderegg of the Daily Sentinel in Grand Junction, Colo., who used DT's tools "to automate building sports box scores for the NBA and NFL in his newspaper's format into a simple push-button process."

At the Los Angeles Times, Oldham said, Vin Capone used the DT tool kit to design "a special interface into our Image Database just for his newspaper's librarians."

What should you buy?
Given this choice, who would you rather have shooting for your paper:

  • Ansel Adams, using one of those drugstore disposable cameras?

  • The next person to walk into your lobby toting $20,000 worth of Hasselblads?

    Adams, obviously. We take for granted that the photographer is more important than the equipment when it comes to the quality of the photographs.

    The same is true of software development. A great programmer can do more with the free copy of QBasic that comes with DOS than your average knucklehead can accomplish with a complete set of IBM Visual Age tools (even assuming that the knucklehead can get someone else to install it).

    The most important element of any client-server system is the database design and implementation. The database is the foundation of the system; if it's a mess, the rest of the system will be hamstrung no matter what you do.

    This leads Dewar to point out that focusing on a language's execution speed can be a mistake.

    "C is a language that leaves so many pitfalls for the unsuspecting programmer that it is hard to estimate the cost of bugs in C that would not have occurred in other languages," he said.

    "Take just the problem of bad pointers in C -- I would bet that U.S. industry has wasted over $100 billion because of bugs in C programs involving that specific error."

    Brinker also touted the benefits of using both types of tools.

    "C and C++ are phenomenal low-level languages. They have effectively replaced assembly as the systems-level development environment of choice. This move away from assembly to C/C++ has been primarily to achieve portability, as well as shorten development cycles with greater reusability and modularity of code.

    "VB is definitely a high-level language. While it's not incredibly efficient in its program execution, it does enable a much wider group of programming talent to rapidly develop and deploy Windows applications."

    So, in the end, it may not be as simple as picking the Cummins diesel or the used Yugo push-rod four.

    But understanding what's under the hood always helps you make an intelligent purchasing decision.

    -- Christopher J. Feola

    Dewar Information Systems Corp.,
    (708) 241-3500, e-mail: dewar@mhs.compuserve.com;
    Digital Technology International,
    (801) 226-2984, e-mail: d1067@applelink.apple.com;
    Galacticomm Inc.,
    (954) 583-5990; (800) 328-1128, e-mail: sales@gcomm.com.

    From THE COLE PAPERS, February 1996, Copyright © 1996, All Rights Reserved.

  • Top | ColeGroup.com | Consulting | Cole Papers | NewsInc. | Cole's Store | Miscellanea | Search
    Copyright © 1990-2012, The Cole Group. All Rights Reserved. Contact us.
    Modified date: 02/ 5/1996, 11:24:20 AM.
    URL: http://www.colepapers.net/TCP.archive/Cole_Papers_96/TCP_96_02/Tools.HTML