[О блоге] [наверх] [пред] [2023-09-20 18:27:25+03:00] [58bb9df75946dd8f7fd8f52eac2ea8df66dc782e]

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
    
    *** kmeaw [2023-09-20 21:48]:
    >А вот моя "любимая" особенность YAML - что напечатает эта программа?
    
    Смело можно устраивать викторину типа "Своей игры". Игрок может выбрать
    строчку этого конфига на которую он осмелится дать правильный ответ.
    
    >print(yaml.load(doc, Loader=yaml.UnsafeLoader))
    >и когда-то этот loader использовался по-умолчанию.
    
    На работе вроде бы даже где-то использовали его, но на входе только
    конфиги нами состряпанные. То что он был по-умолчанию -- самое страшное.