Конфиг-файл здорового человека и YAML

небольшое сравнение
небольшое сравнение

Несколько раз по работе сталкивался с использованием YAML в промышленных количествах.
Крайний случай был особенно фееричен: благодаря чудесной (нет, обанутой) особенности синтаксиса пропали (игнорировались) настройки 50+ пушек в игре; там просто отступы были на 4 пробела больше и настройки как бы были, но как бы и нет.

Когда я выдумывал формат конфиг-файлов для своего движка, JSON ещё не был широко известен (или вообще неизвестен был, очень давно дело было), исходил из нехитрых цинично-прагматичных соображений:
■ легко читать
■ легко писать
■ легко diff’ить

В итоге получился примерно C-style синтаксис:

entity { type = "Crab-1" tags = "Enemy,Drone,Target" var { seek_speed = 14 destroy_speed = 26 destroy_range = 15 } part { type = "SkeletalMesh" id = "body" rc_name = "Crab-1'model" local_xform { rotation { y=180 } scale { x=1.2 } } } part { type = "KeyframedMotion" id = "primary" target = "body" blend_type = Override default_motion = "crab-1'idle" } // ... }

Чуть позже добавилась явная типизация, полезная в определённых ситуациях:

bg_color:c = #FF00FF length:n = 1.3 text:s = yes enabled:b = yes scale { x:f = 0x3F800000 y:f = 0x3F800000 z:f = 0x3F800000 } // binary float

Забавно, что в те времена я был убеждённым фанатом XML (и парсер до сих пор поддерживает XML как один из входных форматов) .
Но читать/писать XML-файлы вручную ну очень утомительно. Хуже того, просмотр diff’ов много-мегабайтных ХМЛ-ок надёжно отвращает от XML :)

Особенно забавно, что аффтары YAML утверждают, что они делали формат максимально читабельным для человека. Видимо курили ту же траву, что и аффтары питона...

1717
50 комментариев

Вкусовщина, справа вполне читаемый формат где меньше строк = быстрее просмотреть

9
Ответить

где меньше строк = быстрее просмотретьтебе бы поди и синтаксис perl понравился тогда :D

9
Ответить

Yaml это пиздец, но "крайний случай"... ты космонавт или сапёр?

9
Ответить

Крайней бывает только плоть

Ответить

я точно знаю, что это было не последнее моё столкновение с йамлами

Ответить

Языки с отступами вместо скобок придумали какие-то садисты-онанисты.

4
Ответить

там просто отступы были на 4 пробела больше и настройки как бы были, но как бы и не

Хз как так можно было обосраться, сейчас даже самая ссаная ide имеет подсветку с подсветкой структуры, сразу увидишь если конфиг не на том уровне вложенности
У опеншифта ещё и json scheme используется как второй уровень защиты, туда хуйню в принципе не получится вписать

2
Ответить