There is the Unix way of developing software, which is to separate components into modules, so that you may have:
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.
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.
An IDE tool for use with Mono
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.
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.
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 ;
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.