Tool Assessment

The adage "the right tool for the right job" is even more important when selecting a tool set for a software-based product or application. Our broad experience keeps FutureWare in close contact with the various tool offerings, their strengths and limitations, the subtle nuances, and the direction in which they're evolving.

Today, all viable tool sets are "visual" in the sense that an Integrated Development Environment of some kind is incorporated. Of course, there are some exceptions, like using C (or even, occasionally, Assembler) for a small hand-held product or information appliance.

We'll admit that we prefer to use Delphi for most projects, not only for its extraordinarily large scope, but even more importantly because, simply, things can be done faster, not to mention at less cost, than the alternatives.

Comparative Matrix
Based on our experience, and what we've seen of others' efforts and results, we've developed a matrix that we believe is a reasonably accurate measure of the relative merits of the common tool sets, below.

Software Development Tools Relative Assessment Matrix

Category

VC++

Delphi

Java

VFoxPro

VBasic

Business Object Sharing

Difficult

Easy

Unknown

Moderate

Difficult

Business Rules Isolation

Difficult

Easy

Unknown

Moderate

Difficult

Complexity

High

Medium

High

Medium

Low

Database Integration

Difficult

Easy

Limited, requires proprietary interfaces

Easy

Easy

Development Time

High

Low to moderate

High

Moderate

Low

Framework Integration

Very difficult

Easy

No

Easy

Difficult

Front-End GUI

Very difficult

Easy

Moderate

Easy

Easy

Maintainability

Very difficult

Easy

Unknown

Easy

Varies

Maturity

Late 1970s

Mid 1990s, based on Pascal from 1970s

Mid 1990s, based on tokenized execution and virtual machine architecture from mid 1960's

Mid 1980s

Late 1980s, based on earlier BASIC from late 1960s

n-tier Migration

Very difficult

Easy

Unknown

Moderate

Difficult

Object Technology/OOP

Yes, true OOP

Yes, true OOP

Yes, similar to C++

Yes, true OOP

No, object based, no inheritance or delegation

Published Standards

Yes

Yes

Proprietary; all derived IP claimed by Sun

Yes

Yes

Required Skill Level

High

Low to moderate

High

Low to moderate

Low

Resource Requirements

Small

Low to moderate

Low

Moderate to high

Moderate to high

Speed

High, single optimized executable

High, single optimized executable

Slow; interpreted pCode

Medium to high

Slow to medium

Team Development

Varies

Yes

Varies

Yes

Yes

Third-Party Components

Very few

Largest number of components and suppliers

Very few

Some

Many

Typical Uses

Low-level drivers; access methods; system services

GUI; database; tools and utilities; CGI; SSI; distributed processing; n-tier

Web applets; specialized embedded info appliances; distributed processing. Similar to LonWorks

GUI; database; tools and utilities

General Corporate in-house development

Web Integration

CGI; SSI; native execution; plug-ins

CGI; SSI; VCL; COM; CORBA; MIDAS; ActiveX; plug-ins; native execution

SSI; in-line scripts

Indirect

CGI; SSI; COM; CORBA; ActiveX; scripts



A Gauntlet No One Wants To Pick Up
A better quantitative comparison can be made of the amount of time it takes to complete a specific application. Mr Mark Miller, President of
Eagle Software, has posed a challenge (described in the File|New section of the July '99 issue of the Delphi Informant), which in summary declares that the development time using Delphi will beat any other tool, or combination of tools, by a factor of at least three. To date, no one has taken up his challenge.

The chart below details the time it took (normalized to Delphi=1.0) to develop a client/server application with the following requirements:

Client/Server App Development Time Normalized To Delphi=1.0

VC++

Delphi

Java (1.1)

VFoxPro

VBasic

6.3

1.0

>7

Java unable to meet all requirements

2.2

3.7



Re-Using Code: Why Re-Invent Wheels?
Another interesting comparison is the amount of time it takes to move the client/server application to an intranet, the only requirement being that the client browser must be either Internet Explorer 6.0 or Netscape 7.0, or better. Related to the amount of time the conversion would take is the amount of code re-use that can be realized. The chart below details the time it took (normalized to Delphi=1.0) to convert the client/server application to an intranet.

Client/Server Conversion To Intranet Time Normalized To Delphi=1.0

Category

VC++

Delphi

Java (1.1)

VFoxPro

VBasic

Normalized Conversion time

>5

1.0

>5

2.5

3.3

Code Re-Use

0%

100%

0%

88%

55%



The use of object technology is the basis for Rapid Applications Development, and also provides a demonstrable means of reducing time-to-market pressures. This object technology can even be applied to the source pages for web presentations, which to date have been done with WordStar circa-1979 tools.

Interesting Web Development Comparisons
A comparative example of this is the source page sizes of the various popular web development tools. A customer entry form is required to collect such things as a name, address, phone number, etc., altogether 12 columns which will then be posted to a database with an INSERT or UPDATE. The native HTML (3.2) source is less than 400 bytes, without any data-aware connections. The following chart details the web source page sizes using various tools that provide a data-aware connection.