A-A-P
# A-A-P

A-A-P ist ein von Bram Moolenaar in Python geschriebenes Programm zur Automatisierung der Erstellung von Computerprogrammen, vergleichbar mit make oder Apache Ant. Neben der klassischen Automatisierung des Erstellungsvorgangs ermöglicht es auch das Auffinden, Herunterladen, Installieren und Verändern von sowie die Fehlersuche in Computerprogrammen. A-A-P besitzt eine integrierte Anbindung an CVS.

## Vergleich mit Make

Entstanden ist A-A-P, weil Bram Moolenaar einige klassische Eigenschaften von Make als problematisch ansah und deshalb einen Ersatz suchte. Make stellt anhand der Zeitstempel fest, ob ein zu erstellendes Ziel bereits aktuell ist oder aktualisiert werden muss. Zeitstempel stellen jedoch kein zuverlässiges Mittel dar. A-A-P verwendet stattdessen eine Signatur (Prüfsumme). Zudem ist Make sehr abhängig von der jeweils eingesetzten Plattform. Bereits die Portierung eines Makefiles von einem UNIX-System auf ein anderes kann zahlreiche Herausforderungen in sich bergen. Die Portierung auf ein Nicht-UNIX-System, z. B. Windows, stellt eine zusätzliche Herausforderung dar. Einer der Gründe liegt darin, dass sich die Fähigkeiten des Werkzeuges Make auf die Erstellungsautomatisierung, nicht jedoch auf die dafür notwendige Funktionalität erstrecken, sodass externe Programme (Shell-Befehle) verwendet werden müssen. A-A-P will, ähnlich wie Apache Ant, durch möglichst viel eigene Funktionalität den Aufruf externer Programme möglichst überflüssig machen und dadurch die Portabilität erhöhen.

## Vergleich mit Ant

Gegenüber Ant hat A-A-P aus Bram Moolenars Sicht den Vorteil, nicht auf Java zu beruhen und damit lediglich eine vergleichsweise kleine Installation von A-A-P zu erfordern, andernfalls müsste eine Java Virtual Machine vorhanden sein. Außerdem ist Ant nur bedingt dazu geeignet, C++- und C-Programme zu übersetzen. Die Stärken von Ant liegen in der Übersetzung von Java-basierter Software und der Verarbeitung von XML, z. B. mittels XSLT.

## Verbreitung

A-A-P wird derzeit nur selten eingesetzt. Die vorherrschenden Erstellungsautomatisierungswerkzeuge sind nach wie vor Ant und make.

