Собственно понадобились древовидных/иерархических конфиги для написания людьми. Такой себе DSL. Человек пишет декларативный конфиг - прога его обрабатывает и выдаёт результат.
Требования:
- Минимальное количество синтаксического шума.
- Коментарии.
- Многострочный текст.
- Иерархичность.
- Популярный формат, чтобы либа была для любого языка.
Что имеем:
YAML
Самый очевидный выбор. Но провозившись с ним неделю - я возненавидел его. Он до безобразия переусложнён и не очевиден. Я до сих пор не могу предугадать как мой конфиг будет распарсен - это провал. Я даже пытался написать простенький парсер, чтобы лучше понять его. Но только больше запутался.
XML
Тот случай, когда дедушка XML подходит лучше всего. Но хотелось бы что-то более простое.
JSON
Не подходит по всем параметрам. Не для людей.
JSON5
Ближе всего к идеалу, но малораспространён.
TOML
Всем хорош, но не древовидный (да, если костыль, но это тихий ужас).
Есть идеи?
PS: шутки про s-expressions не интересны