Boilerplate
# Boilerplate

Boilerplate (englisch für ursprünglich „Kesselplatte“, übertragen „Standardtext, Textbaustein“; auch Abbinder) ist in der Medienarbeit und dem Druckwesen der Anglizismus für einen gleichbleibenden Textblock meist am Ende eines Texts.

## Allgemeines

Im Zusammenhang mit E-Mails wird der Begriff auch bezüglich der Signatur benutzt. Der Begriff wird auch in der Rechnungslegung und der Programmierung verwendet.

## Public Relations

Boilerplate oder Backgrounder ist ein Begriff aus der PR- und Medienarbeit. Es handelt sich dabei um eine Textpassage am Ende einer Medienmitteilung. Sie enthält die wichtigsten allgemeinen Angaben zur Organisation, welche hinter der Medienmitteilung steht (z. B. Anzahl der Mitarbeiter des Unternehmens, Umsatz, Standorte, Branchenschwerpunkte, Gründung).

Die Boilerplate ist somit ein über einen längeren Zeitraum gleichbleibender Textblock ohne direkten Bezug zum aktuellen Anlass. Die Boilerplate bietet Journalisten die Möglichkeit, auf einen Blick das Tätigkeitsprofil einer Organisation bzw. eines Unternehmens zu erfassen.

## Wirtschaft

Bei der Vertragsgestaltung von Finanzkontrakten (wie Kreditvertrag, Anleihebedingungen, Termingeschäften) gibt es Standardklauseln, die nicht Gegenstand von vorherigen Verhandlungen sein müssen, weil sie als allgemein üblich anerkannt sind (englisch boilerplates). Hierzu gehören beispielsweise die Covenants. Die Vertragsmuster der Loan Market Association beinhalten derartige, als boilerplates bezeichnete Textbausteine.

Bei der Bilanzierung und in der Rechnungslegung ist die Offenlegung (englisch disclosure) bekannt, deren Aspekte von den Interessengruppen der Rechnungslegung unterschiedlich gewichtet werden. Die bilanzierenden Unternehmen sehen sich gedrängt, ihre Abschlüsse unter hohem Aufwand mit Informationen und Unternehmensdaten zu überfrachten (englisch disclosure overload), die nach ihrem Empfinden für die Nutzer zum Teil irrelevant sind. Unter anderem wegen Zeitdrucks seien viele Angaben redundant und wenig unternehmensspezifisch. Hierzu fühle man sich durch die bestehenden Publizitätsvorschriften gezwungen, deren Einhaltung von Abschlussprüfern überprüft werde. Nach Ansicht des International Accounting Standards Board (AISB) kann eine Überfrachtung mit ausufernden verbalen Angaben zu einer kognitiven Überforderung des Adressaten durch mangelnde Relevanz, ineffektive Kommunikation (etwa in Form von standardisierter und repetitiver Darstellung; englisch boilerplates) sowie ein Übermaß an unwesentlichen Informationen führen.

## Programmierung

In der Programmierung bezeichnet der Begriff Boilerplate-Code Codefragmente, die an vielen Stellen in mehr oder weniger unveränderter Form benötigt werden. Das kommt häufiger vor in Programmiersprachen, die als eher „geschwätzig“ (verbose) gelten, d. h. dem Programmierer auch für geringste Aufgabenstellungen viel Codierarbeit abverlangen. Der Bedarf an Boilerplate-Code kann durch Nutzung von High-Level-Mechanismen wie Metaprogrammierung (wobei das System den benötigten Boilerplate-Code automatisch generiert) und Methodikbausteine wie Konvention vor Konfiguration (wodurch „gute“ Defaultwerte zur Verfügung gestellt werden, so dass viele Implementierungsdetails nicht mehr in jedem Projekt ausdrücklich spezifiziert werden müssen) reduziert werden.

Die folgenden Zeilen in Perl zeigen beispielhaft Boilerplate-Code. Sie bestehen aus einem Shebang und zwei Pragmata (die der gute Programmierstil verlangt) am Anfang einer Quelldatei. Diese Zeilen sind nicht Teil der Programmlogik, sondern enthalten Information für die Ablaufumgebung.

Boilerplate-Code wird häufig zur Vorbereitung der Benutzung von Funktionen aus Bibliotheken mit niedrigem Abstraktionsniveau benötigt. Ein Beispiel hierfür ist die strcat Function in C zum Zusammenfügen zweier Zeichenketten (strings). In C werden Zeichenketten als Felder von einzelnen Zeichen (character, Datentyp char) mit abschließendem Nullbyte abgelegt (nullterminierte character arrays). Der Code, den man braucht, um (jedenfalls auf eine Art) mit strcat zwei Zeichenketten namens first und second zu verketten, lautet in ausführlich kommentierter Fassung, aber ohne notwendige Fehlerbehandlung:

* Die Variablendeklarationen und die Anweisungen malloc und free sind der Boilerplate-Code, der als Rahmen für die eigentliche Arbeit der beiden Funktionsaufrufe vorausgesetzt und somit zusätzlich geschrieben werden muss.
* Der Code ist nicht threadsafe. Werden first oder second zwischen dem strlen und den Kopiervorgängen in einem anderen Thread verlängert, wird der Heap zerstört.
* Der Code ist damit nicht nur lang und komplex und verdeckt die eigentliche Aufgabe, sondern es gibt viele Möglichkeiten, den Code mit Schwachstellen zu versehen.
* Zur Unterstützung weitere Funktionen wie Wide Characters oder Multibyte-Characters wächst der Boilerplate noch weiter.
