YAML Ain’t Markup Language - Daten lesbar speichern
Das Akronym YAML existiert gleich zweimal und beide YAMLs stehen für aktuell sehr beliebte Internettechnologien:
- Yet Another Multicolumn Layout, ein XHTML/CSS-Framework für barrierearme Website-Layouts
- YAML Ain’t Markup Language, eine menschenlesbare Sprache für die Serialisierung von Daten
Dieser Artikel handelt von dem etwas trockeneren Thema Datenserialisierung mit YAML. Über das CSS-Framework YAML werde ich bei Gelegenheit in einem eigenen Artikel berichten.
Warum werden Daten serialisiert?
Durch Serialisierung ist es möglich, verschieden Datentypen (z.B. Objekte oder Arrays) in eine sequentielle Form zu bringen. Diese Daten können dann abgespeichert oder zwischen Applikationen ausgetauscht werden. Spezielle Schnittstellen (APIs) ermöglichen das Einlesen der serialisierten Daten, die dadurch wieder vom Programm verwendet werden können.
Die Vorteile liegen auf der Hand: Datenströme, die so nur während eines Programmablaufes vorkommen, können fixiert, gespeichert und ausgetauscht werden. Mit einer ausreichend lesbaren Auszeichnungssprache ist auch das manuelle Aufschreiben komplexer Datenstrukturen (z.B. für Konfigurationsdateien) keine Schwierigkeit.
In vielen Fällen wird die Auszeichnungssprache (Markup Language) XML für die Datenserialisierung verwendet. Wegen des großen Overheads von XML sind einige alternative Formate entstanden, darunter zum Beispiel das Datenaustauschformat JSON und das hier besprochene YAML.
Die Besonderheiten von YAML
Der Schwerpunkt bei der Entwicklung von YAML lag auf einer einfachen Lesbarkeit für den Menschen und besonders guter Interaktion mit Skriptsprachen wie PHP, Perl und Python.
YAML eignet sich damit ideal für Konfigurationseinstellungen und Logdateien von Webapplikationen. Programmiersprachen wie Java und C können aber ebenfalls von vollwertigen YAML-Implementierungen profitieren.
Ein Beispiel für YAML-Code
Eindimensionales, assoziatives Array in YAML:
Das Resultat in PHP (geparsed mit spyc):
Implementierungen von YAML
YAML-Implementierungen gibt es unter anderem für folgende Sprachen:
- Perl (YAML parser for Syck)
- Python (PyYAML)
- PHP (spyc)
- JavaScript (YAML JavaScript)
- Ruby (RbYAML)
- Java (jvyaml, JYaml)
- .NET (Yaml .NET Parser)
- C (LibYAML )
- Cocoa (YAML Cocoa parser)
YAML lernen
YAML ist wirklich nicht schwer zu lernen. Das darf man natürlich erwarten, wo doch die Lesbarkeit ein wichtiges Entwicklungskriterium der Sprache war.
Besonders einfach lernt man YAML mit YAML In Five Minutes. Auf yaml.org findet man außerdem die komplette YAML-Referenz.




Kommentare
Noch keine Kommentare.
Kommentieren