LINUX.ORG.RU

В чем суть TOML?

 , ,


1

3

Буквально то там, то здесь, всё чаще и чаще встречаю упоминания о TOML (Tom's Obvious, Minimal Language), относительно новом (2013) формате конфигурационных файлов.

https://github.com/toml-lang/toml

В чем его суть, чего начали обмазываться им? JSON уже не годен, намекают, что TOML — это тот самый долгожданный унифицированный формат для всего?

Немного странно, как по мне:

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
в первом случае, квадратные скобки это признак заголовка блока, а во втором — массив.

Имплементации есть практически на всём и для всего, плагины для редакторов, интеграция, вот это всё.

намекают, что TOML — это тот самый долгожданный унифицированный формат для всего?

TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.

Deleted ()

Как-то оно на ini-конфиг похоже. Только со списками.

aidan ★★★★ ()

redhat, дорогой друг. Это просто некрасиво создать тему и отписаться от нее.

nagibator ()
Ответ на: комментарий от nagibator

что такое «гитхаб-хипстота»?

смотрю он автор знакомого мне chronic, но ранее мне Tom Preston-Werner не встречался.

redhat ()
Ответ на: комментарий от aidan

Как-то оно на ini-конфиг похоже

Как что-то плохое. json/yaml/xml - вот это вот плохое, особенно yaml, и томл может их заменить везде, где конфиг надо править ручками. И это будет прекрасно.

entefeed ☆☆☆ ()
Ответ на: комментарий от nagibator

тебе-то какое дело до моих уведомлений? Я не хочу засорять их список, всегда в последнее время делаю так. Свои темы не забываю.

redhat ()

в тред кастуется Vit, как автор JS-YAML и Markdown-it и скорее всего имеющий что сказать по этому вопросу.

redhat ()
Ответ на: комментарий от redhat

Все привыкли и создается ощущение, что отвечаешь в пустоту. Это конечно не так, но ощущение то есть.

mandala ★★★★ ()
Ответ на: комментарий от entefeed

Не плохое. Но не вижу мега-революционности. Все и так пишут конфиги в виде «key=value».

aidan ★★★★ ()
Ответ на: комментарий от mandala

Все привыкли и создается ощущение, что отвечаешь в пустоту. Это конечно не так, но ощущение то есть.

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

Более того, никто здесь никому не нужен, как и его ценное мнение в большинстве случаев, за редким исключением :)

redhat ()

Еще одно модное ini-подобное говно.

tailgunner ★★★★★ ()
Ответ на: комментарий от nagibator

Всё ясно, я же читал с ним (и его напарником) несколько интервью, но позабыл ФИО!

redhat ()

Суть ТОМЛ в том, что известный человек может раскрутить даже школьную поделку.

Vit ★★★★★ ()

Нет никакой сути. Правильные конфиги — это у олдовых оконных менеджеров, типа fvwm и xmonad. Д'Артаньянам такое не под силу.

anonymous ()
Ответ на: комментарий от anonymous

Правильные конфиги — это у олдовых оконных менеджеров, типа fvwm и xmonad

А с каких пор xmonad успел стать олдовым?

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Ему уже 8 лет. Не 20, конечно, но время неумолимо.

anonymous ()
Ответ на: комментарий от entefeed

А что с yaml не так? По-моему, самый читаемый из тройки json/yaml/xml.

devsdc ★★ ()
Ответ на: комментарий от tailgunner

Однако соглашусь, это хоть и немало, но этого недостаточно для олдовости.

anonymous ()
Ответ на: комментарий от devsdc

Если коротко - yaml нихрена не очевидный.

Whitespace indentation is used to denote structure; however tab characters are never allowed as indentation.

Этот ад с табами и пробелами самый верный способ наебаться. Но даже если быть в курсе про табы, yaml править руками сложно. Например разные уровни отступов + multiline string, и все, сиди выковыривай и выравнивай, или обмазывайся плагинами к редактору. Питон и тот не такой упоротый по части indentation.

Yaml может быть человекочитаемый, но он точно не человекоредактируемый. Лучше уж json/xml/ini/toml, да что угодно, но не yaml.

entefeed ☆☆☆ ()
Ответ на: комментарий от entefeed

полагаешь, что есть большое число тех, кто работает с кодом (или конфигами, ладно), но до сих пор не включил себе в редакторе «пробелы вместо табов» или «tab = 4 пробела»?

redhat ()
Ответ на: комментарий от entefeed

согласен, когда начинают заводить шарманку насчет «такой синтаксис приучает писать красиво/правильно» — становится смешно, не, ну правда же нелепость.

redhat ()
Ответ на: комментарий от redhat

Конфиги ведь тоже разные бывают, их разные люди редактируют и разными редакторами. Я первый раз познакомился с yaml на древней фряхе, на которую залез только что. Т.е. голый vi. Воткнул в конф.ямл таб, посмотрел - внешне все ок, рестартую - хрен. Пришлось разбираться, что это за волшебный формат такой, и что ему надо. А был бы json/xml/whatever - сразу видно, где какую закорючку пропустил. И таких неочевидностей в ямле много, поэтому как заметил аффтар томла, у YAML «spec is like 80 pages long and gives me rage».

Короче, yaml - НЕ человекоредактируемый.

entefeed ☆☆☆ ()
Ответ на: комментарий от entefeed

я согласен с тезисом что отсутупы в ямле говно, но можно накидать еще примеров «таких неочевидностей в ямле много» пожалуйста?

val-amart ★★★★★ ()
Ответ на: комментарий от val-amart

Я уже упоминал выше

Например разные уровни отступов + multiline string

Хочешь еще? Их есть у меня. Смотрим в стандарт, видим что строки не требуют кавычек. Ямл этим даже понтуется, типа фича. Ок, например:

wtf: on
wat: ok
nowat: no

Получаем

 "wtf": true
 "wat": "ok"
 "nowat": false

entefeed ☆☆☆ ()
Ответ на: комментарий от entefeed

Ну, ёлки, ты бы ещё пожаловался на то, что заданное значение 0.10 парсится не как строка «0.10», а как число «0.1».

devsdc ★★ ()
Ответ на: комментарий от devsdc

Господин экстрасенс и заранее знает что on распарсится в true? Ну да, экстрасенсам очевидность не нужна. Хороший формат для конфигов.

entefeed ☆☆☆ ()
Ответ на: комментарий от entefeed

Да я не об этом. Я о том, что конкретно этот пример — проблема не строк (и якобы фичи yaml с отсутствием необходимости их обрамлять кавычками), а большого числа вариантов валидных строковых представлений различных типов в yaml-е.

Я так-то не спорю с тем, что yaml может быть не очень очевидным, если не лезть в документацию. Но, тем не менее, он по-своему удобен.

devsdc ★★ ()
Ответ на: комментарий от val-amart

и шо теперь использовать?

секции как в ини мне категорически не нравятся, лучше иерархии. но джсон и хмл слишком злоупотребляют экранированием и явной разметкой: к примеру, ключи имхо не должны быть в кавычках.

val-amart ★★★★★ ()
Ответ на: комментарий от entefeed

Чувствуется серьезный специалист. В 1.2 выпилили это. 5 лет назад.

Vit ★★★★★ ()
Ответ на: комментарий от val-amart

и шо теперь использовать?

yaml 1.2, и меньше слушать икспертов, выпавших из анабиоза времен 1.1.

Vit ★★★★★ ()
Ответ на: комментарий от val-amart

хмл слишком злоупотребляют экранированием

Экранировать тройку символов это не слишком. Переходи на UTF-8 уже.

Deleted ()

самый долгожданный унифицированный формат для всего?

Просто доведение до ума .ini конфигурационных файлов, ничего сверхъестественного не произошло.

Deleted ()
Ответ на: комментарий от Deleted

доведение до ума .ini

Ну если сравнивать у таким клозетом как .ini, тогда конечно

Давайте будем честными - делать гитхаб у него получается намного лучше, чем спецификации :)

Vit ★★★★★ ()

хороший, годный язык ИМХО.

emulek ()

В чем суть TOML?

Написано же:

But why?

Because we need a decent human-readable format that unambiguously maps to a hash table and the YAML spec is like 80 pages long and gives me rage. No, JSON doesn't count. You know why.

sT331h0rs3 ★★★★★ ()

Формат попахивает вендовым .ini

blexey ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.