There is the Unix way of developing software, which is to separate components into modules, so that you may have:
A text editor such as vi or Emacs
In the case of Emacs, extensive sets of development tools have matured over the last fifteen or twenty years, providing many of the functions described below as functionality integrated into the text editor.
Program reformatting utilities such as cb or indent
Compiler and linker tools that have "command line interfaces"
A system for automatically recompiling things that have changed based on some set of dependencies such as make
Tools for analyzing program code so that one can readily jump to the definition of any given "object" or compile error. For C, there is the ctags utility; other languages may have other similar utilities.
Debugger
Integration with Version Control software
Borland introduced (possibly copying someone else) the notion of an "integrated development environment," where there is a program with a somewhat graphical user interface that controls all of these sorts of functions in an "integrated" fashion. Usually, some flexibility is lost, as these environments tend to be tied to a particular text editor, language, or compiler toolkit.
Nonetheless, people often feel that they need to be so tied down. If the environment has been well enough written, they won't notice too much restrictiveness.
Source Navigator is a source code analysis tool. With it, you can edit your source code, display relationships between classes and functions and members, and display call trees. You can also build your projects, either with your own Makefile, or by using its build system to automatically generate a Makefile.
This is an "IDE" project initiated by IBM, consisting of an IDE Platform, a set of Java Development Tools, and a Plug-in Development Environment using XML to describe how additional extensions may be plugged in.
It is implemented in Java , and while it is released under an open source license, it unfortunately requires Java libraries that are very much not free software.
An IDE tool for use with Mono
Paradigm Visual Make (pvm) - Somewhat like a "Visual C Lite"
IDE for C/C++/Java, Oriented to KDE development...
A "Visual IDE" for GNOME.
CSCOPE - a developer's tool for browsing program code. The cscope code has been released as Open Source by Santa Cruz Operation, Inc. (SCO) under the BSD license.
Code Medic - GUI Interface to GDB features
ELF Kickers - Utilities for ELF file format
An alternative to the classic "Make" utility.
bras --- Rule Based Command Execution "Out of frustration caused by several (mis)features of make I decided the other day that I would like to have a tool which combines rule-based and script-like command execution. The result is bras. It is written in Tcl and the rule-files it uses are also pretty much Tcl. However, bras defines a set of new Tcl-commands which implement rule-based command execution."
PyANT helps to implement project building using tasks defined in Python scripts.
Software Carpentry
A project to create new software engineering tools that integrate with Python , notably including:
A platform investigation and project reconfiguration tool to supersede autoconf ;
A dependency management and program reconstruction tool to to supersede Make ;
A testing framework to replace tools such as XUnit, Expect, and DejaGnu; and
The project is, in formal terms, defunct. The Python community has nonetheless continued to support some of the winning projects.
The meaning of pmk is "Pre Make Kit", a dependency configuring tool. It aims to be considered as an alternative to GNU autoconf.
SCons is a software construction tool rather like Make written in Python. Its design was based on a winning entry in the Software Carpentry build tool competition.