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


Anjuta

Anjuta is an IDE for GNOME/GTK+ application development. It includes an editor with automated formatting, code completion, and highlighting. As well as 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.

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. Find more information at http://ximbiot.com/cvs/wiki/.

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.

Eric

Eric is an IDE optimized for Python and Python-Qt development. Find more information about Eric at http://www.die-offenbachs.de/eric/index.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.

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/.

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://gtk.org/features.html#LanguageBindings.

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.

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/.

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 Unix flavors 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://trolltech.com. Language bindings for Qt development are summarized under http://developer.kde.org/language-bindings/.

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://trolltech.com/products/qt/designer.html.

Subversion

Subversion does the same thing CVS does but has major enhancements, like moving, renaming, and attaching meta information to files and directories. The Subversion home page is http://subversion.tigris.org/.

Valgrind

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