This section introduces Linux IDEs, toolkits, development tools, and versioning systems for professional software development.
Table 24.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 Debugger |
GDB, Valgrind |
GUI Design |
Visual Basic, Visual C++ |
Glade, Qt Designer |
Versioning Systems |
Clearcase, Perforce, SourceSafe |
CVS, Subversion |
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. For more details see http://anjuta.sourceforge.net.
CVS (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. For more details, see http://ximbiot.com/cvs/.
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. For more details, see http://www.eclipse.org.
Eric is an IDE optimized for Python and Python-Qt development. For more details, see http://www.die-offenbachs.de/eric/index.html.
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 is a debugging tool for programs written in various programming languages. For more details, see http://www.gnu.org/software/gdb/gdb.html.
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. For more details, see http://glade.gnome.org/.
GTK+ is a multi platform toolkit for creating graphical user interfaces. It is used for all GNOME applications, 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.” For more details, see http://www.gtk.org. Language bindings for GTK+ are summarized under http://gtk.org/features.html#LanguageBindings.
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. For more details, see http://www.kdevelop.org.
MonoDevelop is an open source integrated development environment for the Linux platform, primarily targeted for the development of software that uses both Mono and Microsoft .NET framework. MonoDevelop integrates features similar to that of Eclipse and Microsoft's Visual Studio such as Intellisense, source control integration, and an integrated GUI and Web designer. For more details, see http://www.monodevelop.com/.
Qt is a program library for developing applications with graphical user interfaces. It allows you to develop professional programs rapidly. For more details, see http://trolltech.com. Language bindings for Qt development are summarized under http://developer.kde.org/language-bindings/.
Qt Designer is a user interface and form builder for Qt and KDE development. It can 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. For more details see http://trolltech.com/products/qt/designer.html.
Subversion does the same thing CVS does but has major enhancements, like moving, renaming, and attaching meta information to files and directories. For more details, see http://subversion.tigris.org/.
Valgrind is a suite of programs for debugging and profiling x86 applications. For more details, see http://valgrind.org/.