一方、UNIXとはまた異なる文化として、LISPやSmalltalkの文化があった。特にSmalltalkでは、クラスブラウザによりクラスライブラリを簡単に追いかけることができることや、その場その環境のプログラムを書き換える、といったことができた。そのGUI環境の表面だけは、後にMacintoshが引き継ぐが、そのような自由な環境という精神はむしろ引き継がれなかった。
統合開発環境 (IDE) は、元々は、シングルタスク環境であったパーソナルコンピュータにおいて、1個のアプリケーションで編集・コンパイルのフロントエンド・デバッガ等、各種の作業を行えるようにしたものから始まっている。前述のSmalltalkのような環境を、パーソナルコンピュータでなんとか実現しようとしたもの、と見ることもできる。その後パーソナルコンピュータでも、Windowsや、あるいはUNIXライクOS(Linuxなど)が使えるようになると、例えばEclipseなど、より洗練された(Smalltalkのそれに近い)環境などが現れたが、MS-DOS以来の伝統を残すVisual Studioなどもまだ使われている(しかし近年、Windows以外のバージョンを中心に、その中身はXamarin Studioに置き換わりつつある)。 とりあえず適当に例を挙げる。 ソフトウェアツールには様々な形態がある。
分類
性能解析ツール
デバッグツール
静的コード解析と形式的検証ツール
ソフトウェアテストツール
メモリ使用量測定ツール
アプリケーション構築ツール
統合開発環境
ツール一覧
バグ管理システム: gnats
ビルドツール: make、automake、Apache Ant、SCons、Rake、cmake、 ⇒qmake
コード網羅率: gcov、 ⇒EMMA
コード共有サイト: Freshmeat、Krugle、SourceForge.net、 ⇒ByteMyCode
コンパイラ、リンケージエディタ: GNUツールチェーン、gcc、Microsoft Visual Studio、CodeWarrior、Xcode、ICC
デバッガ: gdb、GNU Binutils、Valgrind
逆アセンブラ: リバースエンジニアリングツール
ドキュメンテーションジェネレータ: Doxygen、 ⇒help2man、POD、Javadoc、 ⇒Pydoc/Epydoc
形式手法: 数学に基づく仕様記述・開発・検証の技法
GUIインタフェースジェネレータ: ⇒Qt Designer、Cocoa InterfaceBuilber、Windows Forms Visual Studio
ライブラリインタフェースジェネレータ: SWIG
メモリ使用量/リーク/破壊検出: ⇒dmalloc、 ⇒Electric Fence、 ⇒DUMA、 ⇒Insure++。
メモリリーク検出: C言語では、メモリリークの検出は容易ではない。そのためメモリデバッガを使ってメモリリークがないか検証する。
パーサジェネレータ: Lex、Yacc、 ⇒Parsec
性能解析(プロファイラ)
リファクタリングブラウザ
バージョン管理システム: Bazaar、BitKeeper、 ⇒Bonsai、ClearCase、CVS、Git、GNU arch、Mercurial、 ⇒Monotone、RCS、SCCS、SourceSafe、Subversion、 ⇒LibreSource Synchronizer
スクリプト言語: AWK、Perl、Python、REXX、Ruby、シェル、Tcl
検索: grep、find
コード重複検出: ⇒CCFinderX
自動プログラミングツール
静的コード解析: lint、 ⇒Splint、 ⇒PMD、 ⇒Findbugs、 ⇒AdLint
テキストエディタ: Emacs、vi、vim