The one development tool that has been lacking in the Open
Source community is a professional-level IDE (integrated
development environment). KDevelop thankfully provides such a tool
that combines the resources of contributors and existing
open-source products. However, does KDevelop match the expectations
of a commercial IDE usually based on a non-UNIX platform?

What Is an IDE?

An IDE is an environment, preferably graphical, that is used
for the creation, debugging and maintenance of programs. The three
core components of this environment are a programmer's editor that
is context-sensitive to the programming language, a GUI (graphical
user interface) builder that is used to construct the graphical
front end of the application and a debugger to detect bugs in the
code.

These are the basic requirements of an IDE. However, there
really needs to be more than these three components to make an IDE
a useful tool.

Installation

Because open-source programs tend to concentrate on
completing the task, rather than being user friendly, installation
sometimes tends to be difficult and frustrating, particularly
considering all the different versions of Linux and the constantly
changing libraries and tools.

The KDevelop RPM binary can be downloaded by either following
the links off KDevelop's web site or by using a site such as
http://www.rpmfind.net/
to locate it.

For this review, I installed a brand new Linux installation
and made sure it included every single package and feature that the
distribution allowed.

Alas, I ran into installation problems when I found certain
dependencies for various libraries that did not exist in my Linux
installation. A quick diversion to the Internet to download the
missing libraries solved the problem.

Total installation time took about 30 minutes with a fast
internet connection and a little bit of technical knowledge. This
installation method is ideal for users with some Linux
administration skills.

Sometimes, building from source is recommended for
programmers that have non-Linux/UNIX operating systems, for
customized Linux distributions and for potential KDevelop
contributors. Only experienced or very determined developers should
attempt building KDevelop from source code.

All the development versions of the required libraries must
be installed. Because there is no easy way of determining these
dependencies, building from source tends to be a process of trial
and error.

A feature of KDevelop is its ability to use many existing
open-source tools. Not all of these tools are required, but they
are necessary to ensure that KDevelop performs as expected. When
KDevelop is started for the very first time, a list of associated
tools are given and are marked as either present or missing (see
Figure 1). Once this list is available, the missing tools can be
installed later.

Optional tools include enscript, Ghostview or KGhostview,
Glimpse 4.0, htdig, sgmltools 1.0, KDE-SDK (KDE software
development kit), KTranslator, KDbg, KIconedit and Qt Linguist.
Although optional, it is best that all of these tools are
available.

Figure 1. Initial KDevelop Startup Detecting Installed Tools

Features

Although KDevelop provides the three core requirements of an
IDE (editor, GUI builder and debugger—see Figure 2), it has
several other features that make it a robust and reliable tool,
suitable even for commercial projects.

Figure 2. KDevelop 1.4 in Action

A complex program can be daunting for both beginners and
experts alike; so program documentation is critical. The
documentation for KDevelop provides a good source of on-line help,
although it does lack screenshots and visual content.
Context-sensitive help is available through tool tips and the
“What's this?” cursor mode.

KDevelop also indexes the KDE Lib and Qt documentation. The
ability to set bookmarks is present, which makes it easy to return
to relevant documentation. Other tutorials and documentation are
also available at the KDevelop's web site.

KDevelop has a built-in HTML browser that makes documentation
access effortless and removes the need for an external
browser.

Generate Settings (see Figure 4)--this is the step
to enter the project name, location, initial version number,
author's name and e-mail. There are also options to generate
various project-associated files, such as sources, headers, GNU
standard files, icons and project-associated documentation.

Figure 4. Entering the Project
Settings

Version Control System (see Figure 5)--the version
control system dialog allows you to set the parameters of the
source control system. This is dependent on the Linux distribution.
In general, this is the CVS tool.

Figure 5. Selecting the Version Control System

Header Templates for header and code files (see
Figure 6)--this allows the developer to select automatically
generated headers for program headers and source files. These
headers are fully customizable with tag expansions, which fill in
various bits of information, such as the author, filename and
date.

Figure 6. Header Template Setup for Header
Files

Project Creation (see Figure 7)--in the final stage
of project creation, the related project's files and directories
are created, using the automake
and configure tools. Note that if
some of the required tools are missing in the Linux distribution,
this creation process might fail. If failure does occur, it is best
to install the missing components and then recreate the project. It
is extremely difficult to recover from a project-creation
failure.

Figure 7. Initial Project Creation

Once the project has been created, development can begin. I
strongly suggest that at this point the project be built and
executed to detect any build problems.