|
|
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые разработчики! Я вспомнил нашу с беседу с ErV по поводу языка определения данных (ЯОД) и решил поднять новый топик, поскольку задача хранения конфигов с вложенностями возникла и у меня. Основные требования - автономность, независимость от SQL-СУБД, и читабельность-принтабельность конфига. Решил почитать гугл и вспомнить то что знаю, на предмет ЯОД и выбрать подходящий. Значит, вот что я нашёл: XML YAML OGDL JSON SDL Lisp Кратко, по каждому, что я нашёл. XML Долго останавливатся не буду. Отмечу лишь, что форма сериализации XML сложновата для восприятия человеком. Особенно, если документ использует namespaces и большую вложенность тегов без indentation. Образец исходника: Код: plaintext Есть также желание избавится от required-хедера, который мешает некоторым оптимизациям (эту тему следует рассмотерть отдельно). Закрывающий тег и угловые символы-маркеры и обязательные кавычки также создаёт некоторый балласт для human-редактирования. Из плюсов - несколько layers парсинга типа BYTES-Last-Big-Endian characters, National Characters, XML-Well-formatting, Macro-processing, XML-Validation, XML-Transformation. YAML - Yet Another Markup Language http://en.wikipedia.org/wiki/YAML Про него написано - "human-readable data serialization format" Образец: Код: plaintext Из плюсов, отмечу явную декларированность типов данных Код: plaintext и возможность записать список в двух формах Код: plaintext Код: plaintext Минусы - использование spacers. JSON http://en.wikipedia.org/wiki/JSON http://en.wikipedia.org/wiki/JSONJavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects). Образец исходника: Код: plaintext В энциклопедии также написано, что JSON имеет отношение к технологии Ajax. OGDL http://ogdl.sourceforge.net/ http://ogdl.sourceforge.net/ OGDL is a structured textual format that represents information in the form of graphs, where the nodes are strings and the arcs or edges are spaces or indentation. Не берусь переводить т.к. не шибко силён в английском, но это что-то вроде "представления орграфа". Образец исходника (некий общий случай иерархич. документа): Код: plaintext Более интересный вариант. Третья вершина смотрит на первую (орграф). Код: plaintext Из минусов - настораживает злоупотребление spacers. Грамматика языка на них конкретно завязана как и в YAML. SDL http://www.ikayzo.org/confluence/display/SDL/Home http://www.ikayzo.org/confluence/display/SDL/HomeThe Simple Declarative Language provides an easy way to describe lists, maps, and trees of typed data in a compact, easy to read representation. Из комента следует, что - "...лёгкая форма представления деревьев, списков и карт." Код: plaintext Есть еще интересная форма задания элемента-по-умолчанию: Код: plaintext Lisp Чтобы далеко не ходить за примером, привожу который уже писали в вышеупомянутом топике. Код: plaintext Что могу сказать. Конвергенция кода и данных - это просто великолепно для тех, кто кодит искусственный интеллект. Однако для human-readable немножко страдает. В качестве вывода (для себя): Субъективно, нравится SDL, хотя, аргументов в пользу его использования я пока не нашёл в достаточном количестве. Поддержку API языков программирования для SDL я пока не рассматривал. Прочие форматы описания конфигов, такие, как Windows property-bag, Java-properties, Linux-like properties e.t.c я не рассматривал, т.к. считаю, что они не годятся на роль ЯОД или на роль языка "описания знаний". Бинарники типа db, dbm я не рассматривал по понятным причинам. Вот, в общем-то пока всё.. если у кого-то есть свои мысли - пишите. P.S. Возможно я чего-то упустил или забыл какой-то ЯОД. Это вполне может быть. Так-что извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 00:15 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
mayton по поводу языка определения данных (ЯОД) Вообще-то д.б. два языка - описания структуры данных и описание самих данных. И они ессно д.б. связаны. YAML можно взять за основу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 10:35 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
если конфиги надо писать/редактировать руками, то YAML, в ином случае - XML настораживающие вас spacers - это плюс, а не минус, потому что это удобно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 13:19 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
Было несколько неприятных случаев по работе, связанных с невозможностью распечатать на принтере исходники одного ЯП. Тоесть, распечатать из было конечно можно, только после печати в режиме autowrap words, исходники потеряли свой смысл. С тех пор я подозрительно отношусь с грамматике завязанной на количестве spacers между ключевыми словами ЯП. Впрочем это ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:47 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
maytonБыло несколько неприятных случаев по работе, связанных с невозможностью распечатать на принтере исходники одного ЯП. Тоесть, распечатать из было конечно можно, только после печати в режиме autowrap words, исходники потеряли свой смысл.То же самое будет с SDL: у него теги кончаются символом новой строки, поэтому если строку перевести, получится новый тег и ошибки синтаксиса не будет – в этом проявляется недостаток малой избыточности языка (для языка совсем без избыточности любая последовательность байт будет валидным документом). Проблемы с редактированием хмля не вижу, всё равно ни в одном из приведённых языков нет защиты от дурака, подобная защита реализуема единственным образом: специализированным редактором. Из приведённых языков хмл по читабельности превосходят разве что OGDL да SDL. Непонятно, чем не угодили неймспейсы; они как бы наоборот способствуют пониманию документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2008, 13:16 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
2 maXmo Расковырял SDL for Java. Namespaces тоже поддерживаются. Щас делаю поддержку SDL Serialization для своих библиотек. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2008, 18:55 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
интересно стало, такую штуку он как поймёт? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 11:46 |
|
||
|
В продолжение темы обсуждения YAML и прочее.
|
|||
|---|---|---|---|
|
#18+
Я хотел бы обратить уважаемое собрание на обмен данными в формате JSON. Вольшинство форматов обмена данными появились как бы из воображения - а JSON прямо из жизни. На самом деле это немного упрощенный синтаксис конструкторов объектов в JavaScript. Среди его преимуществ 1. Строгость и определенность (ведь это ЯП) 2. Простота и изящество (особенно в сравнении с XML) 3. Полное соответсвие объектной модели данных - веддь это конструкторы объектов. и что особенно приятно - возможность в некоторых языках, например в JavaScript, а теперь и в PHP5 при помощи вызова функции преобразовавь строку JSON в объект или ассоциативный массив (eval, json_decode) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35363359&tid=1345035]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 369ms |

| 0 / 0 |
