TOML или JSON для описания Web-форм?

Что важнее: скорость или человекочитаемость

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Создатель сайта
Всего сообщений: 3355
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 1600

2
#1
Пишу свой framework MLFW, где одной из ключевых идей является разработка через конфигурацию. Поэтому предполагается для описания форм ввода данных использовать какой-нибудь язык сериализации данных для того, чтобы описывать быстро и просто. Когда-то что-то подобное пытался сделать на YAML, но у того обнаружилось слишком много недостатков: и читаемость не очень, и стандарт содержит слишком много неожиданных решений, и в плане эффективности по времени он показывает самые худшие результаты.
Поэтому сейчас выбираю между TOML и JSON. Плюсы JSON — встроенная поддержка в PHP (не нужно ставить сторонние классы) и более высокая скорость работы (к сожалению, данных по PHP не нашёл, но тесты на C++ и Go показывают существенное преимущество), а также единство стиля с другими частями frameworkа (в частности, правила роутинга у меня описываются на JSON). А у TOML, по сути, есть всего один плюс, но весьма существенный: гораздо более простой и удобный синтаксис, на котором описание формы можно сделать существенно быстрее. И вот никак не могу определиться.

Ребята, давайте жить спокойно!

4X_Pro
Создатель сайта
Всего сообщений: 3355
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 1600

0
#2
Наткнулся на ещё один подходящий для этих целей файловый формат: NEON (Nette object notation, так как создан авторами шаблонизатора Nette). Внешне похож на YAML, но при этом совместим с JSON (точнее, JSON можно рассматривать как его подмножество). Из недостатков — нет встроенной поддержки в PHP, нужно добавлять в зависимости пакет nette/neon. И, что самое плохое, он требует PHP 8 и выше, в то время, как я хочу оставить обратную совместимость хотя бы с 7.1. Работать с форматом предельно просто:
Neon::encode($value); // Returns $value converted to NEON Neon::encode($value, true); // Returns $value converted to multiline NEON

Ребята, давайте жить спокойно!

Одна страница
Распечатать

У вас нет прав для отправки сообщений в эту тему.

Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.