XML лучше YAML

Что: 58bb9df75946dd8f7fd8f52eac2ea8df66dc782e

Когда: 2023-09-20 18:27:25+03:00

XML лучше YAML

https://changelog.com/posts/xml-better-than-yaml
Статья начинается с утверждения:
    There's always something better than YAML
с которым невозможно поспорить. Пишешь 1.20, получаешь 1.2.
Плюс старая проблема с Норвегией (8976383f8feb44fca9cf0b8f4e614b853d671214).
Когда-то я тоже использовал YAML, но одумался. Особенно когда на работе
его хорошенько поиспользовали. YAML не может быть (адекватным) вариантом
-- никогда. XML местами может быть адекватен.

комментарий 0:

From: kmeaw
Date: 2023-09-20 20:48:54Z

А вот моя "любимая" особенность YAML - что напечатает эта программа?

import yaml
doc = '''
hosts:
  foo:
    dhcp-client-id: 1:00:50:19:47:22:59
    ipv4-address: 192.0.2.16
    ipv6-address: 2001:db8::210

  bar:
    dhcp-client-id: 1:00:50:19:47:22:60
    ipv4-address: 192.0.2.17
    ipv6-address: 2001:db8::211
'''
print(yaml.dump(yaml.safe_load(doc)))

А ещё можно вот так делать:

import yaml
doc = '''
!!python/object/new:os.system [uname -a]
'''
print(yaml.load(doc, Loader=yaml.UnsafeLoader))

и когда-то этот loader использовался по-умолчанию.

комментарий 1:

From: Sergey Matveev
Date: 2023-09-21 17:14:17Z


>А вот моя "любимая" особенность YAML - что напечатает эта программа?

Смело можно устраивать викторину типа "Своей игры". Игрок может выбрать
строчку этого конфига на которую он осмелится дать правильный ответ.

>print(yaml.load(doc, Loader=yaml.UnsafeLoader))
>и когда-то этот loader использовался по-умолчанию.

На работе вроде бы даже где-то использовали его, но на входе только
конфиги нами состряпанные. То что он был по-умолчанию -- самое страшное.