Office Tools Evaluation Paper

Rapid Application Development Tools

by

Ihab Khalili

Danny Yerex


Executive Summary

Rapid Application Development (RAD) tools, or alternatively, graphical user interface (GUI) application builders, are used to develop windows applications with ease. They are usually a programming environment that uses a popular programming language as its native language.

In this document, we compare three widely used GUI application builders: Microsoft Visual C++, Borland Delphi, and Tcl/Tk. As it turns out, Visual C++ is a compiled language which produces highly optimized executable, costs reasonable, and has a really low learning curve, which would seem to make it an ideal choice. Its prominent features are a GUI screen builder called "App Studio", and "App Wizard" which creates project templates.

However, there are other aspects to be considered when choosing a GUI application builder. Each one of Visual C++, Delphi, and Tcl/Tk has its advantages and disadvantages, but there are two important questions to ask before we can make a logical decision about which one would be the best to use, for these different tools each have their place. The questions are:

The results however show that Borland Delphi is appropriate for most applications.


Contents

This report consists of the following sections:


Introduction

The following document seeks to provide an overview of Rapid Application Development Tools (RADs) and with that, evaluate the following three packages:

The evaluation of these tools is comprehensive, and includes the following:

It is our attempt to explain the purpose and intended audience of the RAD tools, highlight the differences and similarities between our chosen examples, and critique each tool for deficiencies.

Also discussed in this document is our testing procedures, and an evaluation of our testing results, including any comments or recommendations where appropriate.

As our evaluation focus is objective, it is our aim to provide the reader with the facts as they appear, and minimize any personal bias.


Task to be Solved

Background on RADs

The earliest methods for windows programming required the user to code virtually all windows components (i.e., buttons, menus, borders) from scratch. Since these methods were based in a non-graphical environment, the coder was required to positions windows components manually, using geometric values, and test to see if the window appeared as planned. Also, each application ran independently, and did not share data with or rely in any way upon other programs.

The evolution of RADs brought about the idea of libraries, where commonly used and heavily tested components were accessible, thus greatly reducing development time. Also, the integration of Object-Oriented Programming (OOP) added two valuable aspects to the development of RADs:

The desired aspects of RADs, that the intended audience of professional application developers demanded, were the following:

RADs are It was for these purposes that RADs are what they are today. Borland's Delphi is considered state of the art, as it compiles executable, independent files, whereas other use interpreted or semi-interpreted code. This results in Delphi executes 10 to 20 times faster than interpreted code, and a reduced executable size by as much as 30 percent.


RADs - The Solution

Overview of the Tested RADs

Visual C++

Visual C++ is a programming environment developed by the MicroSoft Corporation (T). The programming language used is Visual C++ is C++ (obviously) which is an object oriented programming language. It is only available for the operating system environments Microsoft Windows 3.x/95/NT. It compiles, links, and creates an executable for the project built by the programmer. The project may include programming code, pictures, and GUI. There are features available to generate customized project templates and for designing the GUI.

Delphi

Delphi is also a programming environment developed by Borland International (T). The programming language used in Delphi is Object Pascal. It is available for Windows 3.x/95/NT. Delphi, as well, compiles its source code to create an executable program. There are many code generator tools available in Delphi as well as an interface builder. It has it`s own built-in database engine, and reporting/printing features. It is one of the most popular interface builders on the market.

Tcl/Tk

Tcl/Tk are two development packages that work in tandem. Together they provide a programming system for developing and using graphical user interfaces (GUI) applications. These packages are available for XWindows and for Windows 3.x. Tcl stands for "Tool Command Language"and is pronounced "tickle". It is a simple scripting language for controlling and extending applications. Tk is a toolkit for the XWindows system, and its name is pronounced "tee-kay". Tk extends the Tcl facilities with additional commands for building interfaces, so that you can construct Motif and Windows user interfaces by writing Tcl scripts instead of C code. Tcl/Tk do not use an interface. The programmer simply writes all the programming code in one file and the interpreter will execute the application. There are no code generators available for Tcl/Tk, but there are some slow third party GUI builders available.


Evaluation Criteria

Benchmarks

Microsoft Visual C++ needs to compile, link, and create an executable for every application created, so the speed of Visual C++ is quite slow. It may take up to ten minutes to compile a relatively large application using a Pentium 75MHZ. However, the C++ compiler is highly optimized and so the speed of the application created will be the fastest out of any other programming language.

Borland Delphi also compiles its code to produce an executable, so its compilation speed is relatively slower. However, the compiled code is not nearly as efficient (in terms of size and speed) as the Visual C++ compiler, so creating the executable for an application in Delphi takes approximately 1/10 of the time to create the same executable in Visual C++. This is noticed when running the executable as it is a fair bit slower than Visual C++.

Tcl and Tk are interpreted languages, which means that every line of code is read and executed as the program runs. Thus, there is no compilation and no executable will be created. The main advantage of an interpreted language is that it is really fast and easy to debug and create since you do not need to compile and link the code, you just run it. This results in faster development time. However, the main disadvantage of an interpreted language is that it is much slower executable than a compiled language. This is why Tcl/Tk applications are 10 to 20 slower than Delphi and Visual C++.

Price

Microsoft Visual C++ costs about $450.00 for a single user licence. However, if it is desired to develop a database and reporting applications, one would need to buy the database engine (Borland database engine ~$150.00) and a third party reporting tool (Crystal Reports ~$200.00).

Borland Delphi, in the other hand, comes fully equipped with a database engine and reporting feature (ReportSmith) for about $400.00 for a single user licence. Delphi uses components which saves the programmer much work. These components are written by other developers and sold for $50-$100/component for a single user. An example of a component is the "Communication component" which lets you use any communication function to create a modem program. Another example is the Multi Media component which lets the programmer control the peripherals like a CD player or video recorder from the application.

Tcl/Tk is a freeware application, so it costs nothing. It can be downloaded from the internet for free. There are no database engines or report features that are available for Tcl/Tk.

Functionality

Broadly speaking Visual C++, Delphi, and Tcl/Tk produce many of the same functions, but some are easier or faster than others. The following lists some of the tools that enhances the Rapid Application Development Process.

Microsoft Visual C++ has a limited number of tools (relatively speaking) to provide easier development. One of these tools is called App Studio which allows the user to create the GUI by simple drag and drop. This allows the user to bypass all the code writing to create the GUI. (This feature is built-in and integral to Delphi). Another nice feature to Visual C++ is the MFC (Microsoft Foundation Classes) which have pre-written code for re-use. The programmer only calls the functions of the re-usuable code and all the windows and events are taken care of automatically. These is what programmers call reusable objects. The last remarkable feature of Visual C++ is the "App Wizard" which creates all the code and windows for a customized and empty project. All the programmer needs to do is add any windows, and functions. The project will run as normal after using "App Wizard".

Borland Delphi provides the programmer with code generators as well, so that the programmer does not need to code the essentials every time. It also uses components which are pre-written classes / objects to perform specific tasks. Such components provide the functionalities needed for a specific task such as accessing database tables and performing SQL (Structured query language), so that the programmer writes a minimum of code in this area. Delphi also provides a reporting tool called "Report Smith" which lets the programmer create any customized report from the database tables. It also has a database engine included within (Borland Database Engine) which provides full database functionalities such as adding, deleting, and editing records.

Tcl/Tk packages do not provide any code generation functions and no GUI builder. So all the windows, buttons, and other objects (called widgets) are implemented via the code you write. As well, all event handling that the user wants to implement must be written from scratch. Usually source code for an application is usually kept in one file since the complexity of the code is hidden behind the interpreters and the source code becomes fairly small. However, Tcl/Tk provides "reusable code" / objects feature. This feature allows you to use code that has already been written such as the "file load and save dialog". This dialog is a very commonly used dialog which lists the files and directory structures and is used to load files or save files. Such dialogs are available in Tcl/Tk as prewritten code.

Ease of Use

Microsoft Visual C++ is for not for anyone but advanced windows programmers. It is very low level compared to Delphi and Tcl/Tk. It is fully object oriented programming and uses all the Windows SDK (Software Development Kit) functions as well as the MFC (Microsoft Foundation Classes) which are C++ classes created by Microsoft. Functions that access a database are extremely complex and all error checking for the database must be implemented by the programmer. It requires a fair bit of training and experimenting before proficiency is achieved in Visual C++, thus the learning curve is generally considered to be very low.

Borland Delphi is far easier to use compared to Visual C++. It is intuitive and all the error checking is already implemented. Accessing databases or producing reports from the application is an easy and quick process with minimum amount of extra coding required. The available components provide much of the commonly used objects and dialogs for immediate implementation, leaving more time for customizing the components to your task. Delphi definitely has a very high learning curve.

Tcl/Tk has a high learning curve also, though not as high as Delphi. The available commands are limited and fairly easy to use. There are no tools to learn and no interfaces. GUI screens are built through the Tk commands. For example, the positioning of all the widgets is done through a command called "pack" such that when the users resizes a window the position is constant with the window size and position. This way it looks like all the items inside are glued to the window.


Testing Process

As we have seen, all the GUI application builders that we have discussed provide us with an easy method of developing windows applications. Visual C++ and Delphi are alike in that they are both compiled languages. Tcl/Tk is interpreted. However, they all provide a method of re-using code. They all vary in speed, cost, and ease of use. They all serve their purpose best under certain different requirements. Visual C++ ranks number one in the situation where speed of the application is essential, the user is very familiar with windows programming, and low level routines need to be written. Delphi also provides low level functions, but the executable speed is definitely lower than Visual C++. In the cases where speed is not a factor, Delphi ranks as number one. It is extremely user friendly and easy to develop any application. Tcl/Tk serves its purpose when the budget is very low since it can be gotten for free on the internet. So in the case of low budget, or prototyping purpose, Tcl/Tk ranks as number one.


Conclusion

There are many things to be considered when choosing a GUI application builder. We have discussed how each one of the three GUI application builders perform in some very important measures. Each one had its advantages such as Visual C++ with it's optimized executable speed, Delphi with its built in database and reporting system and high learning curve, and Tcl/Tk being a free shareware. However, there is one more important question to ask before we can make a logical decision about which on would be the best to use: "What kind of application are you building"? If you are creating an application which requires database access, reporting, multimedia, or complex tasks it would be most logical to use Borland Delphi since it has a native database engine and code generators to do all the database access needed as well as components to help you with all the complex tasks. If, however, the application is very dependent on speed and low level language to control the computer devices, it would be best to use Visual C++.