Diff
大半のdiff実装の仕様は1975年以来ほとんど変わらずにそのままである。主な変更点としてはコアアルゴリズムの改良、コマンドとして便利な機能の追加、新出力形式の設計がある。基本的なアルゴリズムは論文 "An O(ND) Difference Algorithm and its Variations"(Eugene W. Myers著)および "A File Comparison Program" (Webb Miller and Myers著)で説明されている。このアルゴリズムはこれとは別に独立してE.ウッコネンが発見して、 "Algorithms for Approximate String Matching" (E. Ukkonen著)において説明している。diffプログラムの最初のバージョンはテキストファイルの行単位での比較用に設計された。ここでの行は改行コードによって区切られていることを前提としていた。1980年までにはバイナリファイルへの対応も加えられた。
ポストプロセッサ sdiff は個々のdiff項目を並べて出力するものであり、 diffmk の方は印刷文書に変更箇所マークを挿入するためのものである。
diffが作られてしばらくは、ソフトウェアコードや技術文書のマークアップのソース部分の変更箇所を比較する、プログラムのデバッグ出力の検証、ファイルシステム中のファイル一覧の比較といった使い方が一般的であった。ed用の出力により、ファイルへの一連の変更をひとまとめにしてファイル容量を節約するというアイデアが出てきた。Source Code Control System(SCCS)はそのようなアイデアを実装したものとして1970年代後半に実装がなされた。
diffは概念的にはザナドゥ計画(Project Xanadu)の思想を受けたものである。Xanaduは1960年に出現したハイパーテキストプロジェクトでその「相互参照ウィンドウ」機能に必要な履歴版の管理・追跡という概念を示していた。ファイルの相違点の提示はこの機能の一部としてより広い用語「トランスクルージョン(transclusion)」に含まれていた。トランスクルージョンとはある文書が他の文書もしくは他の版の一部の中に含まれることを指す。
電子化時代の人文科学においては、コンピュータによる比較ツールは過去に大部で出版された文学作品に対しても用いられている。