default

За что я не люблю YAML

Спецификация JSON’а вмещается в пять страниц и её может читать пятиклассник. Однажды прочитанная, она укладывается в голову навсегда.

Спецификация YAML — это 84 страницы мелкого умного текста. Попробуйте запомнить, чем отличается unquoted, 'single-quoted', "double-quoted", | literal и > folded скаляры, и как в них работает удаление ведущих пробелов.

И ещё вот эта грабля с массивами и отображениями, эта дурацкая неоднородность в окрестности нуля:

# Массив из двух элементов
array2:
  - foo
  - bar

# Убираем один, получаем массив из одного элемента
array1:
  - foo
  #- bar

# Убираем один, получаем пустой массив?
array0:
  #- foo
  #- bar

# Отображение из двух ключей
map2:
  foo: bar
  baz: quux

# Убираем один, получаем отображение из одного ключа
map1:
  foo: bar
  #baz: quux

# Убираем один, получаем пустое отображение?
map0:
  #foo: bar
  #baz: quux

А вот фиг. Значения array0 и map0null.

Сейчас начнутся возражения, что если тебе нужен пустой массив или пустое отображение, то напиши [] или {} соответственно. Ну так продемонстрируйте, как это будет выглядеть в вышеприведённых примерах. Чтоб раскомментирование элемента немедленно приводило обратно к одноэлементной коллекции.

Опять-таки, если мы согласны писать скобки и запятые, почему мы не пишем JSON?

This entry was originally posted at http://yurikhan.dreamwidth.org/67566.html.
это мелочи по сравнению с тем, как yes становится true

Волосы дыбом. Никому нельзя верить. Все строки закавычивать в обязательном порядке. Все массивы — в квадратных скобках. Все отображения — в фигурных. Лёгким движением руки YAML превращается, превращается YAML, обратно в элегантный JSON.

ну вот топик поста меня не так сильно беспокоит, как перегиб в этом месте.
чего поделать, edn как формат тоже фиг продашь

Этот, что ли?

Я в принципе ничего особенно не имею против форматов данных, пока они остаются форматами данных. То есть, пока с ним взаимодействует программа и изредка её разработчики.

Плохо становится, когда формат данных начинают использовать в качестве языка конфигурации, программирования, запросов и/или шаблонов. Ansible, GYP, MongoDB и XSLT тому примеры.

ну типа лисп это единственный язык программирования, в котором код в скажем так жсонах
Научное слово называется homoiconic, и ←там их перечислено несколько штук кроме Лиспа.