Ну, это когда человек, я, ничего не знаю, но очень хочется поговорить.
В общем, представьте себе консольные программы, у них есть стандартный поток ввода и стандартный поток вывода. А ещё у них есть способ обращаться к функциям операционной системы.
Можно было бы не передавать потоки ввода и вывода, а вместо них предоставить системные вызовы, которые их возвращают? Наверное да, но тогда это знание, какой программе какие потоки нужны, пришлось бы держать в ядре, а так оно вроде бы как в пространстве процессов.
И вроде бы как за счёт того, что интерфейс общения с потоком одинаковый у всех программ, программы благодаря этому можно компоновать в цепочки ("пайплайн").
Существует такая нотация как IDEF0, там квадратики со стрелочками с разных сторон (слева входы, справа выходы). Такая аналогия.
Кроме bash существует PowerShell, в котором на вход подаются не файлы, а объекты, и на выходе они же формируются. И там сложный механизм связывания.
Вопросов у меня несколько:
1) почему надо было передавать именно объекты, а не, скажем, указатели на интерфейсы?
2) почему не сделали альтернативу для PowerShell на Java? Ведь всё Java-вское переписывают на .Net, а обратно это зашквар?
3) можно ли придумать нелинейный синтаксис для командной строки? Чтобы компоненты соединялись не цепочкой/деревом, а вообще произвольным графом. Это же вроде бы логично? Даже у консольных программ выходов два - stdout и stderr. Почему бы не передавать дальше на обработку каждый из них? (для этого надо уметь делать компоненты не только с несколькими выходами, но и с несколькими входами).
Для того, чтобы передача файлов от программы к программе заработала надо было написать стандарт POSIX. Появился ли уже новый стандарт (как документ-спецификация) на основе передачи объектов вместо файлов?
Где тут раздел для флуда?
Модератор: Модераторы разделов
-
- Сообщения: 170
- Статус: Дважды Будда Советского Союза
- ОС: Gentoo
Re: Где тут раздел для флуда?
Не плодите сущности сверх необходимого (с)
Ну зачем все усложнять? Какой в этом практический смысл? Упрощение разработки?
И чем плох существующий механизм? Не холивара для, просто действительно интересно Ваше мнение. Если что-то предлагаете, то какие аргументы за, какие против?
ПыСы. Раздел для флуда уже тут
Ну зачем все усложнять? Какой в этом практический смысл? Упрощение разработки?
И чем плох существующий механизм? Не холивара для, просто действительно интересно Ваше мнение. Если что-то предлагаете, то какие аргументы за, какие против?
ПыСы. Раздел для флуда уже тут
Азъ есмь БҌшеный Їзюмъ
-
- Сообщения: 86
- ОС: Gentoo
Re: Где тут раздел для флуда?
Плодитесь и размножайтесь (q) Библия, Бытие 1, стих 28
Если звёзды зажигают, значит это кому-нибудь нужно (q) Маяковский, стихотворение "Послушайте!"
Надо повышать уровни абстрагирования от машинных к человеческим. Алиса, завари два чая.
-
- Сообщения: 170
- Статус: Дважды Будда Советского Союза
- ОС: Gentoo
Re: Где тут раздел для флуда?
Чуть пофлужу и поразмышляю.
Насчет нескольких входов/выходов для программ, идея довольно интересная, в плане параллелизации вычислений. Есть над чем подумать. Есть, например, N входов у некой проги "мегачтото", M выходов, внутри сильное колдунство. Должны ли быть N и M константами или определяться/изменяться в момент... старта проги? Внезапного появления выхлопа другой проги, который пытается поступить на вход "мегачтото"? Вот как это должно определяться? Задача (ИМХО) довольно нетривиальная. Если софтина УЖЕ работает и принимает выхлоп от другой, то все пучком, в параллельных потоках можно принять выхлоп от 100500 других программ. Далее. Должны ли эти данные как-то между собой пересекаться? Кому именно должен быть отдан вывод, и какой именно? А если запускается по отработке другой проги (напр., cat ./mytext | <суперпрога> | (выход 1.) grep <трулюлю> (выход 2.) mtr <траляля>), как в таком случае быть? Что грепать, что трейсить?
Это я к тому, что сама идея - очень хороша. Сам думаю о чем-то наподобие. Но четкой концепции пока выстроить не удается. Давайте обсудим.
И вот еще, для размышлений, например. Алиса, убей соседей, что мешают спать. Ну или электричество им отключи, ага? (это такой намек на зависимость нынешних мешков с мясом от "инновационных технологий").
Кхм. Неисповедимы приколы господни (с) я.
Согласен. Почти целиком и полностью. С небольшой оговоркой - пусть звезды зажигает тот, кому это нужно. Раз Вы используете Gentoo, значит, Вы на это в какой-то мере уже способны. Ну так вперед, творите, зажигайте, никто не против. А если получится "прельстиво и любивно", то и единомышленники будут.Shushandr писал: ↑03.01.2024 12:06Если звёзды зажигают, значит это кому-нибудь нужно (q) Маяковский, стихотворение "Послушайте!"
Надо повышать уровни абстрагирования от машинных к человеческим. Алиса, завари два чая.
Насчет нескольких входов/выходов для программ, идея довольно интересная, в плане параллелизации вычислений. Есть над чем подумать. Есть, например, N входов у некой проги "мегачтото", M выходов, внутри сильное колдунство. Должны ли быть N и M константами или определяться/изменяться в момент... старта проги? Внезапного появления выхлопа другой проги, который пытается поступить на вход "мегачтото"? Вот как это должно определяться? Задача (ИМХО) довольно нетривиальная. Если софтина УЖЕ работает и принимает выхлоп от другой, то все пучком, в параллельных потоках можно принять выхлоп от 100500 других программ. Далее. Должны ли эти данные как-то между собой пересекаться? Кому именно должен быть отдан вывод, и какой именно? А если запускается по отработке другой проги (напр., cat ./mytext | <суперпрога> | (выход 1.) grep <трулюлю> (выход 2.) mtr <траляля>), как в таком случае быть? Что грепать, что трейсить?
Это я к тому, что сама идея - очень хороша. Сам думаю о чем-то наподобие. Но четкой концепции пока выстроить не удается. Давайте обсудим.
И вот еще, для размышлений, например. Алиса, убей соседей, что мешают спать. Ну или электричество им отключи, ага? (это такой намек на зависимость нынешних мешков с мясом от "инновационных технологий").
Азъ есмь БҌшеный Їзюмъ
-
- Модератор
- Сообщения: 20934
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Где тут раздел для флуда?
JShell — это не оно?
википедия://KISS (принцип)
До стандарта тоже неплохо работало. Стандарт — он чтобы зафиксировать то, что уже есть, а не новое придумать.
Вот кому нужно, те пусть и зажигают. ☺
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |