Allen Holub sagt: Just Say No to XML. XML sei klobig, und wer XML für Konfiguration etc. nutzt, ist nur zu faul, Compilerbau zu lernen.
Dazu meine ich: No.
Nein, es hat keinen Sinn, dass sich jeder seinen eigenen Scanner, Parser, syntax-bewussten Editor, Debugger, Pretty Printer etc. baut. Das ist es, was man im traditionellen Compiler-Bau lernt. Vermutlich auch in dem Buch, das Allen Holub in dem Artikel plugt (“By the way, my own…”). Insbesondere hat es wenig Wert, einen eigenen Scanner mit eigenen Regeln für Tokens und Kommentare entwerfen zu müssen, wenn man eigentlich nur eine Datenstruktur wzB einen struts-Kontrollfluss-Graphen ausdrücken möchte.
Oder auch: Yes.
XML ist viel zu klobig. Eine kompakte erweiterbare Syntax, wie sie Prolog, Lisp und Smalltalk von Anfang an geboten haben, und wie sie heutzutage Ruby bietet, macht da deutlich weniger Schmerzen. Man muss nur ein wenig aufpassen, nicht zu viel Semantik der Turing-mächtigen Wirtssprache in die domänenspezifische Sprache zu übernehmen, sonst ist sie nachher nicht mehr analysierbar, optimierbar, verstehbar, automatisch umschreibbar etc.
Aber warum überhaupt ASCII ? Warum nicht interaktiv im GUI die Datenstrukturen manipulieren, so wie wir es vom Quelltext in IDEA gewohnt sind (achte mal auf Deine Sequenz von Tastendrücken während einer Programmier-Session – mit Programmtext hat das wenig zu tun).
Links zum Thema:
Synthesizer Generator
Jetbrains’ Meta Programming System
Intentional Programming
Subtext