LINUX.ORG.RU
ФорумTalks

CLI vs GUI

 ,


0

0

Я тут понял, что у консоли есть неопровержимое преимущество перед гуйнёй.

В гуйне могут в новом релизе кнопки передвинуть или вообще убрать, а консоль всегда одна, родненькая. В крайнем случае можно сделать --help. И всегда можно написать скрипт для облегчения работы, чего с гуйнёй сделать нельзя.



Последнее исправление: Dimez (всего исправлений: 1)

Не всегда родненькая. В новом релизе cli также могут изменить синтаксис командной строки и скрипт посыпется.

psion
()

Консоль, конечно, рулит.

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

В новом релизе cli также могут изменить синтаксис командной строки и скрипт посыпется.

Я такого номера даже под офтопиком не припомню... Вы случайно не перепутали с изменением шэла по умолчанию?

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

и то и то запускается командой nc. В одном дистре установлено по дефолту одно, в другом другое. Ты такой запускаешь nc с привычными ключами, а оно шлет тебя маны читать или ставить нужный nc

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

Там различия прям такие что кроме тривиального «nc ip port» практически всё взаимно несовместимо. Впрочем там не bsd/gnu даже вроде и их как минимум три вариации и все несовместимые.

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

и то и то запускается командой nc.

У меня ещё хуже, запускаю nc, а оно мне какие-то синенькие панельки кажет. Намек понятен?

anc ★★★★★
()

Много же еще открытий чудных ждет тебя впереди.

urxvt ★★★★★
()

Идеальный вариант – это динамическая библиотека реализующая логику и GUI интерфейс.

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

Лучше писать на нормальном ЯП, а не скриптовой лапше.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от anc

У меня ещё хуже, запускаю nc, а оно мне какие-то синенькие панельки кажет. Намек понятен?

Это несомненный win! :)

Dimez ★★★★★
()

а консоль всегда одна, родненькая

Так там тоже постоянно приколы.

ffmpeg и mpv вот помню — постоянно издеваются с двиганмем флагов и всего прочего.

Да и в линуксах приколов полно, когда там всякие deprecated и всё такое.

fornlr ★★★★★
()

Угу.. Залазишь регулярно в консольку, и пяти лет не прошло, а флаги поменяли, старые уже не работают. Новых понапридумывали - вот спасибо, блин…

LightDiver ★★★★★
()

В целом да. Но иногда попадаются нюансы.

Я как-то много лет назад запорол болванку из-за того, что cdrecord в моём дистрибутиве заменили на wodim, который мимикрировал под него, но сообщение об ошибке от которой k3b (из которого оно и вызывалось) не распарсил.

Ещё в ffmpeg одно время любили менять синтаксис ключей (и с API ко всяким libav* там тоже чехарда была).

Но да, пожалуй, это исключения.

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

Лучше писать на нормальном ЯП,

А такие в природе есть?

Psilocybe ★★★★
()

В крайнем случае можно сделать --help.

В общем случае, это ни разу не обязательно реализовано.

sT331h0rs3 ★★★★★
()

чего с гуйнёй сделать нельзя.

Хаха. В win32 можно. В гноме, кажется, тоже.

Shadow ★★★★★
()
  1. гуйня тоже скриптуется

  2. параметры кли все время приходится вспоминать и нагугливать

Syncro ★★★★★
()

браво, ватсон! пользуюсь этой фичей уже 20 лет.

crypt ★★★★★
()

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

tiinn ★★★★★
()

Я бы добавил тэги UX, потому что проблема весьма острая. И заключается она в том, что вместе переиспользуемых кубиков и семантических единиц GUI кодеры чисто исторические не просто получили индульгенцию, а даже оказались обязаны под каждый чих лепить с нуля программы, которые бы обрабатывали отдельные нажатия-отпускания кнопок клавиатуры, нажатие-отпускание отдельных кнопок мыши. Просто представьте, каким адом было бы программирование код консоль, если бы там нужно было рисовать отдельные буковки самому? Здесь вопрос не в преимуществе консоли, а в убогости классического GUI, которое таковым стало по цепочке Xerox->Джобс->Microsoft. На никсах, кстати, была попытка сделать семантический GUI, но они сильно ударились в вопрос эффективности работы через медленное модемное соединение, и на таком оптимизированном инструменте стало сложно писать код.

Хотя, на самом деле NeXTSTEP имел одни из самых простых инструментов создания GUI на рынке — дальше вся индустрия уже покатилась по наклонной. Причем, абсурд этого скатывания заключается в том, что с одной стороны каждая софтина уникальна, некомбинируема, и вынуждает привыкать к себе, а с другой стороны эта уникальность на полную не использована, UX сильно хуже, чем мог бы быть при грамотном проектировании.

Один из примеров — горячие клавиши. Это прямо-таки бич GUI, фанаты Vim/Emacs стебутся над гуевинами по этому поводу, но мы ведь знаем примеры замечательных Sublime/VSCode у которых нет этой шизы интерфейса нет, когда одна кнопка пляшет по-своему, рядом текстовое поле занимается чем-то другим, и так далее. По этой причине мне нравится GUI какого-нибудь Starcraft II, где нет такого, что ты выделяешь миникарту и у тебя внезапно перестают работать горячие клавиши — а для офисных GUI разные кнопки в соседних панельках являются нормой.

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

параметры кли все время приходится вспоминать и нагугливать

Гуглить-то зачем, разве манов не хватает?

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

Идеальный вариант – это динамическая библиотека реализующая логику и GUI интерфейс

Пропущено логическое звено, которое позволит легко и быстро лепить из динамической либы GUI, которым мне нужен здесь и сейчас ровно один раз.

Лучше писать на нормальном ЯП, а не скриптовой лапше

А платить за потраченное впустую время мне кто будет?

byko3y ★★★★
()

О сколько нам открытий чудных…

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

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

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

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

Один из примеров — горячие клавиши.

Мне у яблока эта тема нравиться.

anc ★★★★★
()

Ну, во-первых, в консоли может тоже работать по-разному.

root@gideon:~# service sshd restart
root@gideon:~# cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@gideon:~# 
[root@ntfs-a320mh ntfs]# service sshd restart
bash: service: command not found
[root@ntfs-a320mh ntfs]# cat /etc/os-release 
NAME="Arch Linux"
ID=arch
PRETTY_NAME="Arch Linux"
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
[root@ntfs-a320mh ntfs]# 

И не только из-за установленных сервисов, а еще из-за их названий. Навскидку - apache2 vs httpd

Во-вторых, сама консоль - тоже весьма глюкавая, например на спецсимволы.

В-третьих, если бы консоль была удобной для всего - ГУЙ бы не был придуман.

В-четвертых, отвертка не лучше молотка, хоть ею тоже можно забить гвоздь. У нее другие цели.

В-пятых, в отличие от консоли, ГУЙ может отображать большое количество систематизированной информации, при чем не обязательно в текстовом виде.

В-шестых, у ГУЯ есть много фишек, которых by-design не может быть в консоли. К примеру, thumb картинок в каталоге, одну из которых тебе нужно отправить.

В-седьмых, курсор мыши позволяет делать более гибкие манипуляции с данными, нежели буквы и текст. К примеру тот же самый выбор файлов. Пример: мои две камеры наблюдения сохраняют файлы в формате «название_камеры-дата.время» с промежутком каждые 10 минут (homecam-11.04.2022.01.36-15.mp4 streetcam-11.04.2022.05.46-15.mp4) и мне нужно скопировать файлы уличной камеры за 12 апреля с 15 дня по 19 вечера. Мышкой я это делаю за три клика: открытие каталога, клик в начале, обвод рамкой, клик в конце, и три секунды времени. Сколько ты убьешь в сосноли времени ?

В-восьмых, а dialog - это ГУЙ или скрипт ?))

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)
Ответ на: комментарий от windows10

В-шестых, у ГУЯ есть много фишек, которых by-design не может быть в консоли. К примеру, thumb картинок в каталоге, одну из которых тебе нужно отправить

Не вижу проблем для того, чтобы этого не было в консоли:

https://www.destroyallsoftware.com/talks/a-whole-new-world

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

мои две камеры наблюдения сохраняют файлы в формате «название_камеры-дата.время» с промежутком каждые 10 минут (homecam-11.04.2022.01.36-15.mp4 streetcam-11.04.2022.05.46-15.mp4) и мне нужно скопировать файлы уличной камеры за 12 апреля с 15 дня по 19 вечера. Мышкой я это делаю за три клика: открытие каталога, клик в начале, обвод рамкой, клик в конце, и три секунды времени. Сколько ты убьешь в сосноли времени ?

Не вижу причин не выводить на ls табличное сортируемое представление файлов. На самом деле, я даже сам когда-то собирался такую штуку пилить на питоне, но по итогу уперся в то, что питон сам по себе ублюдочен как язык и предпринял попытку сделать питон менее ублюдочным:
https://github.com/byko3y/python-shared-objects
К сожалению, я не учел того факта, что IT индустрия в целом очень инертна, и пока питоньи костыли хоть как-то с болью и металлическим привкусом во рту удовлетворяют потребности индустрии — никто не рыпнется развивать альтернативу. Даже гуглу, даже мозилле тяжело продвинуть альтернативу, куда там анону с LOR-а.

В-восьмых, а dialog - это ГУЙ или скрипт

Во-о-от, а PyQt — это сова или филин?

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

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

Рука дрогнула: «тфу,блин,твоюж...»
И вы описываете только конечное действие, когда у вас уже открыты нужные каталоги. Забираться в глубокие дебри вложенных каталогов в каждом из которых много каталогов уже не «три клика». Эдак можно привести вариант с mc когда у него нужные каталоги открыты в панелях «F5-Enter» ещё быстрее ваших «трёх кликов» получается.

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

Не вижу проблем для того, чтобы этого не было в консоли

Проблема в отсутствии графического режима. Консоль - это не программа которую ты запускаешь в иксах.

НИКТО сегодня не пользуется компьютерами, на которых есть исключительно текстовой вывод на монитор

screen /dev/ttyUSB0 к малинке - вот тебе текстовый вывод на монитор. Выведешь тут какую-нибудь графику, находясь на малине ? ;)

Не вижу причин не выводить на ls табличное сортируемое представление файлов.

Ты не видишь проблем в МОЕМ примере. А теперь умножь этот пример на тысячу, или сколько вызовов возникает в день при использовании десктопа, и ответь, ты что собрался на каждый вызов отвечать скриптом ? Уж не наркоман ли ты ?)

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

И вы описываете только конечное действие, когда у вас уже открыты нужные каталоги.

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

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

Ну так и ты открой нужные каталоги в консоли, проблем-то.

И вот вы уже пытаетесь натянуть гуй на туй.

а за информативность вывода, и удобство взаимодействия. И скорость этого взаимодействия.

На примере консоли при наличии автодополнения получается и информативнее (набрал первые символы жмякнул таб) и быстрее.

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

Пропущено логическое звено, которое позволит легко и быстро лепить из динамической либы GUI, которым мне нужен здесь и сейчас ровно один раз.

Qt?

А платить за потраченное впустую время мне кто будет?

Не так уж много времени это занимает.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Лучше писать на нормальном ЯП, а не скриптовой лапше

А платить за потраченное впустую время мне кто будет?

Не так уж много времени это занимает

Спасибо, первые 6 лет своей карьеры мне об этом забыли сказать — а представляете, если бы я сразу узнал, что на низкоуровневых ЯП можно быстро писать работающие приложения?

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

а представляете, если бы я сразу узнал, что на низкоуровневых ЯП можно быстро писать работающие приложения?

Так и скажите: писать на C++ вы не умеете. И 6 лет не помогли.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от byko3y

а представляете, если бы я сразу узнал, что на низкоуровневых ЯП можно быстро писать работающие приложения?

Разве это не так?

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

Разве это не так?

Это не так, и это было одним из важных факторов того, почему я свалил из опенсорса. На этом аде кодить забесплатно вообще не в кайф. Да-да, я знаю, PSO был на сишке написан, но! Там было экспериментальное системное программирование, которое страшное на любом ЯП, но зато такое мало кто делал. А когда ты любишься с кодом несколько дней ради того, чтобы увидеть, как это делается на скриптовухе в две строчки, то это сильно демотивирует. А вот то, что я сделал в PSO, не сделаешь и в 2 тысячи строк на питоне — я использовал низкоуровневый ЯП по назначению. А вот использовать низкоуровневый ЯП для GUI — это «не по назначению».

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

На примере консоли при наличии автодополнения получается и информативнее

Консоль - это концепция. Автодополнение - всего лишь фишка ускоряющая последовательный набор, и больше ничего.

И это мы еще о задачах не говорим. Давай, отрегулируй мне с консоли например яркость экрана на ноуте. Желательно сразу на максималку. А потом скинь мне эту команду, я ее выполню у себя.

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

Давай, отрегулируй мне с консоли например яркость экрана на ноуте. Желательно сразу на максималку. А потом скинь мне эту команду, я ее выполню у себя.

Какое отношение яркость экрана имеет к копированию файлов? Или в темноте они медленнее копируются?

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

Какое отношение яркость экрана имеет к копированию файлов? Или в темноте они медленнее копируются?

ГУИ, как и консоль - это не только копирование файлов.

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

Я отвечал только на ваш пункт про копирование файликов. Посмотрите по цепочке.

Я даже не сомневался, что приверженцы этого мастурбизма, героически решают одинокие примеры «contra», не видя ситуацию в целом. Это архаичный подход, в итоге ведущий к обрастанию костылями и подпорками. Вместе с тем ГУЙ призван отвечать не за пункт про копирование файлов, а за все пункты, на которые можно наткнуться в процессе использования десктопа.

А что по поводу копирования - то вот сейчас из интереса открыл второй раздел. Оттуда надо половину поудалять, там почти что мусорка. Или скопировать нужное в другое место - операция неважна. Важно то, что в ГУЯх оно смотрится на порядок информативнее и приятнее (а ведь я даже тему не настраивал на этой системе), а выделяется выборочно значительно удобнее и быстрее, нежели в сосноли: https://ibb.co/GH7SD4y - выделение нужных мне элементов заняло 5 сек, с учетом обзора с момента открытия каталога. Сколько бы мне пришлось это делать в консоли - страшно подумать. И это - всего лишь тривиальная операция :)

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 2)
Ответ на: комментарий от windows10

А что по поводу копирования - то вот сейчас из интереса открыл второй раздел.

Рандомное выделение непонятно по какому признаку, отличный пример, как раз для мышевозов.

а выделяется выборочно значительно удобнее и быстрее

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

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

Рандомное выделение непонятно по какому признаку

По признаку нужности, разумеется. Люди - не роботы, они не могут жить по крону. Просмотренные фильмы - можно удалять, непросмотренные - оставить. Скачанные PDF-ки с билетами в кино - можно удалять, скачанные PDF-ки с приглашением на ВНО - нужно оставить. Картинки которые скачал чтобы приложить иллюстрацию в ФБ - можно удалять, а скачанные например обои для рабочего стола - нужно оставить.

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

mc - это ГУЙ. У него есть единый интерфейс и кликабельные меню. От того что реализация не пиксельная а буквенная - оно не перестало быть гуем.

Кроме того, ГУЙ, включая ФМ, взаимодействует с другими компонентами ОС. Вот например, все что ты написал, я хочу сделать на своем телефоне, подключенным по MTP. Рассказывай как ты сделаешь это в мс, а потом я тебе расскажу как это делается в ГУЕвом ФМ :)

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

mc - это ГУЙ.

Нет. mc - это ТУЙ

Вот например, все что ты написал, я хочу сделать на своем телефоне, подключенным по MTP. Рассказывай как ты сделаешь это в мс, а потом я тебе расскажу как это делается в ГУЕвом ФМ :)

Ну вот, козыри пошли :)

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.