TeX와 SGML, 마크업 언어의 두 거대한 가족
TeX와 SGML을 중심으로, 마크업 언어의 문법적 특징을 분석하고, 두 가지 주요 분류를 제시함.
Markdown, Wiki, JSON 등은 임의의 텍스트 마크업에 적합하지 않다고 평가하며, 속성(Attributes)의 중요성을 강조함.
Lisp, KDL, Typst 등 새로운 마크업 언어에 대한 커뮤니티의 다양한 의견이 제시됨.
YAML의 복잡성과 JSON과의 관계에 대한 논쟁이 벌어짐.
마크업 언어의 두 가지 주요 문법적 분류
본문은 마크업 언어를 TeX 계열과 SGML 계열로 분류하고, 각 계열의 문법적 특징을 비교 분석한다. TeX 계열은 `\foo`와 같이 백슬래시를 사용하며, SGML 계열은 `<tag>`와 같이 태그를 사용한다. 저자는 Markdown, Wiki, JSON 등은 임의의 텍스트를 마크업하는 데 적합하지 않다고 주장하며, 속성(Attributes)의 중요성을 강조한다.
속성(Attributes)의 중요성
저자는 JSON이 마크업 언어가 아닌 이유로 속성(Attributes)의 부재를 지적한다. JSON은 트리 구조(Tree Structure)만을 지원하며, 속성을 표현하기 위해 별도의 노드를 사용해야 한다. 이는 마크업 언어의 유연성을 저해하며, 텍스트에 추가 정보를 덧붙이는 데 한계가 있다. 속성은 마크업 언어의 핵심 기능이며, JSON에서는 이를 제대로 지원하지 못한다.
Lisp, KDL, Typst 등 새로운 마크업 언어에 대한 논의
댓글에서는 Lisp, KDL, Typst 등 다양한 마크업 언어에 대한 의견이 제시되었다. Lisp은 괄호를 사용하여 명시적인 텍스트 인용과 노드를 표현하며, KDL(Key-Value Data Language)은 SGML의 대안으로 제시되어 속성, 타입 어노테이션, 간결한 구문을 제공한다. Typst는 TeX 계열에 속하며, 코드 모드 구문을 통해 속성에 표현식을 사용할 수 있다는 장점을 가진다.
YAML의 복잡성과 JSON과의 관계
논의에서는 YAML의 복잡성과 JSON과의 관계에 대한 비판적인 의견이 제시되었다. YAML은 JSON의 상위 집합으로 간주되지만, UTF-16 대신 UTF-8 유니코드 이스케이프를 사용하고, YAML 1.2 헤더가 필요하다는 문제점이 지적되었다. 또한, YAML 파서(Parser)의 구현 난이도가 높고, 구문적 모호성으로 인해 다양한 문제가 발생할 수 있다는 점이 강조되었다.