A.6. Software Development

This section introduces Linux IDEs, toolkits, development tools, and versioning systems for professional software development.

Table A.6. Development Software for Windows and Linux

Task

Windows Application

Linux Application

Integrated Development Environments

Borland C++, Delphi, Visual Studio, .NET

KDevelop, Eric, Eclipse, MonoDevelop, Anjuta

Toolkits

MFC, Qt, GTK

Qt, GTK

Compilers

VisualStudio

GCC

Debugging Tools

Visual Studio

GDB, valgrind

GUI Design

Visual Basic, Visual C++

Glade, Qt Designer

Versioning Systems

Clearcase, Perforce, SourceSafe

CVS, Subversion

KDevelop

KDevelop allows you to write programs for different languages (C/C++, Python, Perl, etc.). It includes a documentation browser, a source code editor with syntax highlighting, a GUI for the compiler, and much more. Find more information at http://www.kdevelop.org.

Eclipse

The Eclipse Platform is designed for building integrated development environments that can be extended with custom plug-ins. The base distribution also contains a full-featured Java development environment. Find more information at http://www.eclipse.org.

MonoDevelop

The Mono Project is an open development initiative that is working to develop an open source Unix version of the .NET development platform. Its objective is to enable Unix developers to build and deploy cross-platform .NET applications. MonoDevelop complements the Mono development with an IDE. Find more information about MonoDevelop at http://www.monodevelop.com/.

Anjuta

Anjuta is an IDE for GNOME/GTK application development. It includes an editor with automated formatting, code completion and highlighting. Apart from GTK it supports Perl, Pascal, and Java development. A GDB based debugger is also included. Find more information about Anjuta at http://anjuta.sourceforge.net.

Eric

Eric is an IDE optimized for Python and Python-Qt development. Find more information about Eric at http://www.die-offenbachs.de/detlev/eric3.html.

Qt

Qt is a program library for developing applications with graphical user interfaces. It allows you to develop professional programs rapidly. The Qt library is available not only for Linux, but for a number of Unixes and even for Windows and Macintosh. Thus it is possible to write programs that can be easily ported to those platforms. Find more information at http://www.trolltech.com. Language bindings for Qt development are summarized under http://developer.kde.org/language-bindings/.

GTK

GTK is a multiplatform toolkit for creating graphical user interfaces. It is used for all GNOME applications, The GIMP, and several others. GTK has been designed to support a range of languages, not only C/C++. Originally it was written for GIMP, hence the name “GIMP Toolkit.” Find more information at http://www.gtk.org. Language bindings for GTK are summarized under http://www.gtk.org/bindings.html.

GCC

GCC is a compiler collection with front-ends for various programming languages. Check out a complete list of features and find extensive documentation at http://gcc.gnu.org.

GDB

GDB is a debugging tool for programs written in various programming languages. Find more information about GDB at http://www.gnu.org/software/gdb/gdb.html.

Valgrind

Valgrind is a suite of programs for debugging and profiling x86 applications. Find more information about Valgrind at http://valgrind.org/info/.

Glade

Glade is a user interface builder for GTK and GNOME development. As well as GTK support, it offers support for C, C++, C#, Perl, Python, Java, and others. Find more information about Glade at http://glade.gnome.org/.

Qt Designer

Qt Designer is a user interface and form builder for Qt and KDE development. It can be run as part of the KDevelop IDE or in stand-alone mode. QtDesigner can be run under Windows and even integrates into the Visual Studio development suite. Find more information about Qt Designer at http://www.trolltech.com/products/qt/designer.html.

CVS

CVS, the Concurrent Versions System, is one of the most important version control systems for open source. It is a front-end to the Revision Control System (RCS) included in the standard Linux distributions. Read more about CVS in Reference. Find more information at the home page http://www.cvshome.org/.

Subversion

Subversion does the same thing CVS does but has major enhancements, like moving, renaming, and attaching meta information to files and directories. Read more about Subversion in Reference or go to the home page http://subversion.tigris.org/.