XML에 의한 메타프로그래밍

Extensible Programming for the 21st Century에서는 프로그래밍 언어를 표현하는데 일반 텍스트가 아닌 XML을 사용해서 메타 프로그래밍을 쉽게할 수 있도록 하자는 주장을 하고 있다. 확실히 XML을 사용하여 프로그램을 표현하면, 이걸 다른 소프트웨어(예를 들어, XSLT)로 다루기는 좋을 것이다. HTML이나 SVG에 의한 documentation을 포함시킬 수도 었고, 그외에도 여러 메타 정보를 넣는 것이 가능해진다. 하지만 그 글의 저자도 인정하고 있듯이, 근본적으로는 LISP과 다를 것은 없는 것이다. 물론 요즘 프로그래머들의 XML에 대한 친숙성이나 여러가지 잘 발달된 툴들을 고려해보면 예전 LISP의 경우보단 여러가지로 더 나은 점이 있겠지만 본질적인 차이는 아니다. 그렇다면 LISP가 실패한 이유 - 즉, 프로그래머들이 LISP의 메타 프로그래밍을 이용하여 만든 vocabulary를 다른 프로그래머가 이해하고 유지보수할 수 없었다는 문제를 과연 조금 더 현대화된 에디터를 사용하는 것 만으로 극복할 수 있을까? 나는 일반 (meta가 아닌) 프로그래밍이 structured, OO, component-based등으로 진화해온 것 처럼 메타 프로그래밍에 있어서도 적절한 방법론이 나와야 한다고 생각한다. 특히 프로그래밍이 OO, component-based, service-oriented (SOAP)로 진화함에 따라 모듈간 독립성이 컴파일 타임에서 점점 런타임까지도 적용되고 모듈간 프로토콜이 정형화되어 간 것처럼 메타 프로그래밍에 있어서도 layer간 독립성이 더 보장되고 layer간 프로토콜이 정형화되어야 한다고 생각한다.