Как стать автором
Обновить

Комментарии 19

Я наивно полагал, что самая популярная утилита для работы с json из командной строки это jshon. Вдвое быстрее jq да и мне как человеку, для которого наиболее привычный язык — шелл скриптинг, синтаксис команд кажется наиболее внятным:

$ time for i in {1..100}; do jq '.["foo"] | .[0] | .["bar"]' <<< '{"foo": [{"bar": "value"}]}' >/dev/null; done   

real    0m0,288s
user    0m0,186s
sys     0m0,100s

$ time for i in {1..100}; do jshon -e foo -e 0 -e bar <<< '{"foo": [{"bar": "value"}]}' >/dev/null; done

real    0m0,158s
user    0m0,078s
sys     0m0,043s


Функциональности у jshon вроде меньше, но не помню ситуаций, чтобы мне её не хватало.
«Так и появилась идея написать fx с простым и понятным синтаксисом, который никогда не забудешь. А какой язык программирования знают все? Правильно — JavaScript. „
Опасная фраза, особенно в виде “знают все». Только за нее может минусов прилететь…
К счастью, не все знаю JavaScript.
Пожалуйста, хватит тащить JS туда, где он не нужен.
Кому-то не нужен, кому-то нужен, в чём проблема? Никого же силком не тащат, а для тех, кто с консолью на вы, но вынужден решать какую-то срочную задачу и знает js, вполне себе удобный инструмент может быть.
Мне кажется те, кто «с консолью на вы», не должны решать срочных задач в консоли, потому что в 99% случаев (appx/bome) это заканчивается поисками тех кто с консолью работает каждый день чтобы починить не работающий сервис.
Конечно, в продакшене — да. Но бывают и другие окружения совершенно не требовательные к компетенциям работающего. И если такие люди будут использовать хорошо им знакомый язык в рамках малознакомой системы, вероятность падения только уменьшится.

Мне сам подход непонятен — «инструмента не должно существовать, потому что он написан на языке, который мне не нравится». Кому-то он может быть полезен, а те, кому нравятся другие спокойно могут их использовать. Чем больше разнообразных инструментов доступно, тем лучше.
А он где-то нужен? Ну кроме как в качестве ассемблера для компиляции других языков в веб-приложения.
fx написана на js и требует среды исполнения. На сервак nodejs тащить как-то стремно. Вот если-бы вы fx на Си написали и использовали embedded js engine, типа Duktape, цены утиле было-бы гораздо больше.

У fx есть независимый бинарники: https://github.com/antonmedv/fx/releases
Просто качайте и используйте, никаких зависимостей.

Там внутри статически слинкованная нода и все зависимости, я правильно понимаю?
Так и появилась идея написать fx с простым и понятным синтаксисом, который никогда не забудешь.
я конечно извиняюсь, но для кого этот синтаксис будет простым и понятным- для js'еров? Например, для меня он не простой и не понятный

Для некоторых важно, что jq всего лишь один бинарник (~2mb). Так вот fx тоже имеет отдельные бинарники. Весят они немного больше (~30mb)
<зануда mode=on>Ну как бы не немного, а на порядок<зануда mode=off>

и вообще весь код fx <70 строк кода

это все хорошо, но при этом бинарник весит 35 Мб

Во всех остальных случаях — fx отличный выбор.
очень спорное утверждение

P.S.
как ни странно, но в плане работы с JSON мне нравится aws cli с его --query, который поддерживает JMESPath
Лучше бы к jq приделали yaml, чем изобретать велосипед со страпоном вместо седла.
Ну… тут конечно набросились выше, но я считаю, что автор сделал хорошее дело. Да, на продакшн я бы это не ставил. Даже в докер-контейнер затаскивать как временное решение для дебага — не захочется, особенно если ещё и с нодой сверху. Но если бы я писал много и часто на nodejs, то иметь такой же синтаксис для разбора выхлопа json локально в процессе разработки — вай нот? В общем, плюсую. Уверен, если популяризировать, то найдутся благодарные пользователи.
С одной стороны, что ставить на сервер ноду, что тащить её запакованную, а потом (что так, что эдак) грузить её рантайм ради простого скрипта это страшненько. Но когда мне понадобится обработать джсон из командной строки я предпочёл бы, чтобы там стояла вот такая фиговина, чем учить впопыхах ещё одну разновидность регулярок. Всё же у яваскрипта (а особенно в ес6) очень естественная и понятная работа с именно джсоном. Это при том, что по жизни я этот язык не люблю.

Простите, но я вижу в результатах тестов то, что утилита fx проигрывает в производительности jq на порядок, а не наоборот.

ДА. Именно это я и написал. :) Эта утилита только для разработки (1ms vs 35ms погоды не сделают)

А! Прошу прощения, я не так воспринял смысл последнего абзаца.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории