1. Требование было чтобы это не было бинарным форматом. Для того, чтобы девелоперы могли его части руками писать. 2. Надо сказать, что никто для system configuration из вышеперечисленных систем не использовал XML. То есть, все считают, что бинарные форматы - зло.
Ты не одинок. Мы все когда-то так считали, что он планировался 1) for human consumption и 2) to be self-descriptive.
А на самом деле ни то, ни другое.
И потом, XML - это синтаксис записи. Выбрать (и сменить) синтаксис - это элементарная подзадача. Сложность же вопроса состоит не в синтаксисе, а в семантике (как отображается семантика предметной области на конструкции, которые можно собрать из синтаксиса) и в менеджменте получившейся конструкции. XML тут ничего особого не даёт, кроме, может быть, XSD/RelaxNG для валидатора.
Здесь стоит вспомнить и страдания ребе metaclass, которому клиенты присылают CSV, завёрнутый в XML таги.
А что особенного было в самом M4? Вроде я когда-то краем глаза его доки смотрел, и ничего особенно жуткого в нём небыло. Мне казалось что свою дурную славу он заслужил из-за sendmail, а не из-за своих собстреввных особенностей.
> Мне казалось что свою дурную славу он заслужил из-за sendmail
А я разве как-то по-другому выразился? В этом историческом качестве он обладал удивительнейшим свойством, исключительно полезным для наших целей: его никто не хотел трогать, менять его макры.
Не самая простая модель исполнения (двойной evaluation), соглашения о лишних символах (dnl), невнятный дебаг...
Кстати, я забыл добавить, но до M4 мы для темплейтинга некоторое время использовали... cpp (сишный препроцессор). Он в какой-то мере более регулярный. Но в конце концов фич не хватило, и скатились на M4.
>В этом историческом качестве он обладал удивительнейшим > свойством, исключительно полезным для наших целей: его никто не хотел >трогать, менять его макры.
Великолепно!
Но и статья в цэлом -- очень ёмкая. Полезнее многих мегабайтов разномастного кода.
>Скорее всего этот опыт и привёл меня в итоге к функциональным языкам.
Comments 53
Reply
Ок, ок, всё понял, вопрос закрыт.
Reply
Reply
а m4 прекрасный инструмент, когда пройдешь порог непонимания - начинаешь уважать :)
Reply
Reply
2. Надо сказать, что никто для system configuration из вышеперечисленных систем не использовал XML. То есть, все считают, что бинарные форматы - зло.
Reply
Reply
А на самом деле ни то, ни другое.
И потом, XML - это синтаксис записи. Выбрать (и сменить) синтаксис - это элементарная подзадача. Сложность же вопроса состоит не в синтаксисе, а в семантике (как отображается семантика предметной области на конструкции, которые можно собрать из синтаксиса) и в менеджменте получившейся конструкции. XML тут ничего особого не даёт, кроме, может быть, XSD/RelaxNG для валидатора.
Здесь стоит вспомнить и страдания ребе metaclass, которому клиенты присылают CSV, завёрнутый в XML таги.
Reply
Reply
А я разве как-то по-другому выразился?
В этом историческом качестве он обладал удивительнейшим свойством, исключительно полезным для наших целей: его никто не хотел трогать, менять его макры.
Reply
Reply
Кстати, я забыл добавить, но до M4 мы для темплейтинга некоторое время использовали... cpp (сишный препроцессор). Он в какой-то мере более регулярный. Но в конце концов фич не хватило, и скатились на M4.
Reply
Reply
>В этом историческом качестве он обладал удивительнейшим
> свойством, исключительно полезным для наших целей: его никто не хотел >трогать, менять его макры.
Великолепно!
Но и статья в цэлом -- очень ёмкая. Полезнее многих мегабайтов разномастного кода.
>Скорее всего этот опыт и привёл меня в итоге к функциональным языкам.
А разве ваш стартап не на эрланге изначально?
Reply
В текущем стартапе почти всё на эрланге, конечно, но далеко не изначально:
http://lionet.info/pdf/2010-lev-walkin-erlang-experience.pdf
Reply
Leave a comment