The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Представлена новая командная оболочка nushell"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлена новая командная оболочка nushell"  +/
Сообщение от opennews (??), 29-Авг-19, 11:30 
Опубликован (http://www.jonathanturner.org/2019/08/introducing-nushell.html) первый выпуск командной оболочки nushell (https://www.nushell.sh/), сочетающей возможности Power Shell и классических unix shell. Код написан на языке Rust и распространяется (https://github.com/nushell/nushell) под лицензией MIT. Проект изначально развивается как кросс-платформенный и поддерживает работу в Windows, macOS и Linux. Для расширения функциональности могут использоваться плагины (https://github.com/nushell/nushell/tree/master/src/plugins), взаимодействие с которыми осуществляется по протоколу JSON-RPC.

В оболочке применяется привычная для пользователей Unix система конвейеров в формате "команда|фильтры|обработчик вывода". По умолчанию вывода оформления при помощи команды autoview, использующей табличный формат, но возможно и применения команд для отображения бинарных данных и информации в древовидном представлении. Сильной стороной nushell является возможность манипуляции структурированными данными.


Оболочка позволяет структурировать вывод различных команд и содержимое файлов, и применять  произвольные фильтры, которые оформляются с использованием унифицированного синтаксиса, не требующего изучения опций командной строки каждой конкретной команды.  Например, nushell позволяет использовать такие конструкции, как "ls | where size > 10kb" и "ps | where cpu > 10", которые приведут к выводу только файлов размером больше 10Kb и процессов, которые потратили больше 10 секунд ресурсов CPU:

Для структурирования данных применяется ряд надстроек, которые разбирают вывод конкретных команд и типов файлов. Подобные надстройки предложены для команд cd, ls, ps, cp, mkdir, mv, date, rm (для вызова родных команд может применяться префикс "^", например вызов "^ls" приведёт к запуску системной утилиты ls). Имеются и специализированные команды, такие как open  для отображения информации о выбранном файле в табличном виде. Для форматов JSON, TOML и YAML поддерживается автоматический разбор.

Предоставляется большой набор инструкций для фильтрации структурированных  данных, позволяющих отсеивать строки, сортировать по столбцам, суммировать данные, производить простые вычисления, использовать счётчики значений, выполнять преобразование вывода в форматы  CSV, JSON, TOML и YAML. Для неструктурированных данных (текста) предлагаются инструкции для разбивки на столбцы и строки на основе символов-разделителей.

URL: http://www.jonathanturner.org/2019/08/introducing-nushell.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=51375

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Представлена новая командная оболочка nushell"  +14 +/
Сообщение от Аноним (1), 29-Авг-19, 11:30 
шота я не понял - зачем они написали павершел на хрусте, когда уже есть нормальный?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Представлена новая командная оболочка nushell"  –5 +/
Сообщение от Аноним (2), 29-Авг-19, 11:34 
заорал, сисярп который запускается пять лет это по твоему нормальный?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Представлена новая командная оболочка nushell"  –10 +/
Сообщение от пох. (?), 29-Авг-19, 11:44 
пихон у тебя что - быстрее, что-ли? Да ну, не звезди.

И ты уверен, что вот ета вот, на хрусте, будет быстрее? не, ну пока к нему модулей нет, из-за которых основные тормоза, наверное, будет...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

73. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от EnemyOfDemocracy (?), 29-Авг-19, 16:27 
У вас что, Интел-тормозинтел-решетинтел чтоль?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

82. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от пох. (?), 29-Авг-19, 17:38 
У вас-то на православном ель-брусе пихтон прям летает?

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

85. "Представлена новая командная оболочка nushell"  +/
Сообщение от Anonymoustus (ok), 29-Авг-19, 18:25 
> У вас-то на православном ель-брусе пихтон прям летает?

Разве уже окропили системные платы святой водой? Когда окропят, тогда и благодать снизойдёт.

Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

100. "Представлена новая командная оболочка nushell"  +/
Сообщение от bircoph (ok), 29-Авг-19, 21:33 
На Эльбрусе питон вполне сносно работает.
Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

174. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от D (?), 31-Авг-19, 16:14 
На этом список заканчивается.
Ответить | Правка | ^ к родителю #100 | Наверх | Cообщить модератору

200. "Представлена новая командная оболочка nushell"  +/
Сообщение от Андрей (??), 07-Сен-19, 18:32 
А представь-ка свой список, чтого должно работать?
И что ты подразумеваешь под "только питоном"? В этом и плюс скриптовых языков - от платформы не зависят, при наличии среды работают где угодно. Тажёлая математика давно в numpy вынесена.
А про Си ты, наверное, не слышал?
Ответить | Правка | ^ к родителю #174 | Наверх | Cообщить модератору

88. "Представлена новая командная оболочка nushell"  +4 +/
Сообщение от macfaq (?), 29-Авг-19, 19:27 
> пихон у тебя что - быстрее, что-ли? Да ну, не звезди.

Причём тут "пихон"?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от proninyaroslavemail (ok), 29-Авг-19, 11:45 
Тогда зачем писать шеллы если уже есть bash?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Представлена новая командная оболочка nushell"  +12 +/
Сообщение от Аноним (5), 29-Авг-19, 11:50 
Школота не знает что написать на расте и пишет то что уже написано.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

32. "Представлена новая командная оболочка nushell"  +12 +/
Сообщение от НяшМяш (ok), 29-Авг-19, 13:38 
Эх, если бы вся школота так обучалась...
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

40. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от freehckemail (ok), 29-Авг-19, 13:56 
> Школота не знает что написать на расте и пишет то что уже написано.

Окей, подкину школоте идейку:

Программа для обучения детей геометрии. Сверху 3D-изображение, которое можно вращать. Снизу -- командная строка, где можно вводить команды вида

<pre>
A = точка(0,0,0)
B = точка(1,0,0)
С = точка(0,1,0)
D = точка(1,1,1)
alpha = плоскость(A,B,C)
l = перпендикуляр(alpha,D)
X = пересечение(l,alpha)
</pre>

Синтаксис не принципиален.
Плюс снабдить это дело прувером, чтобы иметь возможность проверить решение.

Проблема в обучении детей геометрии в основном ведь связана с плохим пространственным воображением. Они просто не могут взять два куба, наложенных друг на друга, провести (допустим) ось через середины противоположных рёбер, повернуть один куб вокруг этой оси на 90 градусов, и представить после этого фигуру пересечения этих двух кубов.

А если бы была такая программа, задача существенно упростилась бы. Они бы всё увидели, повращали, выбрали бы удобный ракурс...

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

49. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (49), 29-Авг-19, 14:37 
OpenSCAD примерно так и работает, хотя там нет линий, только полигоны и тела.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

79. "Представлена новая командная оболочка nushell"  +/
Сообщение от None (??), 29-Авг-19, 17:06 
Там крутить муторно, хотя может я не знаю чего-то...

rotate([90,0,0]) {
translate([0,0,-5]){
rotate([0,0,135]) {
    cube(10,10,10);
};
}
};

translate([0,0,-5]){
rotate([0,0,135]) {
    cube(10,10,10);
};
}

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

51. "Представлена новая командная оболочка nushell"  +11 +/
Сообщение от AAA (??), 29-Авг-19, 14:46 
>... Они бы всё увидели, повращали, выбрали бы удобный ракурс...

Вы слишком хорошего мнения о детях. Пришлось пообщаться с детьми с 5 лет до 9-го класса (летний лагерь) - 90% ничего не надо, кроме сматфона. Их не лук соструганный самолично, ни компас из иголки, ни астрономия (оптический и радиотелескоп) не интересует. Мир вне смартфона ограничен пожрать да поспать :(

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

72. "Представлена новая командная оболочка nushell"  +18 +/
Сообщение от Ordu (ok), 29-Авг-19, 16:17 
> Их не лук соструганный самолично, ни компас из иголки, ни астрономия (оптический и радиотелескоп) не интересует.

Я работал с детьми в лагере, в формате психологической стажировки. В том числе и в возрасте 5-9 лет. Смен пять отработал. Со смартфонами были лишь минорные проблемы, типа на пятьдесят человек (в диапазоне 5-16) парочка постоянно пытается заныкаться куда-нибудь, и залипать в смартфон. Эти проблемы решаются индивидуально, там есть разные способы, но они сводятся к заключению сделки, типа "я не конфисковываю твой смартфон, но взамен ты ограничиваешь себя в его использовании, согласно правилам у нас есть два часа перед отбоем под смартфоны, но тебе я, так уж и быть, дам ещё час после обеда". Или ещё час после отбоя, если это подросток 14+. Это взаимовыгодный обмен который именно так и надо позиционировать: ты ему даёшь послабление правил, он за это выполняет их. Дети с радостью идут на это, потому что получить послабление правил -- это круто. Нарушение договорённости -- это очередной неприятный для ребёнка разговор, с угрозами конфискации смартфона. Или даже конфискация, после которой тебе придётся разговаривать со звонящими ребёнку родителями, при необходимости находя ребёнка и передавая трубку ему.

Если у вас в лагере были проблемы со смартфонами, то это значит, что либо у вас там не было ни одного достаточно квалифицированного специалиста по работе с детьми с соответствующим образованием и опытом, либо у вас была какая-то очень специальная выборка детей. Настолько специальная, что квалифицированные специалисты не смогли достаточно быстро (то есть буквально в первый день смены) сориентироваться, подобрать подходящие методы воздействия и за первую ночь переписать почасовой план мероприятий на смену и правила так, чтобы справиться с этой группой детей.

Если детям был неинтересен лук или астрономия, то я предполагаю это произошло потому, что вы предлагали им эти вещи в отрыве от игровой активности. С 12+ детьми это может иногда прокатить, но с детьми 5-9 это не сработает точно. Нужна игровая активность. Чё им этот телескоп, в который можно смотреть только отстояв очередь из других желающих? И чё там? Чернота усеянная туманом точек? Ну посмотрел, теперь всё? Можно я теперь в смартфон позалипаю? 5-9 лет -- это игра, игра и ещё раз игра. Причём как минимум каждая третья должна быть подвижной. И надо быть готовым к тому, что каждые 20 минут придётся менять активность, потому что старая уже надоела. Дети 5-9 лет ещё не научились сидеть неподвижно за партой 45 минут.

Если бы мне приспичило показать детям телескоп, то я бы сделал что-нибудь в стиле 15 минут рассказа об устройстве Солнечной Системы (с картинками), а потом 10-20 минут на то, чтобы каждый мог бы нарисовать эту Солнечную Систему. А, да, в промежутке между рассказами, можно было бы поиграть в Солнечную Систему, назначив роли планет, комет, астероидов, разыграв роль Солнца, и как-нибудь включив в игру подвижные элементы, типа побегать, попрыгать, поприседать, поотжиматься^W. Можно разбить их на пары, и предложить рисовать парами. А потом устроить представление рисунков, чтобы пара выходила бы перед всеми, рассказывала бы о рисунке, а остальные сидели бы в аудитории как настоящие учёные на конференции, и задавали бы вопросы. И я бы там сидел в аудитории, и задавал бы вопросы, следя за тем, чтобы каждому досталось бы хотя бы по два вопроса из аудитории и комплимент рисунку лично от меня. Вот после этого, я бы упомянул, что у нас может быть будет возможность посмотреть в настоящий телескоп, но это если местный астроном сможет выделить нам полчаса, если старшие дети не займут всё его время, и если руководитель смены разрешит нашей младшей группе задержаться после отбоя. После такого дети мне сами на голову сядут, чтобы я всё организовал. Пойдут со мной делегацией к руководителю смены и к астроному (которому обязательно нужно сделать коническую шапку со звёздами и халат ещё найти "астрономический"). Если же руководитель смены поставит условие типа "вы все съедите всё за обедом и ужином, и тогда я разрешу", то тогда детей уже будет не остановить, они силой заставят астронома пустить их поглазеть в телескоп.

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

83. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Анонимус_ (?), 29-Авг-19, 17:53 
> Если бы мне приспичило показать детям телескоп, то я бы сделал что-нибудь в стиле 15 минут рассказа об устройстве Солнечной Системы (с картинками), а потом 10-20 минут на то, чтобы каждый мог бы нарисовать эту Солнечную Систему. А, да, в промежутке между рассказами, можно было бы поиграть в Солнечную Систему, назначив роли планет, комет, астероидов, разыграв роль Солнца, и как-нибудь включив в игру подвижные элементы, типа побегать, попрыгать, поприседать, поотжиматься^W

И нафейоа?

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

Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

89. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (89), 29-Авг-19, 19:53 
А потому что дети исключительно редко начинают вдруг в один день по щелчку пальца интересоваться астрономией или физикой. И если, условно говоря, начать зачитывать им наименования всех космических объектов в солнечной системе в алфавитном порядке из справочника с указанием их классификации - тоже. Интерес к науке тоже нужно воспитать. А иначе так и будут думать что солнце вокруг земли вращается, и собирать клубнику с грядки вконтакте.
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

94. "Представлена новая командная оболочка nushell"  +/
Сообщение от zzz (??), 29-Авг-19, 21:15 
Натаскивают ботаников - орете, что всё остальные тупые. Натаскивают всех - орете, что ботаников отпугивают. Вам фиг проссышь, что вы хотите. Если вообще что-то хотите, кроме нытья про то, как всё не так и не эдак, как замшелый пох, который в каждой бочке затычка со своим нытьем о том, как ему всё не нравится.
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

96. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 29-Авг-19, 21:15 
>> Если бы мне приспичило показать детям телескоп, то я бы сделал что-нибудь в стиле 15 минут рассказа об устройстве Солнечной Системы (с картинками), а потом 10-20 минут на то, чтобы каждый мог бы нарисовать эту Солнечную Систему. А, да, в промежутке между рассказами, можно было бы поиграть в Солнечную Систему, назначив роли планет, комет, астероидов, разыграв роль Солнца, и как-нибудь включив в игру подвижные элементы, типа побегать, попрыгать, поприседать, поотжиматься^W
> И нафейоа?
> Все эта хрень только отпугивает нормальных ботаников, которым это действительно интересно.

В 5-9 лет не отпугивает. Наоборот привлекает. Бывают дети зашуганные и пугающиеся группы, но если это не диагноз уровня клинического психолога или психиатра, то на них главное не давить, они присмотрятся, им станет завидно, что другим весело, а им нет, и тоже включатся.

В 5-9 лет нет "нормальных ботаников", ботанство может проявляться в подростковом возрасте, но эта классификация совершенно неприменима к детям до пубертата. У них просто структура мотивации иная.

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

154. "Представлена новая командная оболочка nushell"  +/
Сообщение от анним (?), 30-Авг-19, 19:46 
А те, кто в запасе, исполняет роль комет B)
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

53. "Представлена новая командная оболочка nushell"  +4 +/
Сообщение от Ordu (ok), 29-Авг-19, 14:54 
> Проблема в обучении детей геометрии в основном ведь связана с плохим пространственным воображением.

Совершенно верно. Но пространственное воображение строится через моторную деятельность, причём 2d воображение -- это часть 3d воображения, в том смысле, что психика сначала учится работать с 3d, и лишь затем с 2d как с частным случаем. В чём собственно проблема школьной геометрии, которая пытается решать задачу задом наперёд. И это кончается именно тем, чем кончается: большинство не втыкает в планиметрию, но когда дело доходит до стереометрии лишь единицы могут с этим справиться. И могут они не благодаря тому, что школа им помогла, а благодаря тому, что они с рождения и лет до десяти как минимум, находились в достаточно богатой развивающей среде, созданной их родителями.

Поэтому, если хочется развивать пространственное воображение, нужны учебные пособия которые можно взять в руки и покрутить руками. Глядя на них, пытаясь решить какую-нибудь задачку. Например, вот у нас пять сложных объектов, какие два из них одинаковы (такие задачки любят включать в тесты на iq, но там вместо объектов изображения объектов с разных ракурсов). Или вот у нас есть кубик-рубик, давай научимся его складывать (следуя самому тупому алгоритму, чтобы не отвлекаться на эти детали). Или складывание фигурок из бумаги. Тут можно напридумывать массу других вещей, а можно не придумывать, а просто пошариться по магазинам развивающих игрушек для детей. Всё что угодно на мелкую моторику, манипуляции. Очень хорошо если при этом надо в уме держать невидимые части предмета (заднюю сторону кубика-рубика), ещё лучше, если надо мысленно манипулировать воображаемым образом невидимой части. Но при этом, особенно поначалу, все эти предметы должны позволять легко компенсировать провалы в памяти и нехватку воображения глазами (кубик-рубика можно повернуть и посмотреть, как выглядит задняя грань). Можно дополнить это уроками труда -- тут всё что угодно пойдёт, вырезание совка из жести или кройка и шитьё -- без разницы. Некоторые виды спорта, я думаю, могут помочь -- они конечно больше заточены на грубую моторику, но и тем не менее они требуют способностей к пространственному воображению, с тем чтобы предсказывать движение мяча или соперников, учитывая направление, скорость, время и прочие факторы.

Когда с этим человек поиграется и наберёт достаточно опыта, можно уходить от предметов, заменяя их изображениями предметов. На этом этапе уже можно работать с монитором, и здесь можно написать какую-то программу в помощь.

Но проблема в том, что с этим программист не справится. Подобный софт должны разрабывать психологи и педагоги, постоянно ставя эксперименты над людьми, сравнивая как то или иное упражнение помогает развитию пространственного воображения. Какие комбинации упражнений более эффективны. Можно ли проведя предварительное тестирование человека, подобрать индивидуальный курс упражнений, который ещё больше повысит эффективность? Программист скорее всего придумает что-то типа того, что предложил ты, и в лучшем случае это не повредит развитию. В худшем случае, дети впадут в ступор от подобных уроков, решат что они тупые или ещё каким-то образом испорченные и не такие (один из довольно распространённых страхов у детей), и начнут бояться этих уроков, потому что они напоминают им о том, что они неполноценны.

Твоё предложение ужасно тем, что ты предлагаешь использовать 3d координаты человеку, у которого проблемы с пространственным воображением. Координаты -- это символьное мышление, все эти слова типа "плокость", "перпендикуляр" -- это тоже символьное мышление. Твоя идея вся заточена на увязывание символьного мышления и пространственного. Это очень важно для освоения геометрии, но если пространственного мышления нет или оно недоразвито, то увязывать будет нечего. И всё что испытает школьник от работы с твоей программой -- беспомощность и неспособность справиться с поставленной задачей. Если ребёнок умненький, может быть он научится компенсировать символьным мышлением нехватку пространственного, и из этого может быть и выйдет что-нибудь хорошее, может даже гениальное. Но если он среднестатистический и без пространственного воображения, то всё к чему он придёт -- к твёрдому убеждению, что геометрия не для него, что геометрия ему не нужна и никогда не понадобиться в жизни, и что министерство образования намеренно включает геометрию в школьную программу, чтобы сделать его жизнь невыносимой.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

64. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от myhand (ok), 29-Авг-19, 15:12 
>> Проблема в обучении детей геометрии в основном ведь связана с плохим пространственным воображением.
> Совершенно верно. Но пространственное воображение строится через моторную деятельность,
> причём 2d воображение -- это часть 3d воображения, в том смысле,
> что психика сначала учится работать с 3d, и лишь затем с
> 2d как с частным случаем. В чём собственно проблема школьной геометрии,
> которая пытается решать задачу задом наперёд.

Какой дурак вам сказал, что школьная геометрия нужна для развития "пространственного
воображения"?  Она нужна для нормального знакомства с математикой: что такое
аксиоматика, с чем едят доказательства и т.п.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

76. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Anonymoustus (ok), 29-Авг-19, 16:51 
Этот аноним, похоже, тот самый шизик, что постил на Хабре статьи о том, как его не хотели лечить врачи-убийцы из карательной психиатрии и поэтому он решил обучиться психологии и вылечить себя сам. Запущенный случай. Я эту его графоманию проматываю, не глядя.
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

119. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Ололо (?), 30-Авг-19, 07:44 
Ссылку дашь? Поржать.
Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

132. "Представлена новая командная оболочка nushell"  +/
Сообщение от Anonymoustus (ok), 30-Авг-19, 11:33 
> Ссылку дашь? Поржать.

Может и не он, но графомания весьма похожа:

https://habr.com/ru/post/464011/

https://habr.com/ru/users/hdablin/

Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

157. "Представлена новая командная оболочка nushell"  +/
Сообщение от анним (?), 30-Авг-19, 20:50 
Если тот психолог лучше, чем программист, то точно не он.
Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

158. "Представлена новая командная оболочка nushell"  +/
Сообщение от Anonymoustus (ok), 30-Авг-19, 21:10 
> Если тот психолог лучше, чем программист, то точно не он.

Не уверен, что можно напрямую сравнивать квалификацию психолога и программиста.

Что касается программистской квалификации, то, из замеченного мной, он не осилил разобраться в Lua (В Lua, Карл!) Здешний так и не понял, что такое Юникс, несмотря на чтение книг (#142), и не в состоянии увидеть прямую причинно-следственную связь и преемственность между Мультиксом и Юниксом. Впрочем, это свойственно многим опоздавшим родиться. Хотя непонимание, что из двух связанных причинно-следственной связью вещей первично, а что вторично — это таки звоночек. Что касается графомании, то она здесь налицо, причём в формате «словесного недержания». Иногда он даже пишет что-то здравое.

Ответить | Правка | ^ к родителю #157 | Наверх | Cообщить модератору

98. "Представлена новая командная оболочка nushell"  +/
Сообщение от zzz (??), 29-Авг-19, 21:32 
А потом эти же люди визжат, что дети стали тупые, потому что карлик, егэ и олигархи. Как я уже говорил выше - вас фиг проссышь, чего вы хотите - то ли понимания геометрии, то ли удовлетворения своего галактических размеров ЧСВ в рамках дискуссии в формате "Слыш, ты, идиот, ....!"
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

122. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Аноним (122), 30-Авг-19, 09:30 
Бывают люди (и когда-то дети) сложно принимающие математику и инженерно-физические штуки.

Это, ну, как ... - вот им так дано и всё.

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

170. "Представлена новая командная оболочка nushell"  +/
Сообщение от myhand (ok), 31-Авг-19, 08:36 
ЧСХ, можно совершенно оправданно "визжать".  Совершенно не понимая при этом настоящих причин ситуации, от которой хочется это делать...
Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

155. "Представлена новая командная оболочка nushell"  +/
Сообщение от анним (?), 30-Авг-19, 19:53 
И что с аксиоматикой потом делать? А с доказательствами? За них берут на работу?
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

171. "Представлена новая командная оболочка nushell"  +/
Сообщение от myhand (ok), 31-Авг-19, 08:37 
Берут.  Сразу после школы можете идти работать овощем в пятерочку.  Собственно, а какой работы вы для себя ожидали?
Ответить | Правка | ^ к родителю #155 | Наверх | Cообщить модератору

60. "Представлена новая командная оболочка nushell"  +/
Сообщение от myhand (ok), 29-Авг-19, 15:07 
Извиняюсь, а в где тут было "обучение геометрии"?
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

75. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от Anonymoustus (ok), 29-Авг-19, 16:48 
Детям надо живые кубики из картона показывать и давать вертеть в руках, а не компьютерные картинки.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

81. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним (81), 29-Авг-19, 17:36 
В geogebra этого нет?
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

104. "Представлена новая командная оболочка nushell"  +/
Сообщение от Sw00p aka Jerom (?), 29-Авг-19, 21:46 
geogebra есть :)
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

121. "Представлена новая командная оболочка nushell"  +/
Сообщение от freehckemail (ok), 30-Авг-19, 09:24 
> geogebra есть :)

Хм. Прувера в ней точно нет, как я вижу. Но вообще, она за последние годы далеко шагнула вперёд. Хороша. Спасибо, буду её советовать.

Ответить | Правка | ^ к родителю #104 | Наверх | Cообщить модератору

11. "Представлена новая командная оболочка nushell"  +7 +/
Сообщение от Wilem (?), 29-Авг-19, 12:19 
У повершелла чудовищный синтаксис.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

35. "Представлена новая командная оболочка nushell"  +/
Сообщение от пох. (?), 29-Авг-19, 13:39 
если ЭТО научится чему-то посложнее - у него такой тоже будет
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

77. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Anonymoustus (ok), 29-Авг-19, 16:52 
> У повершелла чудовищный синтаксис.

В нём есть сокращения. Но без знания чудовищного синтаксиса полных команд сокращений этих не понять.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

6. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (5), 29-Авг-19, 11:50 
Не нужно написанное на не нужном.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Представлена новая командная оболочка nushell"  +4 +/
Сообщение от Аноним (7), 29-Авг-19, 12:01 
Хотел скачать, а там
>A modern shell for the GitHub era
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

46. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от Аноним84701 (ok), 29-Авг-19, 14:30 
> Хотел скачать, а там
>>A modern shell for the GitHub era

Зато самое главное в проекте не забыли:
https://github.com/nushell/nushell/blob/master/CODE_OF_CONDU...


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

65. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (65), 29-Авг-19, 15:27 
> our community a harassment-free experience

В общем, ни ты проект, ни проект тебя уже не затрахаете. Ляпота ж!

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

160. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:02 
> "ls | where size > 10kb"

...а потом эта гитхабовая гопота внезапно откроет для себя перенаправление вывода "в баше"...

Эх.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

189. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Аноним (189), 02-Сен-19, 11:09 
У них есть для этих целей save|load. Не то же самое, но задачу решает.
Ответить | Правка | ^ к родителю #160 | Наверх | Cообщить модератору

202. "Представлена новая командная оболочка nushell"  +/
Сообщение от annual slayer (?), 27-Сен-19, 01:07 
даже в фише одумались и вернули башевские штуки типа "&&" которые там принципиально отутствовали долгое время
Ответить | Правка | ^ к родителю #189 | Наверх | Cообщить модератору

8. "Представлена новая командная оболочка nushell"  +14 +/
Сообщение от Аноним (8), 29-Авг-19, 12:03 
>сочетающей возможности Power Shell

Пожалуйста, не надо!


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от Аноним (9), 29-Авг-19, 12:10 
> Например, nushell позволяет использовать такие конструкции, как "ls | where size > 10kb" и "ps | where cpu > 10"

bash-скрипты позволяют в 10 раз больше. Это для тех тупеньких админов, которые не осилили?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Представлена новая командная оболочка nushell"  +8 +/
Сообщение от anonymoussssss (?), 29-Авг-19, 12:13 
Это для вендузятников, у них же нормального шелла не завезли.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от anonimbl (?), 29-Авг-19, 12:22 
в винде есть нормальный bash.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от anonymoussssss (?), 29-Авг-19, 12:31 
Через WSL2? Такое себе удовольствие виртуалку ради шелла запускать. Ещё и занимает 2 ГБ или около того.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

33. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от НяшМяш (ok), 29-Авг-19, 13:39 
Запускай через WSL1
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

66. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Аноним (65), 29-Авг-19, 15:28 
Наличие на машине WSL запускает Hyper-V всегда, даже если ты не юзаешь WSL в конкретный момент. Т.е. старт машины и расход ресурсов у тебя всегда будет дороже и дольше, потому что ты вообще WSL установил.

Плати всегда, пользуйся когда захочешь!

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

90. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от НяшМяш (ok), 29-Авг-19, 20:17 
Как же я люблю экспертов с опеннета. Вы хотя бы изучите предмет своего хейта. WSL1 не использует виртуализацию от слова вообще. Это прослойка, которая реализует ограниченный набор апи ядра, благодаря чему работает большинство вещей типа баша. Линукс процессы даже видны в диспетчере задач рядом с виндовыми.

Если бы был активен Hyper-V во время работы первого WSL, то я бы об этом сразу узнал, потому что перестал бы работать VMware - он сразу ругается на несовместимость.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

91. "Представлена новая командная оболочка nushell"  +/
Сообщение от anonymoussssss (?), 29-Авг-19, 20:34 
Наверное он спутал с WSL2. Как бы то ни было, на сколько мне известно поддерживается сейчас только WSL2.
Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

111. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от НяшМяш (ok), 29-Авг-19, 23:33 
Да вы издеваетесь что ли? WSL2 ещё даже в релиз не вышел, он доступен только для Windows Insiders ветки.
Ответить | Правка | ^ к родителю #91 | Наверх | Cообщить модератору

167. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от xm (ok), 31-Авг-19, 00:49 
велкам в чудесный мир искпердов оупеннет
Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

181. "Представлена новая командная оболочка nushell"  +/
Сообщение от rico (ok), 01-Сен-19, 21:00 
cygwin
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Аноним (9), 29-Авг-19, 12:32 
Может и есть, но только зачем тут винда? :)
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

101. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (101), 29-Авг-19, 21:34 
> в винде есть нормальный bash.

Сначала попробуйте хорошенько. Потом только оцените.

P.S. Работа с json/yaml - это очень Ок. Но, по ходу, у них ради этого надо заново написать весь Бизи Бокс с Ко' Утилс. ))))

Прикольная новость.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

115. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от _ (??), 30-Авг-19, 04:45 
>P.S. Работа с json/yaml - это очень Ок.

Пффф ...

        jq is a tool for processing JSON inputs, applying the
        given filter to its JSON text inputs and producing the
        filter's results as JSON on standard output.

и не лохматьте мне ****
:-)

Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

123. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Аноним (122), 30-Авг-19, 09:33 
Ямла нет,и нет отдачи резулбтата в json vи т.п. Есть yq, но в поисковиках, в моём варике в Убу не завезди.


Это ведь АПИ. Стреляешь запросом из CLI и прилетает ответ в json/yaml/подобное.

Рай для автоматизации.

Ответить | Правка | ^ к родителю #115 | Наверх | Cообщить модератору

161. "Представлена новая командная оболочка nushell"  +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:03 
Понимаете, юниксовый шелл силён не сам по себе, а всем тем, что вокруг него существует.  Это, гругря, тюбик суперклея, а не пятиколёсный велосипед с тремя зонтиками (и всё квадратное).
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

198. "Представлена новая командная оболочка nushell"  +/
Сообщение от myhand (ok), 03-Сен-19, 16:30 
> Это, гругря, тюбик суперклея

А моя рука тянется почему-то к пист^Wсравнению с соплями...  Гругря, таки клей, да.

Ответить | Правка | ^ к родителю #161 | Наверх | Cообщить модератору

15. "Представлена новая командная оболочка nushell"  +/
Сообщение от Wilem (?), 29-Авг-19, 12:32 
Это для умненьких разработчиков, понимающих силу и удобство единого набора операций над единым форматом данных. Ты, видимо, не понял про что шелл и чем он отличается от беша. Он на самом деле абсолютно не пригоден для работы в текущем виде, это фактически демо. Но концепция - уже реализованная и работающая - офигительная.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

18. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Аноним (9), 29-Авг-19, 12:37 
Проще надо быть, если хочешь, чтобы тебя понимали.
Разработчикам шелл скорее всего все-таки не нужен.

> Он на самом деле абсолютно не пригоден для работы в текущем виде

Какой работы?? Ты про какой-то реалтайм или про чо вообще?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

42. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Ordu (ok), 29-Авг-19, 14:15 
> Разработчикам шелл скорее всего все-таки не нужен.

Сидящим в VSCode может и не нужен, а если ты работаешь с файлами через emacs/vim/bash, то без шелла там никуда.

> Какой работы?? Ты про какой-то реалтайм или про чо вообще?

Я не он, но если ты под реалтаймом подразумеваешь интерактивную работу, то, думаю, ответом будет "да". sh по жизни развивался не зная чем он хочет быть, скрипт-языком или интерактивным шеллом. Из-за этого он и как скрипт-язык невыносимо плох, и как интерактивный шелл не фонтан.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

106. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 29-Авг-19, 22:45 
Разработчикам не нужен шелл - это мощно. А что им нужно, Проводник? Они не люди что ли? Разработчик это синоним программист в данном случае, а программист постоянно занимается внезапно программированием, и всякие шеллы постоянно используются для скриптов этими программистами.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

128. "Представлена новая командная оболочка nushell"  +/
Сообщение от пох. (?), 30-Авг-19, 11:09 
> Разработчикам не нужен шелл - это мощно. А что им нужно, Проводник?
> Они не люди что ли? Разработчик это синоним программист в данном
> случае, а программист постоянно занимается внезапно программированием, и всякие шеллы
> постоянно используются для скриптов этими программистами.

не смешите мои тапочки. современный разработчик пользуется шеллом, копипастя туда со стековерфлоу sudo ls -l
(он не знает что делает первая команда, и зачем она ненужна - тоже. Ему так сказали когда-то - все команды начинать с sudo. А если и не сказали - в копипасте будет так.)

Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

133. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Anonymoustus (ok), 30-Авг-19, 11:40 
> не смешите мои тапочки. современный разработчик пользуется шеллом, копипастя туда со стековерфлоу
> sudo ls -l
> (он не знает что делает первая команда, и зачем она ненужна -
> тоже. Ему так сказали когда-то - все команды начинать с sudo.
> А если и не сказали - в копипасте будет так.)

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

Ответить | Правка | ^ к родителю #128 | Наверх | Cообщить модератору

144. "Представлена новая командная оболочка nushell"  +/
Сообщение от Wilem (?), 30-Авг-19, 18:04 
Разработчики разные бывают. Речь про нормальных, которые и делают всю работу по существу. Зачем обсуждать криворуких, которым ничего не надо - непонятно.
Ответить | Правка | ^ к родителю #128 | Наверх | Cообщить модератору

163. "Представлена новая командная оболочка nushell"  +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:12 
Кто не видит филерукости того организма, который выродил сабж -- тот обсуждать сорта разработчиков тем более не дорос, увы и ах.  Хотя Даннинг и Крюгер наверняка бы ухмыльнулись.

Лет десять-пятнадцать-двадцать назад видел обсуждение того, как можно попытаться сконструировать юниксовый подход со структурированными данными.  То ли у Витуса, то ли raorn@ со товарищи думали -- сходу даже не вспомню.

Так вот _гораздо_ более умные люди, чем вот это вот "поколение гибхаба", тогда к более-менее общему решению не пришли.  Может, потому, что "cpu > 10" (десять чего?  штук, процентов, килограмм?) в такие ворота не лезет?..

Ответить | Правка | ^ к родителю #144 | Наверх | Cообщить модератору

183. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (189), 02-Сен-19, 04:51 
Почему бы не иметь для всех команд флаг для вывода структурированной информации? Попроще будет парсить, чем портянками на баше + грепом/седом/авк.

>Может, потому, что "cpu > 10" (десять чего?  штук, процентов, килограмм?) в такие ворота не лезет?

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

Ответить | Правка | ^ к родителю #163 | Наверх | Cообщить модератору

37. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от myhand (ok), 29-Авг-19, 13:50 
Опытные разработчики давно уже что-то вроде jupyter notebook используют...
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

103. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (101), 29-Авг-19, 21:38 
Тока там библиотеки отфильтрованы из Пипа, славного своей лёгкой опомоеннностью.

А нужны стабилбные и отлаженные инструменты. Которые не исчезнут через два года на платформе продуктивных серверов.

Пишут в Юпитерах, да они на поверку ерундовистые IT'шники. Так - ... художники.

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

45. "Представлена новая командная оболочка nushell"  +/
Сообщение от kai3341 (ok), 29-Авг-19, 14:26 
>  Это для умненьких разработчиков, понимающих силу и удобство единого набора операций над единым форматом данных. Ты, видимо, не понял про что шелл и чем он отличается от беша. Он на самом деле абсолютно не пригоден для работы в текущем виде, это фактически демо. Но концепция - уже реализованная и работающая - офигительная.

Два чаю вам. Идея в том, что в stdout сегодня пишется не поток байт, а структурированная информация. К структурированной информации же можно применять фильтрацию, конвертацию, аггрегирование.

В своё время очень искал некую помесь bash и SQL, когда логи лопатил

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

50. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от user90 (?), 29-Авг-19, 14:39 
Так и нужно было говорить: передаются объекты.
Но вспомни, что шелл используется для администрирования. Итак, в итоге у нас получается "объектно-ориентированное администрирование", ыыыы. Подобное - особенно в текстовой консольке - сложно даже под тяжелыми галлюциногенами представить..
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

56. "Представлена новая командная оболочка nushell"  +/
Сообщение от Crazy Alex (??), 29-Авг-19, 14:57 
Ну вот если кто-то соорудит простой и удобный гибрид - тогда, может, и взлетит. Думаю, никто не будет против того, чтобы там, где таблица, прилетала таки таблица, заранее корректно разделённая и без нужды в экранировании, если это не будет ломать уже привычные вещи. Что, например, подразумевает, что на вход "старой" тулзы, ожидающей текст, должен прилететь именно текст, обратно слепленный из этой таблицы.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

59. "Представлена новая командная оболочка nushell"  +/
Сообщение от user90 (?), 29-Авг-19, 15:03 
Такой - не соорудит. В итоге все равно выйдет что-то мышекликательное и с картинками. На электроне))
Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

80. "Представлена новая командная оболочка nushell"  +/
Сообщение от Crazy Alex (ok), 29-Авг-19, 17:16 
Это совсем другой вопрос
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

78. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от kai3341 (ok), 29-Авг-19, 16:55 
Вовсе не обязательно делать nushell шеллом по умолчанию -- структурированный stdout бывает реально редко. Но он может простимулировать добавление структурированного stdout в софт. Тут кого прижало, тот и сделал патч
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

146. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 30-Авг-19, 18:26 
> Но вспомни, что шелл используется для администрирования.

Шелл используется в основном для программирования. Ещё небольшая часть использования шелла - это интерфейс для человека, то есть интерактивный режим. "Администрирование" это что-то размытое. Для программирования беш удобен только до определённого предела и проблем и неудобств с ним - завались. В этом смысле что-то типа `nushell` - отличная штука. Когда допилят функционал.

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

55. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от анонн (ok), 29-Авг-19, 14:56 
> Два чаю вам. Идея в том, что в stdout сегодня пишется не
> поток байт, а структурированная информация. К структурированной информации же можно применять
> фильтрацию, конвертацию, аггрегирование.

Есть (причем давние) попытки с прикруткой libxo:


% ps --libxo json|jq  
{
  "process-information": {
    "process": [
      {
        "pid": "77004",
        "terminal-name": "v7 ",
        "state": "I",
        "cpu-time": "0:00,36",
        "command": "-zsh (zsh)"
      },
      {
        "pid": "83425",
        "terminal-name": "v7 ",
        "state": "I+",
        "cpu-time": "0:00,01",
        "command": "/bin/sh /usr/local/bin/startx"
      },

% netstat --libxo json|jq                                                      
{
  "statistics": {
    "socket": [
      {
        "protocol": "tcp4",
        "receive-bytes-waiting": 0,
        "send-bytes-waiting": 0,
        "local": {
          "address": "XXX.XXX.XXX.XXX",
          "port": "34508"
        },  
        "remote": {
          "address": "wfe0.nyi.freebsd",
          "port": "https"
        },
        "tcp-state": "CLOSE_WAIT "
      },

seq 3|wc --libxo xml                                                        
<wc><file><lines>3</lines><words>3</words><characters>6</characters></file></wc>        


Но толку-то, если оно более нигде не поддерживается …

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

84. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Дон Ягон (ok), 29-Авг-19, 17:58 
> Есть (причем давние) попытки с прикруткой libxo

Кстати да, вспомнить эту активность во FreeBSD в контексте темы новости уместно.

> Но толку-то, если оно более нигде не поддерживается

Ну почему: можно пайпить в какой-нибудь jq или что-то подобное. Это едва ли всегда будет удобнее, чем стандартная связка из возможностей shell + sed + awk, но иногда может быть и удобнее.

У меня к этому другая претензия: очень часто это попахивает оверинжинирингом.
Например, зачем это в ls или в том же wc?
Примерно все языки позволяют тривиально воспроизводить функционал ls и wc (и тому подобное).
Точно ли нужно вкорячивать это в стандартные утилиты, а не написать нужную тебе логику на нужном тебе ЯП?

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

87. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от анонн (ok), 29-Авг-19, 19:04 
> Ну почему: можно пайпить в какой-нибудь jq или что-то подобное. Это едва
> ли всегда будет удобнее, чем стандартная связка из возможностей shell +
> sed + awk, но иногда может быть и удобнее.

Можно, но на мой взгляд, это будет все равно костыль/полумера - передаем через пайп данные в виде текста, только в дополнительной обертке + с сильным оверхедом, да еще и только для вывода данных - "скормить" вывод в пайп следующей стандартной утилите без доп. обработки не получится.

Хотя, с другой стороны, задумано libxo вообще-то для "форматированного вывода" - с чем оно, имхо, прекрасно справляется.

> У меня к этому другая претензия: очень часто это попахивает оверинжинирингом.Например, зачем это в ls или в том же wc?
> Примерно все языки позволяют тривиально воспроизводить функционал ls и wc (и тому
> подобное).
> Точно ли нужно вкорячивать это в стандартные утилиты, а не написать нужную
> тебе логику на нужном тебе ЯП?

А вот тут я не согласен - посмотрите на реализацию этого в wc (в ls как раз еще не встроили)
https://github.com/freebsd/freebsd/blob/master/usr.bin/wc/wc.c


if (doline)
        xo_emit_h(xop, " {:lines/%7ju/%ju}", linect);
    if (doword)
        xo_emit_h(xop, " {:words/%7ju/%ju}", wordct);
    if (dochar || domulti)
        xo_emit_h(xop, " {:characters/%7ju/%ju}", charct);
    if (dolongline)
        xo_emit_h(xop, " {:long-lines/%7ju/%ju}", llct);
    if (file != NULL)
        xo_emit_h(xop, " {:filename/%s}\n", file);

и сравните с
https://github.com/wertarbyte/coreutils/blob/master/src/wc.c
(в котором кстати в 2 раза больше строк кода ;) )

if (print_lines)
    {
      printf (format_int, number_width, umaxtostr (lines, buf));
      format_int = format_sp_int;
    }
  if (print_words)
    {
      printf (format_int, number_width, umaxtostr (words, buf));
      format_int = format_sp_int;
    }
  if (print_chars)
    {
      printf (format_int, number_width, umaxtostr (chars, buf));
      format_int = format_sp_int;
    }

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

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

113. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 30-Авг-19, 03:31 
> Можно, но на мой взгляд, это будет все равно костыль/полумера - передаем через пайп данные в виде текста, только в дополнительной обертке + с сильным оверхедом, да еще и только для вывода данных - "скормить" вывод в пайп следующей стандартной утилите без доп. обработки не получится.

Имхо, это не столько костыль или полумера, сколько "не нужно" в бОльшей части случаев. А там, где от этого польза таки есть, она незначительна и представляет собой упрощение написания команды и/или её сокращение и/или более явное описание того, что хочется получить.

> Хотя, с другой стороны, задумано libxo вообще-то для "форматированного вывода" - с чем оно, имхо, прекрасно справляется.

Как по мне, libxo задуман, чтобы не парсить выхлоп сложных и специфичных утилит а-ля gpart или netstat из скриптов. В большей степени на perl/python/ruby/js/..., хотя sh + jq (или аналог) тоже возможен (только зачем?).

> в ls как раз еще не встроили

Пишут, что встроили - https://svnweb.freebsd.org/base?view=revision&revision=284198 + https://wiki.freebsd.org/LibXo .
Но сам я давно FreeBSD не использовал, так что лучше проверить, может отломали обратно - я не знаю.

> А вот тут я не согласен - посмотрите на реализацию этого в wc

...
> Т.е. никаких особых усложнений нет, зато предоставлется одинаковый формат вывода утилит.

То, что гнутые утилиты жирны и часто представляют собой торжество оверинжиниринга, а бсдшные в целом нет - не новость.

Однако, впиливание libxo в условные ls или wc - это тоже неоправданное усложнение.
Зачем хочется получать выхлоп условного netstat в json/xml мне понятно, зачем хочется получать выхлоп ls/wc в них - не понятно. Любой язык программирования позволяет сделать это своими средствами и так и надо делать. Вызывать ls --libxo json для получения списка директорий из условного perl/python - говнарство. Не надо давать возможность делать так.
Если бы с этим можно было бы как-то удобно работать из shell, типа как в nushell, например, это имело бы какой-то смысл. Но нет. И рождается теперь такое например: https://unix.stackexchange.com/questions/407850/how-to-use-t...

Стоит ли говорить, что лучше бы он просто написал на perl то, что ему нужно?

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

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

127. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от анонн (ok), 30-Авг-19, 10:51 
>> Можно, но на мой взгляд, это будет все равно костыль/полумера - передаем
>> Хотя, с другой стороны, задумано libxo вообще-то для "форматированного вывода" - с чем оно, имхо, прекрасно справляется.
> Как по мне, libxo задуман, чтобы не парсить выхлоп сложных и специфичных
> утилит а-ля gpart или netstat из скриптов. В большей степени на
> perl/python/ruby/js/..., хотя sh + jq (или аналог) тоже возможен (только зачем?).

Это само-собой - для человеков-то оно уже отформатированно "пробелами"
>> в ls как раз еще не встроили
> Пишут, что встроили - https://svnweb.freebsd.org/base?view=revision&revision=284198
> + https://wiki.freebsd.org/LibXo .
> Однако, впиливание libxo в условные ls или wc - это тоже неоправданное
> усложнение.
> Зачем хочется получать выхлоп условного netstat в json/xml мне понятно, зачем хочется
> получать выхлоп ls/wc в них - не понятно. Любой язык программирования
> позволяет сделать это своими средствами и так и надо делать. Вызывать
> ls --libxo json для получения списка директорий из условного perl/python -
> говнарство. Не надо давать возможность делать так.


commit 8d50f6fe856dd7e9d32b7ac4867a8e89e82d1e9a
Author: cem <cem@FreeBSD.org>
Date:   Wed Jan 17 22:47:34 2018 +0000

    Convert ls(1) to not use libxo(3)
    
    libxo imposes a large burden on system utilities. In the case of ls, that
    burden is difficult to justify -- any language that can interact with json
    output can use readdir(3) and stat(2).


Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

129. "Представлена новая командная оболочка nushell"  +/
Сообщение от пох. (?), 30-Авг-19, 11:14 
> Author: cem <cem@FreeBSD.org>

надо ж, нашелся хоть один (полу) вменяемый (полу - потому что опять ниасилен ifdef)

интересно, сколько уязвимостей вывалится из этой очередной ненужно, если в нее чуть-чуть пальчиком потыкают?

Учитывая что очередной code exec в прекрасной libxml2 по сей день находят раз в пару месяцев (не потому что их стало меньше ,конечно, а потому что всем надоело)

Ответить | Правка | ^ к родителю #127 | Наверх | Cообщить модератору

139. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 30-Авг-19, 14:42 
> полу - потому что опять ниасилен ifdef

Ну и зачем он тут нужен? Это блин ещё хуже, чем неотключаемое наличие lixo'шного выхлопа в ls.
Бесполезный код придётся поддерживать, "продвинутые" пользователи будут жаловаться, что не работает, выносить мозг странными вопросами и т.п.
Не нужно поощрять возможность сделать херню, даже опционально.

Ifdef в этом месте признак не гибкости, а неуверенности в своей правоте.

Ответить | Правка | ^ к родителю #129 | Наверх | Cообщить модератору

141. "Представлена новая командная оболочка nushell"  +/
Сообщение от пох. (?), 30-Авг-19, 17:13 
> Ну и зачем он тут нужен?

потому что следом появились бы такие же в ifconfig и прочих местах. И я был бы счастлив одним на всю систему -DNOLIBXO

Ответить | Правка | ^ к родителю #139 | Наверх | Cообщить модератору

143. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 30-Авг-19, 17:58 
> И я был бы счастлив одним на всю систему -DNOLIBXO

А, ты об этом. С этим соглашусь.
Не согласен был с оборачиванием ifdef'ом одного лишь ls.

Ответить | Правка | ^ к родителю #141 | Наверх | Cообщить модератору

135. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 30-Авг-19, 14:14 
> libxo imposes a large burden on system utilities. In the case of ls, that
> burden is difficult to justify -- any language that can interact with json
> output can use readdir(3) and stat(2).

Круто! И то, что провели работу над ошибками, и то, что их мотивация выпилить libxo из ls похожа на то, что я про это думаю.

Ответить | Правка | ^ к родителю #127 | Наверх | Cообщить модератору

116. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от _ (??), 30-Авг-19, 04:51 
Срам то какой! :(
Линуксойды - копипастеры бойлерплейта, ну а фуле от ракешкумаров ожидать :(
Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

124. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (122), 30-Авг-19, 09:36 
Это не овер.
Это АПИ: даёшь команду, получаешь машино-читаемый ответ из ls.

Что не писать сложные фильтры, зависящие от реализации и проч. нюансы.

Это для  скриптования оч. хор.

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

137. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 30-Авг-19, 14:24 
> даёшь команду, получаешь машино-читаемый ответ из ls.

Но зачем? Каждый язык, умеющий парсить json умеет всё, что умеет ls. В чём профит?

Ответить | Правка | ^ к родителю #124 | Наверх | Cообщить модератору

190. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (189), 02-Сен-19, 11:23 
Вас пример с | where size > 10kb не убедил? Фильтр, который и парсит json, может быть отдельной утилитой. Ему не нужно ничего знать про файлы.
Ответить | Правка | ^ к родителю #137 | Наверх | Cообщить модератору

193. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 02-Сен-19, 18:13 
> Вас пример с | where size > 10kb не убедил?

Конечно нет. Чего тут может убедить-то?
То же самое делается awk'ом, и очень тривиально.

> Фильтр, который и парсит json, может быть отдельной утилитой. Ему не нужно ничего знать про файлы.

Зато нужно знать про все возможные схемы json, которые в него прилетят.

Ответить | Правка | ^ к родителю #190 | Наверх | Cообщить модератору

194. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (189), 02-Сен-19, 19:25 
>То же самое делается awk'ом, и очень тривиально.

Да, и как же? Пишется adhoc парсер для каждой новой утилиты? Или классика, по номеру столбца выбирать?

>Зато нужно знать про все возможные схемы json, которые в него прилетят.

Для выборки значения по ключу теперь потребовалась схема.

Ответить | Правка | ^ к родителю #193 | Наверх | Cообщить модератору

195. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 02-Сен-19, 19:40 
>>То же самое делается awk'ом, и очень тривиально.
> Да, и как же? Пишется adhoc парсер для каждой новой утилиты? Или классика, по номеру столбца выбирать?

Да, именно так. В этой теме было уже по меньшей мере два примера, как (автор сообщений не я, если что).

>>Зато нужно знать про все возможные схемы json, которые в него прилетят.
> Для выборки значения по ключу теперь потребовалась схема.

Конечно. Очевидно, что у ps и у ls будет разный по смыслу выхлоп - https://www.opennet.ru/openforum/vsluhforumID3/118309.html#55 .
(у ls libxo'шный выхлоп, к счастью, оторвали, но для примера - ок)
Это если мы про FreeBSD utils и libxo.
Если мы про nushell, то я не смотрел, как именно там сделано. Если по-аналогии с powershell, то история разные объекты в разных случаях и необходимость уметь понимать, с чем мы имеем дело никуда не делась. Там, вероятно, сложности будут не такие вопиющие, как в примере с libxo (потому что то, что с libxo делалось, насколько я понимаю, вообще без оглядки на использование в стиле powershell), но концептуально никуда не денутся.

Ответить | Правка | ^ к родителю #194 | Наверх | Cообщить модератору

52. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Crazy Alex (??), 29-Авг-19, 14:53 
Оно будет иметь хоть какой-то право на жизнь если будет обратно-совместимо с существующим всем - утилитами, скриптами, привычками. То есть пишешь как писал - получаешь те же резулдьтаты, что и в bash. Ставишь, я не знаю, тройной пайп или ту самуб шляпу - получаешь "расширенный" вариант. Только эту совместимость поддерживать - немного свихнёшься, а без неё - не взлетит (и правильно).
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

107. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 29-Авг-19, 22:48 
Культ старья ни к чему хорошему не приведёт.
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

117. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от _ (??), 30-Авг-19, 04:56 
ты уже заменил колёса на квадратные? Д,Б!(С)
Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

130. "Представлена новая командная оболочка nushell"  +/
Сообщение от пох. (?), 30-Авг-19, 11:15 
> ты уже заменил колёса на квадратные? Д,Б!(С)

каменный век! Только старперы ездят на квадратных. У нормального-то хипстера - глянь, треугольные!

Ответить | Правка | ^ к родителю #117 | Наверх | Cообщить модератору

147. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 30-Авг-19, 18:29 
Я с юниксами и шеллами и программированием года так с 1996. Только потому, что беш - старый и все его знают, не делает его лучшим или идеальным. Как-то так получается, что прогресс идёт через обобщение опыта и переход на что-то лучшее.  Правда, что бы понять что лучшее, а что худшее - надо в теме неплохо разбираться. Беш задрал - уже сил нет, и концептуально новый шелл давно уже назрел.
Ответить | Правка | ^ к родителю #117 | Наверх | Cообщить модератору

92. "Представлена новая командная оболочка nushell"  +/
Сообщение от KonstantinB (ok), 29-Авг-19, 20:42 
Непонятно, зачем все ломать было для этой концепции. Достаточно научиться работать с JSON, а все остальное оставить как было.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

148. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Wilem (?), 30-Авг-19, 18:34 
JSON непозволительно беден в поддерживаемых типах данных. Ну и собственно nu с джейсоном работать умеет, насколько это возможно, т.к. смотри бедноту типов.
Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

150. "Представлена новая командная оболочка nushell"  +/
Сообщение от KonstantinB (ok), 30-Авг-19, 18:48 
А каких типов данных не хватает для шелла? Массивы есть, хэш-таблицы есть, числа есть, булевые значения есть, null есть. Что еще надо? Строгую типизацию в шелл? Нафига она там?
Ответить | Правка | ^ к родителю #148 | Наверх | Cообщить модератору

162. "Представлена новая командная оболочка nushell"  +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:07 
Таки читайте воспоминания Ашманова про "единую шину" "умненьких разработчиков" -- вдруг что-то да дойдёт, _кто_ непригоден для работы и где "единый формат данных", а где та несусветная чушь, что приведена в тексте новости как достижение.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Представлена новая командная оболочка nushell"  –4 +/
Сообщение от Аноним (17), 29-Авг-19, 12:36 
Согласен, что баш скрипты в общем случае более гибки. Особенно если сравнивать с текущей веврсии этого nushell, в которой судя по всему ещё даже условий, циклов и прочего не завезли.

Но если гововорить про пример с ls, то аналогичный эффект в баше можно достичь вот так:
find . -maxdepth 1 -type f -size +10k -exec ls {} \;

Мне кажется, что в nushell всё же более лаконичный синтаксис.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

23. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Аноним (5), 29-Авг-19, 12:43 
Метаязыки не нужны.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

25. "Представлена новая командная оболочка nushell"  +5 +/
Сообщение от Аноним (25), 29-Авг-19, 12:55 
А вы дошли до страницы в мане, где find болванки прожигает?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

26. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним84701 (ok), 29-Авг-19, 12:56 

> Но если гововорить про пример с ls, то аналогичный эффект в баше
> можно достичь вот так:
> find . -maxdepth 1 -type f -size +10k -exec ls {} \;

% ls -l | awk '$5>10000'

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

47. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (17), 29-Авг-19, 14:30 
Ну так гораздо понятнее да. Ну и эффект не соответствует выводу команды ls, из которого убрали отфильтрованные файлы.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

57. "Представлена новая командная оболочка nushell"  +/
Сообщение от Crazy Alex (??), 29-Авг-19, 14:59 
...и вместо читаемого слёту получаем нечто, где надо понимать, а что там за пятое поле. Хотя компактнее, конечно.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

62. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним84701 (ok), 29-Авг-19, 15:09 
> ...и вместо читаемого слёту получаем нечто, где надо понимать, а что там

Если хочется получить максимально близкий "перевод"  примера
> ls | where size>10k

то придется так.

Для эстетствующих  есть вариант:


ls -l | awk -v 'size_col=5' '$size_col>10000'

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

175. "Представлена новая командная оболочка nushell"  +/
Сообщение от Анонимный Алкоголик (??), 31-Авг-19, 21:05 
>> ...и вместо читаемого слёту получаем нечто, где надо понимать, а что там
> Если хочется получить максимально близкий "перевод"  примера
>> ls | where size>10k
> то придется так.
> Для эстетствующих  есть вариант:
>
 
> ls -l | awk -v 'size_col=5' '$size_col>10000'
>  

У нас из любимых файлов такие:
Инцидент "Бедфорд".mpeg
Stormy Daniels.mp

(короче, правильно find)

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

177. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним84701 (ok), 31-Авг-19, 21:48 
> У нас из любимых файлов такие:
> Инцидент "Бедфорд".mpeg
> Stormy Daniels.mp
> (короче, правильно find)

Зачем писать загадками?
Что не так (нет, я догадываюсь, но неплохо бы услышать подтверждение)?
long listing format -l, если что, отнюдь не глупые люди придумали:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/l...
> I "%s %u %s %s %u %s %s\n", <file mode>, <number of links>,
>   <owner name>, <group name>, <size>, <date and time>,
>   <pathname>
>

Ответить | Правка | ^ к родителю #175 | Наверх | Cообщить модератору

185. "Представлена новая командная оболочка nushell"  +/
Сообщение от Анонимный Алкоголик (??), 02-Сен-19, 05:09 
> Зачем писать загадками?
> Что не так (нет, я догадываюсь, но неплохо бы услышать подтверждение)?
> long listing format -l, если что, отнюдь не глупые люди придумали:
> https://pubs.opengroup.org/onlinepubs/9699919799/utilities/l...
>> I "%s %u %s %s %u %s %s\n", <file mode>, <number of links>,
> >   <owner name>, <group name>, <size>, <date and time>,
>>   <pathname>

Ну эта... Как эта... Эта ну такой вот файл. Допустим их там не 2... Это в глазах двоится.
Опровергаем. Поднимаем.

Ответить | Правка | ^ к родителю #177 | Наверх | Cообщить модератору

31. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от bubuka (?), 29-Авг-19, 13:22 
find . -maxdepth 1 -type f -size +10k -ls, тогда не будет на каждый файл по процессу запускать
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

43. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Ordu (ok), 29-Авг-19, 14:17 
> Но если гововорить про пример с ls, то аналогичный эффект в баше можно достичь вот так:
> find . -maxdepth 1 -type f -size +10k -exec ls {} \;

А это уже синтаксис find, а не синтаксис bash. ad hoc решение для файлов.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

93. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от anonymous (??), 29-Авг-19, 20:42 
Вообще это юнихвей, когда одна программа делает одно действие и делает это хорошо.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

97. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 29-Авг-19, 21:28 
> Вообще это юнихвей, когда одна программа делает одно действие и делает это
> хорошо.

Это ты намекаешь, что find делает одно действие? find -- это комбайн, да такой, что таких ещё поискать надо. Сделай man find в консольке и почитай.

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

120. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним (120), 30-Авг-19, 08:34 
и что этому комбайну мешает быть одной программой, которая делает эти действия хорошо?
Ответить | Правка | ^ к родителю #97 | Наверх | Cообщить модератору

134. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Ordu (ok), 30-Авг-19, 13:45 
> и что этому комбайну мешает быть одной программой, которая делает эти действия
> хорошо?

Ничто. Но и тем не менее, если unixway -- это на каждое действие по программе, то find -- это не unixway, потому что тут на много действий одна программа.

Ответить | Правка | ^ к родителю #120 | Наверх | Cообщить модератору

136. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 30-Авг-19, 14:19 
>если unixway -- это на каждое
> действие по программе,

Нет.

>то find -- это не unixway

Нет.

>, потому что
> тут на много действий одна программа.

Ответить | Правка | ^ к родителю #134 | Наверх | Cообщить модератору

138. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Ordu (ok), 30-Авг-19, 14:33 
>>если unixway -- это на каждое
>> действие по программе,
> Нет.

Нет.

>>то find -- это не unixway
> Нет.

Нет.


Ответить | Правка | ^ к родителю #136 | Наверх | Cообщить модератору

140. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 30-Авг-19, 14:54 
>>>если unixway -- это на каждое
>>> действие по программе,
>> Нет.
> Нет.

Уникальное расширенное предложение.  Торопитесь!

"" Если Вы хорошо попросите [и не раньше!], я дам вам ссылочку на taoup -- на объяснения про юникс, про принципы, про почему не нарушение, про ... ""
я-- https://www.opennet.ru/openforum/vsluhforumID3/117299.html#132

Ответить | Правка | ^ к родителю #138 | Наверх | Cообщить модератору

142. "Представлена новая командная оболочка nushell"  –3 +/
Сообщение от Ordu (ok), 30-Авг-19, 17:57 
>>>>если unixway -- это на каждое
>>>> действие по программе,
>>> Нет.
>> Нет.
> Уникальное расширенное предложение.  Торопитесь!
> "" Если Вы хорошо попросите [и не раньше!], я дам вам ссылочку
> на taoup -- на объяснения про юникс, про принципы, про почему
> не нарушение, про ... ""
> я-- https://www.opennet.ru/openforum/vsluhforumID3/117299.html#132

Я читал TAOUP лет пятнадцать назад, оно выглядело тогда откровением свыше, но сегодня я стал старше и умнее, и теперь оно выглядит попыткой натянуть сову на глобус. То есть попыткой взять существующий unix, и написать концепцию рационализирующую существующее положение дел, которая будет говорить, что то что есть -- хорошо, то чего нет -- плохо. Если X11 не влезает в концепцию и использует бинарный протокол вместо текстового, значит мы подопрём концепцию ad hoc костылём. Если find не влезает в концепцию, потому что комбайн, мы подопрём концепцию ещё одним ad hoc костылём. И на каждое несоответствие теоретической концепции с реальностью, мы воткнём ещё один рационализирующий ad hoc костыль.

Это ущербная методология, потому что действуя таким образом, под любое явление можно создать концепцию, которому это явление будет соответствовать. Любая правильная методология построения концепции даст концепцию, которой ни одно практическое решение не соответствует. Такая концепция будет _полезна_, потому что она позволит видеть, что не соответствует, а значит искать способы сделать это лучше. Концепция же которая рационализирует статус кво может быть полезна только в политических целях, чтобы громить оппонентов или воодушевлять сторонников. Но мы же, вроде, технари, а не политики? Или я ошибаюсь?

find содержит себе, например, синтаксис описания выборки, чтобы фильтровать данные, выбирая из них интересующее. Мы легко можем представить себе универсальный синтаксис, который будет работать не только с файлами, а с любыми данными. Есть sql, есть R, есть awk -- есть куча _универсальных_ вещей для фильтрации. В coreutils есть ряд утилит, позволяющих фильтровать поток данных. В конце-концов, в shell'е есть условные конструкции, которые позволяют фильтровать даные. Но find использует свой собственный ad hoc костыль. Но Эрик Раймонд рассказывает нам о том, что find -- это unix way. Его концепция unix-way ущербна и непригодна для применения без доработки напильником, потому что совершенно очевидно, что наличие в unix такого комбайна как find -- это провал концепции "программа делает одну небольшую вещь, но делает её хорошо". SQL и R, позволяют описывать гораздо лучше и понятнее гораздо более сложные выборки данных. awk позволяет работать с выборками гораздо лучше, выписывая много фильтров одновременно, и вешая на каждый фильтр свой обработчик. find же запиливает свой собственный ущербный синтаксис, только потому, что авторы не нашли способа как написать маленькую программу, которая хорошо умеет только рекурсивно обходить директории, обрабатывая всякие нюансы типа ссылок, а фильтрацию оставить другим утилитам, тому же awk'у например.

find -- это провал концепции, но для Эрика Раймонда -- это успех концепции. Чёрное -- это белое. Война -- это мир. Любовь -- это ненависть. И всё из-за ущербности методологии.

Ответить | Правка | ^ к родителю #140 | Наверх | Cообщить модератору

168. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Дон Ягон (ok), 31-Авг-19, 00:59 
> Эрик Раймонд

Так себе авторитет, ИМХО.

>  find -- это провал концепции "программа делает одну небольшую вещь, но делает её хорошо"

Позвольте полюбопытствовать, почему именно? Потому что там есть опции а-ля "--ls" или "--delete"? Если так, то имхо это придирка.

> find же запиливает свой собственный ущербный синтаксис, только потому, что авторы не нашли способа как написать маленькую программу, которая хорошо умеет только рекурсивно обходить директории, обрабатывая всякие нюансы типа ссылок, а фильтрацию оставить другим утилитам, тому же awk'у например.
> Есть sql, есть R, есть awk -- есть куча _универсальных_ вещей для фильтрации. В coreutils (findutils же вроде?) есть ряд утилит, позволяющих фильтровать поток данных. В конце-концов, в shell'е есть условные конструкции, которые позволяют фильтровать даные. Но find использует свой собственный ad hoc костыль

find делает всё правильно. awk - утилита для обработки текста. Она не знает ничего ни про права, ни про овнера/группу, ни про любое другое свойства любого объекта фс. В то же время, find только про это и знает, его возможности фильтрации по имени файла ограничены глобами, если хочется чего-то бОльшего, то нужно передавать выхлоп find через пайп хоть тому же awk.
Что касается sql и R, то лично я бы не хотел использовать подобный синтаксис в find. Это слишком многословно. Да, в теории это гибче, на практике, задачи, решаемые при помощи find крайне редко требуют что-то сложнее or|not|and и сравнения свойств объектов фс - такая гибкость просто не требуется, а она не бесплатна. Не имею ничего против приложения, которое работает как find, но вместо его аргументов принимает на вход, например, SQL запросы, но только не в базовой поставке, пожалуйста.

Ответить | Правка | ^ к родителю #142 | Наверх | Cообщить модератору

173. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 31-Авг-19, 11:28 
> awk - утилита для обработки текста.

Так я о том и говорю. Для обработки текста свой язык фильтрации. Для обработки файлов ещё один язык фильтрации. Для обработки чего угодно ещё запилим ещё один язык фильтрации. На каждый чих запилим по языку фильтрации. Разве нужна концепция unix, чтобы заниматься этой хнёй?

> Не имею ничего против приложения, которое работает как find, но вместо его аргументов принимает на вход, например, SQL запросы, но только не в базовой поставке, пожалуйста.

Не нужен find со встроенным sql -- это не unix-way. Нужен find, который на выходе выдаёт вывод, который затем можно обрабатывать универсальной утилитой с синтаксисом sql. Или с синтаксисом R. Или ещё каким. Можно иметь несколько таких утилиток, с синтаксисами заточенными под разные случаи или вкусы. И вот тогда это будет unix-way: я беру задачу, разбиваю её на подзадачи, под каждую подзадачу выбираю ту утилиту, которая лучше всего на неё заточена, после чего комбинирую эти утилиты в единую командную строку и получаю результат. Если же поисковой синтаксис прибит гвоздями к find, то выбора уже не остаётся.

Ответить | Правка | ^ к родителю #168 | Наверх | Cообщить модератору

176. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 31-Авг-19, 21:34 
>> awk - утилита для обработки текста.
> На каждый чих запилим по языку фильтрации. Разве нужна концепция unix, чтобы заниматься этой хнёй?

Она именно в этом и заключается. Поэтому, например, мы имеем отдельно awk и sed (были бы они ещё одинаковые в bsd и linux.. но это уже другая история).

> Не нужен find со встроенным sql -- это не unix-way.

Нет, это не так. Синтаксис тут вообще вторичен. Парсер SQL сложнее, синтаксис многословнее, а бОльшая гибкость в задачах find будет почти никогда не нужна. Но find принимающий на вход текущие аргументы или find, принимающий на вход sql будут "юниксвейны" в одинаковой степени.

> Нужен find, который на выходе выдаёт вывод, который затем можно обрабатывать универсальной утилитой с синтаксисом sql. Или с синтаксисом R. Или ещё каким.

А зачем он нужен? Чтобы выпендриваться типа крутой архитектурой? Но она выходит сильно круче решаемых задач -> оверинжиниринг.
Ей богу, я могу придумать только какую-то оторваную от реальности жесть, чтобы sql в find был оправдан. В обычных задачах пользы от этого не будет.
Следовательно конструировать весь этот ужас со "сменными насадками" смысла нет.

И в любом случае, вы можете написать утилиту с каким угодно синтаксисом, которая будет разбирать выхлоп find. Но ведь это не то, чего хотите вы? Вы хотите чтобы недо-find только отдавал описание объектов ФС в каком-то бинарном формате и произвольное число фронтендов, этот формат читающих?
Если да, то это абсурд, потому что не понятно, зачем в этой схеме недо-find нужен вообще - можно же сразу читать данные с ФС, из самой программы, недо-find тут - избыточная абстракция.

> Можно иметь несколько таких утилиток, с синтаксисами заточенными под разные случаи или вкусы.

Можно, но не нужно.

> И вот тогда это будет unix-way:

Это будет оверинжиниринг.

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

А где грань разумности? Можно ведь чуть ли не каждый сискол обернуть примитивной программой и потом конвееры из них строить. Или наоборот, писать монстров на все случаи жизни, а-ля systemd - некоторые тоже считают, что это юниксвейно, ведь оно решает задачу только одну задачу - запуск программ, просто смотрит на неё "достаточно широко"...
Как мне кажется, делать нужно только самые основные возможности, плюс наиболее практичные и часто нужные, если их тривиально написать. Остальной функционал, при необходимости, реализуется сторонними приложениями, которым через пайп передаются данные от предыдущего и так далее.
Если мы говорим о юниксвейном приложении для базовой поставки с ОС.

> Если же поисковой синтаксис прибит гвоздями к find, то выбора уже не остаётся.

Всё так. Но синтаксис не является признаком "юниксвейности".

Ответить | Правка | ^ к родителю #173 | Наверх | Cообщить модератору

178. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 31-Авг-19, 22:37 
>>> awk - утилита для обработки текста.
>> На каждый чих запилим по языку фильтрации. Разве нужна концепция unix, чтобы заниматься этой хнёй?
> Она именно в этом и заключается. Поэтому, например, мы имеем отдельно awk
> и sed (были бы они ещё одинаковые в bsd и linux..
> но это уже другая история).
>> Не нужен find со встроенным sql -- это не unix-way.
> Нет, это не так. Синтаксис тут вообще вторичен. Парсер SQL сложнее, синтаксис
> многословнее, а бОльшая гибкость в задачах find будет почти никогда не
> нужна.

Но когда она будет нужна, я не смогу использовать find с sql. Мне придётся выёживаться мухой на стекле, чтобы получить csv, который затем можно будет затолкать в sqlite, чтобы затем сделать оттуда выборку.

> Но find принимающий на вход текущие аргументы или find, принимающий
> на вход sql будут "юниксвейны" в одинаковой степени.

Мне не нужен find принимающий на вход sql. Всё что он должен принимать -- это список файлов/директорий, которые выданы ему шеллом. По-хорошему, он даже вообще не нужен, потому что это умеет ls, и рекурсивно обходить директории ls тоже умеет. Ещё du умеет обходить рекурсивно. Зачем нужен этот десяток реализаций рекурсивного обхода директорий, когда можно обойтись одним?

>> Нужен find, который на выходе выдаёт вывод, который затем можно обрабатывать универсальной утилитой с синтаксисом sql. Или с синтаксисом R. Или ещё каким.
> А зачем он нужен? Чтобы выпендриваться типа крутой архитектурой? Но она выходит
> сильно круче решаемых задач -> оверинжиниринг.

Да ладно, оверинжиниринг -- это find, в который напихали всё что нужно, всё что не нужно, и ещё немного.

> Ей богу, я могу придумать только какую-то оторваную от реальности жесть, чтобы
> sql в find был оправдан. В обычных задачах пользы от этого
> не будет.

Есть две директории, в них много одинаковых файлов, но есть разные, я хочу создать третью директорию как объединение/пересечение/дополнение/любая-другая-операция-над-множествами из этих двух. В идеале даже сделать так, чтобы из одной из первых двух была бы сделана "третья", минимальным копированием файлов, потому что она находится на тормозном внешнем носителе, а файлы довольно большие.

Попробуй сделать это find'ом, и ты быстро придёшь к выводу, что проще использовать ad hoc решения, типа всяких там интересных опций cp, которые позволяют условно копировать файлы. Если конечно в списке опций cp есть набор, позволяющий выполнить нужную тебе операцию над множествами. Или ещё проще даже забить болт, и сделать cp -r dir1/* dir2/, забив на ненужные копирования файлов. Ну будет оно 10-20-30 лишних минут копировать, и чё? Зато не надо 10 минут возиться с сочинением злой командной строки, покуривая между делом маны.

А если найденные файлы можно скормить языку, который умеет в sql, то... эмм... А нужен ли нам вообще в системе find? Нужен ли нам du? Может там ещё пяток утилит, которые можно выкинуть? И ещё можно будет опции cp прочистить, избавив его от всех этих условных копирований. Оставить только то, что часто используется, и поэтому удобно иметь аббревиатуры,

>[оверквотинг удален]
> в каком-то бинарном формате и произвольное число фронтендов, этот формат читающих?
> Если да, то это абсурд, потому что не понятно, зачем в этой
> схеме недо-find нужен вообще - можно же сразу читать данные с
> ФС, из самой программы, недо-find тут - избыточная абстракция.
>> Можно иметь несколько таких утилиток, с синтаксисами заточенными под разные случаи или вкусы.
> Можно, но не нужно.
>> И вот тогда это будет unix-way:
> Это будет оверинжиниринг.
>> я беру задачу, разбиваю  её на подзадачи, под каждую подзадачу выбираю ту утилиту, которая лучше всего на неё заточена, после чего комбинирую эти утилиты в единую командную строку и получаю результат.
> А где грань разумности?

Задача фильтрации информации -- это вещь, которая нужна везде и постоянно. Вынести её в отдельную утилиту, которая умеет _хорошо_ фильтровать: сам бог велел.

>> Если же поисковой синтаксис прибит гвоздями к find, то выбора уже не остаётся.
> Всё так. Но синтаксис не является признаком "юниксвейности".

Ой, ну давайте теперь будем жонглировать словами, играя в самую низкопошибную демагогию. Я уже третий? четвёртый? раз объясняю что я имею в виду? Не надо делать вид, что ты до сих пор не понял.

Ответить | Правка | ^ к родителю #176 | Наверх | Cообщить модератору

179. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 01-Сен-19, 16:50 
> Но когда она будет нужна, я не смогу использовать find с sql. Мне придётся выёживаться мухой на стекле, чтобы получить csv, который затем можно будет затолкать в sqlite, чтобы затем сделать оттуда выборку.

Ключевой вопрос: а когда она будет нужна? Но безусловно, если есть регулярная задача, в которой нужно делать выборку по объектам ФС, да так хитро, что без SQL не обойтись - это повод написать своё, всецело устраивающее решение. Но не тянуть ничем не оправданные во всех прочих случаях костыли в стандартные утилиты.

> Мне не нужен find принимающий на вход sql. Всё что он должен принимать -- это список файлов/директорий, которые выданы ему шеллом.

Конечно, ведь это так эффективно - гонять данные от одного процесса к другому, особенно, когда нет никаких причин сразу не сделать всё во втором процессе.

> По-хорошему, он даже вообще не нужен, потому что это умеет ls, и рекурсивно обходить директории ls тоже умеет. Ещё du умеет обходить рекурсивно. Зачем нужен этот десяток реализаций рекурсивного обхода директорий, когда можно обойтись одним?

Скопипасть или вынеси в библиотеку. Проблема то.

> Да ладно, оверинжиниринг -- это find, в который напихали всё что нужно, всё что не нужно, и ещё немного.

Например, что? --delete? --ls? Ну да, это небольшое пренебрежение идеологией во имя практичности.
Но настолько очевидно нужное и тривиальное, что всерьёз к этому цепляться на мой взгляд - придирки.
find делает, в целом, ровно то, что должен - показывает те объекты дерева ФС, которые удовлетворяют описанным опциями командной строки требованиями.

>> Ей богу, я могу придумать только какую-то оторваную от реальности жесть, чтобы sql в find был оправдан. В обычных задачах пользы от этого не будет.
> Есть две директории, в них много одинаковых файлов, но есть разные, я хочу создать третью директорию как объединение/пересечение/дополнение/любая-другая-операция-над-множествами из этих двух. В идеале даже сделать так, чтобы из одной из первых двух была бы сделана "третья", минимальным копированием файлов, потому что она находится на тормозном внешнем носителе, а файлы довольно большие.

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

> Попробуй сделать это find'ом, и ты быстро придёшь к выводу, что проще использовать ad hoc решения, типа всяких там интересных опций cp, которые позволяют условно копировать файлы. Если конечно в списке опций cp есть набор, позволяющий выполнить нужную тебе операцию над множествами. Или ещё проще даже забить болт, и сделать cp -r dir1/* dir2/, забив на ненужные копирования файлов. Ну будет оно 10-20-30 лишних минут копировать, и чё? Зато не надо 10 минут возиться с сочинением злой командной строки, покуривая между делом маны.

Конечно же я не буду решать эту задачу find'ом. Есть же rsync.

> А если найденные файлы можно скормить языку, который умеет в sql, то... эмм... А нужен ли нам вообще в системе find? Нужен ли нам du? Может там ещё пяток утилит, которые можно выкинуть? И ещё можно будет опции cp прочистить, избавив его от всех этих условных копирований. Оставить только то, что часто используется, и поэтому удобно иметь аббревиатуры,

А с чего ты решил, что твоя конструкция вообще будет эффективнее? Она также обойдёт ВСЕ файлы в директориях и потрогает диск столько же раз.
Замена N маленьких приложений на один комбайн - действие противоположное "юниксвею" по смыслу.

> Задача фильтрации информации -- это вещь, которая нужна везде и постоянно. Вынести её в отдельную утилиту, которая умеет _хорошо_ фильтровать: сам бог велел.

1) Такие утилиты уже есть.
2) Отрывать функционал фильтрации там, где он действительно нужен - вредительство и больше ничего. Наличие ограниченного функционала фильтрации где-то не отменяет утилит из пункта 1.

>>> Если же поисковой синтаксис прибит гвоздями к find, то выбора уже не остаётся.
>> Всё так. Но синтаксис не является признаком "юниксвейности".
> Ой, ну давайте теперь будем жонглировать словами, играя в самую низкопошибную демагогию. Я уже третий? четвёртый? раз объясняю что я имею в виду? Не надо делать вид, что ты до сих пор не понял.

По тексту моих ответов ты мог бы и сообразить, что я тебя понял.
Только я продолжаю утверждать, что то, чего хочешь ты не имеет отношения к "unix way".

PS: Идеология должна служить коллективу, а не коллектив идеологии. Иначе это уже тоталитарная секта, а не коллектив.

Ответить | Правка | ^ к родителю #178 | Наверх | Cообщить модератору

180. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 01-Сен-19, 19:42 
>> Мне не нужен find принимающий на вход sql. Всё что он должен принимать -- это список файлов/директорий, которые выданы ему шеллом.
> Конечно, ведь это так эффективно - гонять данные от одного процесса к
> другому, особенно, когда нет никаких причин сразу не сделать всё во
> втором процессе.

Если нужна эффективность, то тебе не нужен shell -- интерпретатор на интерпретаторе, интерпретатором погоняет. Тебе нужна программа на C. Эффективность -- это к компилируемым языкам, а интерпретаторы -- это для того, чтобы быстро слепить.

> Скопипасть или вынеси в библиотеку. Проблема то.

Угу. И где это сделано кроме как в busybox?

>> Да ладно, оверинжиниринг -- это find, в который напихали всё что нужно, всё что не нужно, и ещё немного.
> Например, что? --delete? --ls? Ну да, это небольшое пренебрежение идеологией во имя
> практичности.

Прикинь, я даже не знал про такие опции, я постоянно пользовался фишкой: -exec rm {} \;. Про ортогональность API разработчики find тоже ничего не слышали?

> Но настолько очевидно нужное и тривиальное, что всерьёз к этому цепляться на
> мой взгляд - придирки.

Вот Реймонд тоже так считает. Когда что-то буквально следует его принципам unix way, он говорит, что это победа unix way. Когда что-то самым гнусным образом нарушает эти принципы, он говорит, что это придирки, практичность важнее, и поэтому это тоже победа unix-way. Поэтому я и говорю, что вся концепция unix-way (её ведь Реймонд назвал словами "unix way" и сформулировал, так?) -- это гнилой политический базар.

> find делает, в целом, ровно то, что должен - показывает те объекты
> дерева ФС, которые удовлетворяют описанным опциями командной строки требованиями.

И он совершенно был бы не нужен, если бы в unix-овом шелле был бы предусмотрен стандартный метод передачи табличных данных через пайп.

>>> Ей богу, я могу придумать только какую-то оторваную от реальности жесть, чтобы sql в find был оправдан. В обычных задачах пользы от этого не будет.
>> Есть две директории, в них много одинаковых файлов, но есть разные, я хочу создать третью директорию как объединение/пересечение/дополнение/любая-другая-операция-над-множествами из этих двух. В идеале даже сделать так, чтобы из одной из первых двух была бы сделана "третья", минимальным копированием файлов, потому что она находится на тормозном внешнем носителе, а файлы довольно большие.
> Ну я и говорю: высосанная из пальца жесть. Которую даже ценителям надо
> делать один раз в жизни.

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

> Конечно же я не буду решать эту задачу find'ом. Есть же rsync.

Во-во. Ещё один ман с тысячью опций. И на каждую специфическую задачу по ещё одному man'у.

> А с чего ты решил, что твоя конструкция вообще будет эффективнее? Она
> также обойдёт ВСЕ файлы в директориях и потрогает диск столько же
> раз.

Смотря что с чем сравнивать. С cp, например, простейшим решением может оказаться копировать файлы безусловно, даже если я копирую копию файла в него самого. Есть два файла, совпадающих бит-в-бит, но я тем не менее копирую один в другой, дабы не плодить себе специальных случаев для обработки при написании командной строки.

> Замена N маленьких приложений на один комбайн - действие противоположное "юниксвею" по
> смыслу.

Во-во. Я о том же.

>> Задача фильтрации информации -- это вещь, которая нужна везде и постоянно. Вынести её в отдельную утилиту, которая умеет _хорошо_ фильтровать: сам бог велел.
> 1) Такие утилиты уже есть.

Пример?
grep? Ха-ха.
awk? Он так и не научился в заголовки столбцов, их так и приходится отсчитывать на пальцах, чтобы выбрать нужный. Да и синтаксис его совершенно не совместим с shell'ом, приходится жестоко экранировать. Ну, и мне не нравится, то, что в awk не стоит умолчательного действия "вывести совпадающую строку".
R? R умеет в заголовки столбцов, но вот несовместимость синтаксиса с шеллом остаётся. Плюс он ещё менее awk заточен на использование в составе более сложной команды.

> 2) Отрывать функционал фильтрации там, где он действительно нужен - вредительство и
> больше ничего.

Это утверждение, которое необосновано ничем. В этом треде никто ни разу не высказал ни единого слова, которое можно было бы считать аргументом в пользу этого утверждения.


>>>> Если же поисковой синтаксис прибит гвоздями к find, то выбора уже не остаётся.
>>> Всё так. Но синтаксис не является признаком "юниксвейности".
>> Ой, ну давайте теперь будем жонглировать словами, играя в самую низкопошибную демагогию. Я уже третий? четвёртый? раз объясняю что я имею в виду? Не надо делать вид, что ты до сих пор не понял.
> По тексту моих ответов ты мог бы и сообразить, что я тебя понял.

И тем не менее написал "синтаксис не является признаком юниксвейности". Зачем? Чтобы я усомнился в том, что ты меня понимаешь? Или чтобы я увидел, что ты умеешь в демагогию? Или чтобы была возможность поговорить со мной о демагогии, уведя разговор в сторону? Или зачем? Какую конкретно цель ты преследовал этой фразой?

> Только я продолжаю утверждать, что то, чего хочешь ты не имеет отношения к "unix way".

Давай уточним. Что ты понимаешь под unix-way? То что описал Раймонд в TAOUP? Естественно, что то, что я говорю, не имеет отношения к TAOUP. Я бы себя уважать перестал, если бы оно имело бы отношение. Вот если взять TAOUP, выкинуть оттуда всю воду, разборы конкретных случаев, и оставить исключительно два-три принципа, и ещё две-три цели, которых unix-way пытается достичь, следуя этим принципам. Затем заявить, что эти принципы требуют неукоснительного выполнения, а отклонения от них -- это отклонения от unix-way, то получится декларация, которая уместится в трёх абзацах. К ней можно приложить несколько страниц более развёрнутого описания, и вот тогда, может быть, я и соглашусь с тем, что получится. Смотря что именно будет в том списке принципов. А TAOUP, может быть и описывает unix-way, но если так, то тогда нахрен он нужен такой unix-way? Зигмунд Фройд бы, чётко определил бы TAOUP в тяжкий случай психологической защиты под названием рационализация. Мне не нужны многостраничные высеры порождённые действием психологических защит.

> PS: Идеология должна служить коллективу, а не коллектив идеологии. Иначе это уже
> тоталитарная секта, а не коллектив.

Идея unix-way служит исключительно политическим целям. Никаких технических целей она решить не в состоянии. Тебе интересна политика? Мне интересна, но все эти насквозь прогнившие идеологии единственное предназначение которых пудрить мозги широким массам я изучаю исключительно чтобы лучше понять ущербности мышления широких масс. Других применений им я не могу найти.

Ответить | Правка | ^ к родителю #179 | Наверх | Cообщить модератору

182. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 02-Сен-19, 02:56 
> Если нужна эффективность, то тебе не нужен shell -- интерпретатор на интерпретаторе, интерпретатором погоняет. Тебе нужна программа на C. Эффективность -- это к компилируемым языкам, а интерпретаторы -- это для того, чтобы быстро слепить.

Это совершенно не повод всё усугублять. Считать иначе - странно. Будь все программы, которые предполагается объединять в конвеер толстыми и неэффективными, пользоваться ими в стиле unix-way было бы просто невозможно.

> Угу. И где это сделано кроме как в busybox?

Подсказываю: нигде особенно не делают не потому что не знают, что так можно и/или не умеют. А в busybox есть требование к объёму.

> Прикинь, я даже не знал про такие опции, я постоянно пользовался фишкой: -exec rm {} \;. Про ортогональность API разработчики find тоже ничего не слышали?

Без понятия. Но наличие такой опции в find - логично, правильно и последовательно, чтобы ты там не говорил. Что за любовь к ничем не оправданным fork + exec, блин?

>> Но настолько очевидно нужное и тривиальное, что всерьёз к этому цепляться на мой взгляд - придирки.
> Вот Реймонд тоже так считает.

Почему тебя это вообще волнует? Реймонд - бесполезный горлопан и к принципам unix-way имеет очень мало отношения - по сути, он примазался к тому что уже было сформулировано до него. Смотри да хотя бы википедию.

> Когда что-то буквально следует его принципам unix way, он говорит, что это победа unix way. Когда что-то самым гнусным образом нарушает эти принципы, он говорит, что это придирки, практичность важнее, и поэтому это тоже победа unix-way.

Самым гнусным образом? Нет, не согласен.
Краеугольный камень в философии UNIX - это принцип KISS. Наличие опций вроде -delete и -ls в find не сильно усложняют код (по очевидным причинам) и сильно упрощают решение некоторых задач.
Задача программ - решать те или иные задачи в той или иной среде, а не соответствовать всем заповедям unix-way.

> Поэтому я и говорю, что вся концепция unix-way (её ведь Реймонд назвал словами "unix way" и сформулировал, так?) -- это гнилой политический базар.

Нет, это не так. И вообще, строгих заповедей нет. Реймонд (кажется) сказл как раз про то, что unix-way - это, в целом, KISS. Но он именно сформулировал, т.е. сказал то, что уже делалось по-факту. На мой взгляд, вот лучшая формулировка философии unix:
"Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well. Instead, what makes it effective is the approach to programming, a philosophy of using the computer. Although that philosophy can't be written down in a single sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. Many UNIX programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools."

К DOTADIW Реймонд не имеет никакого отношения.

>> find делает, в целом, ровно то, что должен - показывает те объекты дерева ФС, которые удовлетворяют описанным опциями командной строки требованиями.
> И он совершенно был бы не нужен, если бы в unix-овом шелле был бы предусмотрен стандартный метод передачи табличных данных через пайп.

В теории - да.  А на практике.. А на практике быстро захочется не "стандартный метод передачи табличных данных", а как в powershell - когда всё, что передаётся через "пайп" объект.
Круто? С одной стороны - да. Например, потому что имена файлов с пробелами перестанут быть хоть какой-то проблемой. А с другой стороны, это полный ад, потому что использовать shell интерактивно становится почти невозможно. И из-за многословности и из-за того, что каждый отдельный случай требует помнить, какой объект возвращает та или иная команда и какие методы к этому объекту применимы есть.
Сравни, например, создание структуры директорий, аналогичной имеющейся (код для PS не мой):
find . -type d -exec mkdir -p /new/path/{} \;
и
cd $oldDir
Get-ChildItem ./ -Recurse -Directory |Resolve-Path -Relative |ForEach-Object {New-Item -ItemType Directory $newDir/$_}

Нужно ли тут что-то добавлять, или и так всё понятно?

> Не высосанная из пальца жесть. Это один из случаев с которыми я сталкивался. Да, именно с таким случаем я сталкивался единожды. Но я сталкивался с десятками других единичных случаев, когда я реально задумывался о том, что вся эта хвалёная "гибкость" командной строки заканчивается сразу же, как только я сталкиваюсь с неповседневной задачей.

Всё правильно. Unix-way, это не про универсальные тулзы, могущие всё и даже больше, а про возможность собрать из простых утилит конвеер, который решит твою проблему. Иногда уродливый конвеер, да.
Именно в этом и заключается гибкость - недостающий в утилите функционал реализуется другими программами в конвеере.

> Во-во. Ещё один ман с тысячью опций. И на каждую специфическую задачу по ещё одному man'у.

А как ты хотел? Если через пайпы будут гоняться объекты, а не текст, маны придётся читать ещё чаще, к слову.

>> А с чего ты решил, что твоя конструкция вообще будет эффективнее? Она также обойдёт ВСЕ файлы в директориях и потрогает диск столько же раз.
> Смотря что с чем сравнивать. С cp, например, простейшим решением может оказаться копировать файлы безусловно, даже если я копирую копию файла в него самого. Есть два файла, совпадающих бит-в-бит, но я тем не менее копирую один в другой, дабы не плодить себе специальных случаев для обработки при написании командной строки.

Я сравнивал с не существующей конструкцией "недо-find + нечто, умеющее фильтровать и парсить sql".
Но в любом случае, тебе тогда был нужен rsync, судя по тому, что ты описал.

>> Замена N маленьких приложений на один комбайн - действие противоположное "юниксвею" по смыслу.
> Во-во. Я о том же.

Нет. Я понимаю, что, в теории, ты хочешь утилиту которая умеет рекурсивно обходить директории, которая передаёт всё в фильтратор, который уже передаёт всё в удалятор/переименоватор/что-то ещё.
Но на практике это жестокая жесть и верховенство идеологии над здравым смыслом.
Условное "find ./ | xargs rm -f" вместо "rm -fr ./" - это УЖОС и оверинжиниринг в чистом виде.
Простые вещи должны делаться просто.
Твоя конструкция решает только одну проблему: буквальное соответствие принципу DOTADIW.
Никакие практические проблемы не решаются. Более того, облегчив донельзя условные find и rm мы приходим не только к тому, что удаление директории теперь делается двумя командами, а не одной, но и к тому, что если мы захотим воткнуть в эту схему фильтратор между find'ом и rm'ом, то, в отличие от кастрированных find и rm, фильтратор обречён быть переусложнённым комбайном. Почему? Потому что он должен уметь фильтровать ВСЕ типы объектов, которые подаются ему на вход. Уметь понимать, какие объекты можно друг с другом сравнивать, какие нет. Уметь достаточно сложные выражения. Да много чего ещё должен будет уметь.

>> 1) Такие утилиты уже есть.
> Пример?
> grep? Ха-ха.
> awk? Он так и не научился в заголовки столбцов, их так и приходится отсчитывать на пальцах, чтобы выбрать нужный. Да и синтаксис его совершенно не совместим с shell'ом, приходится жестоко экранировать. Ну, и мне не нравится, то, что в awk не стоит умолчательного действия "вывести совпадающую строку".

Да, например, grep, awk, sed. Perl/python как вариант, хотя это уже часто повод сразу на них и написать.
Снова повторяю: юниксвей - это не когда у тебя одна тулза на все случаи жизни, а когда ты из кучи можешь слепить то, что решает твою проблему.
Серебряной пули всё равно не существует, предположение о том, что мы можем написать универсальный фильтратор на все случаи жизни - ложно. И дело не в синтаксисе, хоть с sql, хоть c R - всё равно их рано или поздно не хватит. Или хватит, но только уродливой конструкцией. Это, кстати, при том, что бОльшую часть времени это будет избыточный и неиспользуемый функционал.

>> 2) Отрывать функционал фильтрации там, где он действительно нужен - вредительство и больше ничего.
> Это утверждение, которое необосновано ничем. В этом треде никто ни разу не высказал ни единого слова, которое можно было бы считать аргументом в пользу этого утверждения.

Оно обосновано принципом KISS и нежеланием городить избыточные абстракции. См. выше примеры про powershell и про find + rm.

> И тем не менее написал "синтаксис не является признаком юниксвейности". Зачем? Чтобы я усомнился в том, что ты меня понимаешь? Или чтобы я увидел, что ты умеешь в демагогию? Или чтобы была возможность поговорить со мной о демагогии, уведя разговор в сторону? Или зачем? Какую конкретно цель ты преследовал этой фразой?

Да, кажется я всё же не в тему немного сказал, извиняюсь. Ну или просто не могу сейчас вспомнить, к чему это было.

> Давай уточним. Что ты понимаешь под unix-way?

Принципы проектирования приложений, главным образом, для использования в базовой поставке unix-like систем.

> То что описал Раймонд в TAOUP?

Знаком с этими принципами (по раймонду) только в рамках страницы на русскоязычной вики.
Вот этой: https://ru.wikipedia.org/wiki/%D0%A4%D0%...

Для меня юниксвейность всегда была тем, что там описано в начале (авторство - Дуг Макилрой).
И - самое главное - это _философия_ unix, а не заповеди, которым нужно следовать с неистовством религиозных фанатиков. Реймонд, на мой взгляд, прав только про KISS, но как по мне, его неправильно считать основоположником этого принципа хоть в какой-то мере.

> что эти принципы требуют неукоснительного выполнения, а отклонения от них -- это отклонения от unix-way

Понимаю, почему у тебя так бомбит даже не читая дальше. Конечно, пересказанное тобою - трэш.

> Зигмунд Фройд бы, чётко определил бы TAOUP в тяжкий случай психологической защиты под названием рационализация.

Вполне возможно. Я не читал. В целом, Реймонд воспринимается мной как балабол, который очень много говорит и советует, но не понятно, что на самом деле сделал нужного.

> Мне не нужны многостраничные высеры порождённые действием психологических защит.

Так игнорируй. И "Закон Линуса" и "Собор и Базар" реймонда - графоманские высеры, например, почему я не удивлён, что TAOUP, судя по всему, тоже?
Немного не в тему, но освежая в википедии память о реймонде не смог не заржать в голос с этого: "Реймонд — активный либертарианец (также называет себя политическим анархистом), имеет чёрный пояс в тхэквондо, он неоязычник и выступает за право носить и использовать огнестрельное оружие."
Неплохо так у чувака в голове намешано, да?)

> Идея unix-way служит исключительно политическим целям. Никаких технических целей она решить не в состоянии. Тебе интересна политика? Мне интересна, но все эти насквозь прогнившие идеологии единственное предназначение которых пудрить мозги широким массам я изучаю исключительно чтобы лучше понять ущербности мышления широких масс. Других применений им я не могу найти.

Unix-way - это философия написания простых и практичных программ. Ограниченно применимая.
Хотя это конечно как посмотреть. Для кого-то это религия или полит. идеология.
Вот это мне как раз (в конексте юниксвея) не интересно.
Ущербность мышления - считать, что unix-way (или любая иная философия проектирования чего-либо, сформулированная сложнее чем KISS) должна беспрекословно соблюдаться. Например, и vi и top появились ещё в ТЕ времена, формально являются нарушением "строгого" unix-way, но ничего от этого не случилось. И их даже нельзя назвать такими уж комбайнами (прим. - vi, но не vim).

Ответить | Правка | ^ к родителю #180 | Наверх | Cообщить модератору

187. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 02-Сен-19, 10:09 
>> что эти принципы требуют неукоснительного выполнения, а отклонения от них -- это отклонения от unix-way
> Понимаю, почему у тебя так бомбит даже не читая дальше. Конечно, пересказанное
> тобою - трэш.

Нет, не понимаешь. Пытаться на принципах созданных в популистских целях -- это абсолютно ущербный подход. Не принципы надо гнуть под реализацию, а реализацию под принципы. Если ты гнёшь принципы, то это называется беспринципность, или отсутствие принципов.

При этом, ты можешь сколько угодно демонстративно отрекаться от Эрика Раймонда, но ты сейчас делаешь ровно то же самое, что и он. _Ровно_ то же самое. И все эти отречения таким образом, яйца выеденного не стоят.

find можно делать как угодно, так как ты считаешь это удобным, но не надо считать что автоматические будет получаться так, что всё, что удобно тебе -- это unix-way. Тебе хочется всего и сразу, и иметь принципы, и делать всё что захочется, всё что ты считаешь удобным. Но так не бывает. Если твои принципы никак не ограничивают тебя, то это не принципы. Если всё, на что твои принципы способны -- это рационализировать статус кво, то это не принципы, а рационализация. Рационализация же совершенно бесполезна в инженерном смысле, она может быть полезна в психологическом/политическом смыслах, но в техническом она бесполезна и даже вредна.

Ответить | Правка | ^ к родителю #182 | Наверх | Cообщить модератору

192. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 02-Сен-19, 18:10 
>>> что эти принципы требуют неукоснительного выполнения, а отклонения от них -- это отклонения от unix-way
>> Понимаю, почему у тебя так бомбит даже не читая дальше. Конечно, пересказанное тобою - трэш.
> Нет, не понимаешь. Пытаться на принципах созданных в популистских целях -- это абсолютно ущербный подход. Не принципы надо гнуть под реализацию, а реализацию под принципы. Если ты гнёшь принципы, то это называется беспринципность, или отсутствие принципов.

Какие принципы? Где ты такое слово-то нашёл? Сам сказал - сам опроверг - очень удобно.
Речь о филососфии unix, о ПОДХОДЕ к проектированию, а не о заповедях, сколько раз это нужно повторить, чтобы ты меня услышал?
Вот например, философия archlinux - rolling релизы и стремление поддерживать всегда актуальные версии. Если в archlinux откладывается попадание какого-то обновления, например, из-за того, что там есть баг или уязвимость - это не значит, что они нарушают какие-то принципы или попирают философию. Это значит, что они не являются тупыми фанатиками.
Ты же выставляешь тупейшую форму фанатизма не то что за норму, а за идеальное положение вещей.
"Принципы" проектирования unix были написаны постфактум и отражали реальное положение вещей, а не наоборот - никто не писал юникс по заранее написаным канонам. Философия появилась после, как попытка понять, почему юникс так выстрелил.

tl;dr - все твои претенезии исключительно от извращённого понимания того, что есть unix-way.

> При этом, ты можешь сколько угодно демонстративно отрекаться от Эрика Раймонда, но ты сейчас делаешь ровно то же самое, что и он. _Ровно_ то же самое. И все эти отречения таким образом, яйца выеденного не стоят.

Мне очень смешно это читать.
Вместо того, чтобы как-то по-существу возразить мне, ты обвинил меня в том, что я делаю что-то как чел в книге, которую я не читал.
Я думаю это просто упрямство.

> find можно делать как угодно, так как ты считаешь это удобным, но не надо считать что автоматические будет получаться так, что всё, что удобно тебе -- это unix-way.

Я так и не считаю. Цитату, где я пишу так в студию.

> Тебе хочется всего и сразу, и иметь принципы, и делать всё что захочется, всё что ты считаешь удобным. Но так не бывает.

Нет. Во-первых, я уже написал, что принципы - это твоя выдумка и больше ничего. Далее я написал, что "принципы" - это не заповеди, а потому строгое следование им не требуется.
В третьих, я сразу ограничил область применения "юникс-подхода" - 1) он хорош там, для чего был создан и в аналогичном 2) он по-определению предполагает не программы-комбайны, а совмещение возможностей нескольких программ. Даже если одной программой-комбайном удобнее.
("Фильтратор" в твоей конструкции именно комбайн. А find и rm - бесполезные, неюзабельные обрубки.)
Так что врать не надо.

> Если твои принципы никак не ограничивают тебя, то это не принципы.

"Юникс-вей" - это и не принципы. И не заповеди. Сколько ещё раз я должен это повторить?

> Если всё, на что твои принципы способны -- это рационализировать статус кво, то это не принципы, а рационализация.

Нет, это философия, пытающаяся сформулировать подходы к написанию простых и универсальных решений.
Рационализация? Блин, АБСОЛЮТНО ВСЁ ПРОГРАММИРОВАНИЕ ЭТО РАЦИОНАЛИЗАЦИЯ!
Никто, кроме ПОЕХАВШИХ не пишет программы ради того, чтобы они соответствовали какой-то идеологии!
Юникс был написан чтобы РАБОТАТЬ, а не чтобы соответствовать unix-way!
Если проблему невозможно эффективно решить следуя каким-то "принципам", а проблему решать нужно, значит нужно накласть на все "принципы", "заповеди" и весь прочий сектантский бред и ДЕЛАТЬ.
Не знаю, замени слово "принципы" на "рекомендации", может так тебя отпустит.

> Рационализация же совершенно бесполезна в инженерном смысле, она может быть полезна в психологическом/политическом смыслах, но в техническом она бесполезна и даже вредна.

А я утверждаю противоположное. Программы должны решать проблемы пользователя, максимально удобным и универсальным способом. Таким был unix, поэтому подход, с которым его делали в той или иной мере стараются воспроизводить и по сей день.
При этом, ни одна идея-расширение "юниксвея", типа повершелла по-настоящему так и не выстрелила. Нишевый, мало кому нужный продукт.

Ответить | Правка | ^ к родителю #187 | Наверх | Cообщить модератору

196. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 02-Сен-19, 23:00 
> Речь о филососфии unix, о ПОДХОДЕ к проектированию, а не о заповедях,
> сколько раз это нужно повторить, чтобы ты меня услышал?

Когда каждый использует свои собственные подходы -- это значит, что нет никаких единых подходов. Каждый городит кто во что горазд.


> Вот например, философия archlinux - rolling релизы и стремление поддерживать всегда актуальные
> версии.

Это не философия. Это способ реализовать миссию дистрибутива. Миссию с некоторой натяжкой можно назвать философией. Наверное можно. Я не знаю, что там думают разработчики ArchLinux о том, зачем их дистрибутив существует, то есть я могу лишь из самых общих соображений предполагать, в чём собственно их миссия.

>> При этом, ты можешь сколько угодно демонстративно отрекаться от Эрика Раймонда, но ты сейчас делаешь ровно то же самое, что и он. _Ровно_ то же самое. И все эти отречения таким образом, яйца выеденного не стоят.
> Мне очень смешно это читать.
> Вместо того, чтобы как-то по-существу возразить мне, ты обвинил меня в том,
> что я делаю что-то как чел в книге, которую я не
> читал.

То есть ты не только не можешь понять претензий к Раймонду, ты даже не замечаешь этих претензий? Любопытно.

Ответить | Правка | ^ к родителю #192 | Наверх | Cообщить модератору

197. "Представлена новая командная оболочка nushell"  +/
Сообщение от Дон Ягон (ok), 03-Сен-19, 01:02 
>> Речь о филососфии unix, о ПОДХОДЕ к проектированию, а не о заповедях, сколько раз это нужно повторить, чтобы ты меня услышал?
> Когда каждый использует свои собственные подходы -- это значит, что нет никаких единых подходов. Каждый городит кто во что горазд.

Подходы, или рекомендации к написанию программ существуют, только они не являются религиозными.
Уровень абстракции должен выбираться осознанно - мы не оборачиваем все сисколы функциями обёртками - следовательно, помимо соответствия "юниксвейности" (в той или иной степени) есть ещё какие-то критерии, определяющие дизайн приложения. Не так ли?

>> Вот например, философия archlinux - rolling релизы и стремление поддерживать всегда актуальные версии.
> Это не философия. Это способ реализовать миссию дистрибутива. Миссию с некоторой натяжкой можно назвать философией. Наверное можно.

А это уже софистика.
Философия archlinux (которую я почерпнул из сегодняшней новости про Кроа-Хартмана) это того же рода "философия", как и "философия unix". При желании можно заменить "философия archlinux" на "принципы archlinux" - суть моего посыла от этого не меняется.
Если арчедевелоперы отошли от своих "принципов" во имя объективных причин, они не беспринципные, а просто не фанатики.
Их "философия", "принципы" - это ориентир, цель, к которой нужно, по-возможности, стремиться. Вектор движения.
C "юниксвеем" всё аналогично.

>>> При этом, ты можешь сколько угодно демонстративно отрекаться от Эрика Раймонда, но ты сейчас делаешь ровно то же самое, что и он. _Ровно_ то же самое. И все эти отречения таким образом, яйца выеденного не стоят.
>> Мне очень смешно это читать.
>> Вместо того, чтобы как-то по-существу возразить мне, ты обвинил меня в том, что я делаю что-то как чел в книге, которую я не читал.
> То есть ты не только не можешь понять претензий к Раймонду, ты даже не замечаешь этих претензий? Любопытно.

Как я могу понять претензии к Реймонду, если я не читал TAOUP?
Может оставим его уже в покое? Кто угодно может сформулировать свои личные "принципы" юниксвея, но свершенно не понятно, почему мы должны обращать на это внимание. Всё было сформулировано задолго до Раймонда и без его помощи.
Какой вообще вклад Раймонда в опенсорс? Писал код в fetchmail и emacs? Написал эссе в котором технично вылизывает жопу Торвальдсу? Блин, его принципы unix были сформулированы, судя по дате выхода книги, в 2002 году, когда никакого юникса (в изначальном виде) уже толком и не было.
Я правда не понимаю, почему нужно обсуждать его, что бы там он не писал.
Но если и нужно, то с тем, кто читал. Со мной можно собор и базар, например, обсудить, если так хочется про Реймонда.

Но я, кстати, действительно в одном месте неверно тебя понял, а именно:
> эти принципы требуют неукоснительного выполнения, а отклонения от них -- это отклонения от unix-way

Я думал, что ты обвиняешь Реймонда в том, что он определил где-то строгие принципы unix-way, а потом рассказывает, что нарушать их тоже unix-way.
Но нет, этого, судя по всему, хочешь ты. И конечно же, ты тотально неправ в своих желаниях, это какой-то предельно оторванный от жизни идеализм. Когда программы пишут не исходя из потребностей, а из идеологии получается прокрустово ложе.
Могу тут сослаться на нелюбимого мной Торвальдса: "Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда.".
Именно поэтому круто, что "unix-way" - это культурные нормы и подходы к разработке ПО, а не жёстко  прописанные правила, нарушение которых карается расстрелом. Эти нормы и подходы сформировались естественным путём и постфактум, в ходе написания ПО. И они отражают то, как удобно делать на практике, по-настоящему, а не на бумаги.
Если Реймонд выступает за это же, то он прав, с какой бы насмешкой я бы не относился к нему за собор и базар и тысячи глаз, которые обязательно не пропустят ошибку в коде. Но судя по википедии, всё же нет, он не про это; он просто графоман. Но всё же - я не читал TAOUP.

Ответить | Правка | ^ к родителю #196 | Наверх | Cообщить модератору

186. "Представлена новая командная оболочка nushell"  +/
Сообщение от Анонимный Алкоголик (??), 02-Сен-19, 05:35 
Транслятор с языка Ада кстати тоже не нарушает увэй...
Ответить | Правка | ^ к родителю #180 | Наверх | Cообщить модератору

188. "Представлена новая командная оболочка nushell"  +/
Сообщение от Ordu (ok), 02-Сен-19, 10:10 
> Транслятор с языка Ада кстати тоже не нарушает увэй...

Не нарушает. Но он не заточен под использование вместо шелла.

Ответить | Правка | ^ к родителю #186 | Наверх | Cообщить модератору

199. "Представлена новая командная оболочка nushell"  +/
Сообщение от Анонимный Алкоголик (??), 05-Сен-19, 05:44 
Ну и find вообще-то вместо shell будет как-то неостёр...
Ответить | Правка | ^ к родителю #188 | Наверх | Cообщить модератору

99. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Аноним84701 (ok), 29-Авг-19, 21:33 
> Вообще это юнихвей, когда одна программа делает одно действие и делает это хорошо.

Нет, это просто удачно легло на приведенный пример.
А если нужно было бы отфильтровать вывод пакетного менеджера, статистику сетевой карты и т.д.?

Возможность передачи и работы с структурированными данными - следущая ступень, IMHO.
К тому же, оно позволяет более  "юнихвейный юнихвей" - т.к. более универсально/генерализированно, да и не нужно долбиться со всякими особыми случаями из-за экранирования, пробелов/разделителей, неполных строк и прочего.

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

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

125. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (125), 30-Авг-19, 10:34 
структурированные и типизированные данные - это круто, да.
но дотнет - говно, а раст.. не понятно.
Ответить | Правка | ^ к родителю #99 | Наверх | Cообщить модератору

109. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Wilem (?), 29-Авг-19, 22:55 
Разница между nu-ls и find это не вопрос синтаксиса. К бешу это сравнение вообще не применимо, тк он не умеет инфу о файлах загружать. Find - это не беш.

Тут речь про общий подход - единый формат данных и один раз выученные операции работы с абсолютно любыми данными в этом формате. Это проще понять и запомнить. Меняться будут только источники данных.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

13. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от corvuscor (ok), 29-Авг-19, 12:29 
Не, ну табличный разбор вывода - это норм тема.
Кто знает, такое к башу прикрутить можно?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (5), 29-Авг-19, 12:40 
Баш скриптом.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

20. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (9), 29-Авг-19, 12:40 
awk
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

21. "Представлена новая командная оболочка nushell"  +8 +/
Сообщение от aa (?), 29-Авг-19, 12:41 
Если бы пользователи умели awk, grep и sed, программисты были б не нужны. (с) непомнюкто
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

22. "Представлена новая командная оболочка nushell"  +3 +/
Сообщение от Andrey Mitrofanov_N0 (??), 29-Авг-19, 12:43 
> Не, ну табличный разбор вывода - это норм тема.
> Кто знает, такое к башу прикрутить можно?

Я без понятия, какие-такие двоично-древовидные данные эти ваши повершелы таблично представляют, но....


| column -t


не Вам подойдёт?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

164. "Представлена новая командная оболочка nushell"  +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:13 
Сходу вижу csvkit (но когда делали такие задачки, его ещё не было).
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

27. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Аноним (27), 29-Авг-19, 12:56 
Идея хорошая, но не взлетит исключительно потому, что уже есть де-фактный стандарт в виде bash (sh-фанатики, даю установку триггернуться.)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

58. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Crazy Alex (??), 29-Авг-19, 15:02 
Идея хорошая (правда, далеко не новая). Реализация - дрянь.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

149. "Представлена новая командная оболочка nushell"  –3 +/
Сообщение от Wilem (?), 30-Авг-19, 18:36 
> но не взлетит исключительно потому, что уже есть де-фактный стандарт

Подобная аргументация никогда не работает. Что-то может не взлететь потому, что оно никому не нужно, а никак не потому, что что-то уже стандарт. Взлетит или нет зависит от того, что они дальше с ним сделают, но сама идея правильная и хорошая и уже видно, что лучше беша (идея, а не шелл).

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. Скрыто модератором  –1 +/
Сообщение от Vitaliy Blatsemail (?), 29-Авг-19, 13:10 
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

34. Скрыто модератором  –2 +/
Сообщение от Аноним (27), 29-Авг-19, 13:39 
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

39. Скрыто модератором  –3 +/
Сообщение от Ordu (ok), 29-Авг-19, 13:53 
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

61. Скрыто модератором  +4 +/
Сообщение от Crazy Alex (??), 29-Авг-19, 15:07 
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

68. Скрыто модератором  +/
Сообщение от Vitaliy Blatsemail (?), 29-Авг-19, 15:47 
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

74. Скрыто модератором  –1 +/
Сообщение от Ordu (ok), 29-Авг-19, 16:33 
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

112. Скрыто модератором  +1 +/
Сообщение от кот в сапогах (?), 30-Авг-19, 00:31 
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

30. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Проходил мимо (?), 29-Авг-19, 13:14 
Rust заточен на обработку строк в utf8. Интересно, как этот шелл будет работать в кириллических раскладках, отличных от юникода?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

36. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (36), 29-Авг-19, 13:41 
Тут один такой остался, кому это надо, saahriktu.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

44. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Аноним84701 (ok), 29-Авг-19, 14:24 
> Rust заточен на обработку строк в utf8. Интересно, как этот шелл будет
> работать в кириллических раскладках, отличных от юникода?

Cудя по картинкам, в винде оно как-то работает. Или там уже юникод в терминал подвезли?

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

151. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 30-Авг-19, 18:49 
Старая консоль поддерживала и поддерживает UCS-2, то есть два байта на символ. Проблема как я понял в том, что UTF-8 это в худшем случае 4 байта, а значит полный UTF-8 отобразить не получится. Но например ввод и вывод русского+английского+чешского в одной строке работает. UTF-8 они пилят, но судя по блог-постам ещё не допилили, потому что пытаются не поломать старое.
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

38. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Аиксойд (?), 29-Авг-19, 13:53 
При чтении различных логов будет удобно довольно )
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

41. "Представлена новая командная оболочка nushell"  +/
Сообщение от пийшелл (?), 29-Авг-19, 14:01 
Ну не целый шелл же
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

71. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (25), 29-Авг-19, 16:11 
Вот если они свою обработку вынесут в библиотеку, будет годно. А сам шел уже будет обёрткой над бибилиотекой. А над можно и что-то другое построить.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

69. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Vitaliy Blatsemail (?), 29-Авг-19, 15:51 
> При чтении различных логов будет удобно довольно )

Не будет. Для чтения логов у нас есть бажецтвенный system с постраничным перелистыванием.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

48. "Представлена новая командная оболочка nushell"  +/
Сообщение от анонимус (??), 29-Авг-19, 14:37 
> В оболочке применяется привычная для пользователей Unix система конвейеров в формате "команда|фильтры|обработчик вывода".

Для пользователя Unix систем привычно, когда пайп создает неименованный канал между двумя процессами. А тут пайп - это видимо просто такой синтаксический сахар.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

54. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Аноним (27), 29-Авг-19, 14:56 
То есть в баше пайп это не синтаксический сахар, а самая что ни на есть низкоуровщина? Ниже только кварки с глюонами?
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

63. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от user90 (?), 29-Авг-19, 15:09 
FIFO
Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

70. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от пох. (?), 29-Авг-19, 15:57 
ну в общем-то да, ниже уже только файловые дескрипторы.
man 2 pipe (или в "новом стандарте" уже нету?)

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

105. "Представлена новая командная оболочка nushell"  –3 +/
Сообщение от Аноним (105), 29-Авг-19, 21:53 
Фд - это высокоуровневое апи оси. Пайпы - нескучный смузи-синтаксис над фд-шками. Прув ми вронг.

И в баше, и в нюшеле пайпы не более чем смузи синтаксис. Эген, прув ми вронг

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

165. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:24 
В шелле pipe -- это одна из основополагающих конструкций.

Синтаксический сахар, юноша -- это когда берём что-то зубодробительное и делаем его более мягким и пушистым.  При этом есть возможность обращения как с исходным _синтаксисом_, так и с "сахарным".

А теперь покажите, как Вы собрались делать в posix shell пайп без пайпа.  Нет, не на промежуточных файлах, а именно трубу.  То есть что именно считаете засахаренным.  В шелле, мальчик, в самом шелле.

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

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

95. "Представлена новая командная оболочка nushell"  +2 +/
Сообщение от Annoynymous (ok), 29-Авг-19, 21:15 
Ни тебе снапа, ни тебе флатпака, ни тебе аппимиджа. Недостаточно хипстово!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

108. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним (108), 29-Авг-19, 22:55 
В Unix shell всё есть текст. В PowerShell всё есть объект. А тут что?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

126. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (125), 30-Авг-19, 10:40 
а тут всё есть раст.
Ответить | Правка | ^ к родителю #108 | Наверх | Cообщить модератору

131. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от пох. (?), 30-Авг-19, 11:17 
> В Unix shell всё есть текст. В PowerShell всё есть объект.

э... вы не в курсе, как устроены эти его "объекты"? Тогда не буду огорчать, пребывайте в счастливом заблуждениИ, что хоть powershell написан руками и придуман головой.

>  А тут что?

херня тут. Ну и что? Зато на хрусте!


Ответить | Правка | ^ к родителю #108 | Наверх | Cообщить модератору

153. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (153), 30-Авг-19, 19:01 
> вы не в курсе, как устроены эти его "объекты"?

Нет, конечно. Мне и так пришлось узнать о нём намного больше, чем хотелось.

Ответить | Правка | ^ к родителю #131 | Наверх | Cообщить модератору

145. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним (145), 30-Авг-19, 18:23 
Зачем потребовалось скрещивать shell с json-RPC?
Поклонникам shell нафиг не уперся json... поклонники json никогда не полезут в shell...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

152. "Представлена новая командная оболочка nushell"  –2 +/
Сообщение от Wilem (?), 30-Авг-19, 18:54 
:) Реальный мир (где люди работу делают) нет никаких поклонников. Есть задачи и инструменты с помощью которых они решаются.
Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

156. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от Аноним (156), 30-Авг-19, 20:05 
Серещивание shell с json - это однозначно не про реальный мир...
Ответить | Правка | ^ к родителю #152 | Наверх | Cообщить модератору

166. "Представлена новая командная оболочка nushell"  +/
Сообщение от Michael Shigorinemail (ok), 30-Авг-19, 22:25 
А потом поезда с рельс сходят у таких вот самоуверенных.
Ответить | Правка | ^ к родителю #152 | Наверх | Cообщить модератору

191. "Представлена новая командная оболочка nushell"  +/
Сообщение от Wilem (?), 02-Сен-19, 14:33 
Речь исключительно про поклонников, а не шелл с джейсоном.
Ответить | Правка | ^ к родителю #166 | Наверх | Cообщить модератору

159. "Представлена новая командная оболочка nushell"  +1 +/
Сообщение от user90 (?), 30-Авг-19, 21:52 
Ну ладно, "структурированные данные" и пара_встроенных_модулей. Это просто ниачем. А если отмасштабировать? Тогда получится забавнее: возвращает эта хрень какой-то объект - как ты будешь с ним работать? Да первым делом полезешь смотреть ТЕКСТОВОЕ описание "объекта"! Но позвольте, это же.. ага! Да еще городить какие-то свои стандарты. Короче, лажа!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

184. "Представлена новая командная оболочка nushell"  +/
Сообщение от Аноним (189), 02-Сен-19, 04:58 
Не так. Добавил разработчик в неструктурированный вывод своей утилиты новое поле - ваши скрипты посыпались, или, что хуже, сломались незаметно. Со структурированным выводом такого не будет.
Ответить | Правка | ^ к родителю #159 | Наверх | Cообщить модератору

169. "Представлена новая командная оболочка nushell"  +/
Сообщение от vitalif (ok), 31-Авг-19, 02:27 
> [object Object]

Охренеть разбор, jq как-то лучше парсит

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

172. "Представлена новая командная оболочка nushell"  +/
Сообщение от rihad (ok), 31-Авг-19, 09:50 
Табуляция и фильтр по колонкам - очень симпатично. Но это не Unix way поэтому наврядли в ближайшее время сможет заменить /bin/sh и его производные. Если они сохраняют как-то обратную совместимость и позволяют эти надстройки использовать при желании - то круто. А так... все это можно реализовать на bash или sh алиасами и функциями, вот только нестандартны они, к сожалению.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

201. "Представлена новая командная оболочка nushell"  –1 +/
Сообщение от Анонимemail (201), 08-Сен-19, 09:09 
bolshoe spasibo druzia
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру