В фантастическом фильме Стивена Спилберга «Особое мнение» 2002 года представлен футуристический и концептуальный компьютерный интерфейс. Здесь отрывок, в котором Том Круз использует его.

Все согласятся, что интерфейс этого будущего невероятен и желанен. Если призадуматься, что является его самым удивительным аспектом? Много лет назад можно было бы сказать, что это тонкие экраны. Или невероятная сенсорная технология. Сегодня у нас есть и то, и другое! На самом деле, то, что у нас есть сегодня, даже лучше; мы можем отображать на экране более двух цветов, намного лучше, что есть в антиутопическом будущем Филипа К. Дика.

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

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

Вначале была командная строка


Интерфейсы командной строки (CLI) доминировали на заре вычислительной техники. До того, как персональные компьютеры обрели популярность, они были предназначены исключительно для тех, кто выучил команды для работы с ними. Первые компьютеры, такие как машины IBM, Apple и ПК, приветствовали пользователей командной строкой — чем-то таким простым, как C:\>_, ожидая ввода команд.


Такие команды, как dir для просмотра файлов или type для просмотра текстовых файлов, были нормой. Хотя этот подход имел свои преимущества с точки зрения прямого управления, он также был подвержен ошибкам пользователя, особенно при случайном вводе команд, таких как format или rm -rf в Unix.

Затем, массовое производство персональных компьютеров привело к появлению графических пользовательских интерфейсов (GUI). Они представили иконки и разместили большую часть функций, которые можно было бы использовать прямо в UI. Цель состояла в том, чтобы свести к минимуму риск того, что пользователи непреднамеренно повредят систему. Хотя командная строка до сих пор используется программистами, с середины 1980-х годов GUI стал доминирующим режимом потребительских персональных вычислений — в частности, подмножество GUI, известное как WIMP (окна, значки, меню, указатель).

GUI, несомненно, стали прорывом в области UX, когда они впервые появились в Macintosh от Apple в 1984 году. Персональные компьютеры только начинали внедряться среди населения, и их функциональность была незнакома большинству. Начинающему пользователю нужно было понять и изучить, что может делать компьютер, и GUI позволял им делать это с помощью меню, иконок и виджетов. Они преодолевали разрыв между техническими и не-техническими специалистами.


Macintosh OS была революцией. И людей, использующих компьютеры, внезапно стало экспоненциально больше, потому что интерфейс стал более доступным для менее технически подкованной аудитории. Переход от CLI к GUI абстрагировал трудоёмкое вербальное общение между людьми и компьютерами и заменил его визуально привлекательными, дорогостоящими интерфейсами. С абстрагированием командной строки все стало возможным! Как далеко мы могли зайти?

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

Однако чем сложнее становилось программное обеспечение, тем сложнее было ориентироваться только с помощью графического интерфейса. GUI принесли с собой сложные меню и панели инструментов, часто заставляя пользователей чувствовать себя потерянными среди множества немаркированных кнопок. Страх нажать не ту кнопку был реальной проблемой. Хотя GUI были визуально привлекательны, они могли быть пугающими и разочаровывающими для пользователей, которые хотели более быстрого способа взаимодействия со своими компьютерами.

AutoCAD — яркий тому пример. Программное обеспечение для 2D- и 3D-чертежей впервые было выпущено в 1982 году. Его обширная функциональность привела к сложному пользовательскому интерфейсу, заваленному меню, подменю и подподменю. За эти годы он добавил головокружительное количество сочетаний клавиш, пытаясь помочь своим пользователям ориентироваться в широте и глубине его функций.


Тем не менее, для среднего потребителя командная строка — это загадочное и немного пугающее место. Именно это побудило к попыткам сделать CLI более простым в использовании.

Например, в CLI Cisco был инструмент под названием Context Sensitive Help, который предлагал два типа справки (словесная справка и справка по синтаксису команды) при вводе ?. Ранний текстовый редактор Vim имел командную строку. Он использовал команды типа :wq для сохранения и выхода, что было быстро. А онлайн-IDE, Repl.it, попыталась объединить элементы GUI и CLI в то, что они назвали визуальной командной строкой или CLUI.

Среди сложности GUI появился проблеск надежды в виде Поиска. Google продемонстрировал, что может найти что угодно в Интернете быстрее, чем пользователи находят что-либо на своих компьютерах. Это привело к идее обучения компьютера с помощью естественного языка.

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


2007 год стал поворотным моментом для поиска в интерфейсах программного обеспечения. Excel представил автозаполнение формул, Visual Studio включил поиск файлов, который также выполнял функции командной строки, а Apple расширила свои возможности поиска, представив поиск в меню справки в OS X Leopard.

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

GUI vs CLI


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

Стандартные графические интерфейсы с их выпадающими меню, кнопками проверки и древовидными списками просто не могут сравниться с диапазоном опций, которые текстовый интерфейс предоставляет без усилий. Всего пятью буквенно-цифровыми символами вы можете выбрать одну из сотни тысяч возможных последовательностей. И выбор любой последовательности происходит так же быстро, как и любой другой последовательности (ввод пяти символов занимает примерно 1 секунду). Попробуйте придумать нетекстовый интерфейс, который мог бы сделать то же самое!


Типичный WIMP

У системы WIMP есть очевидные преимущества. Она упрощает понимание того, как работает компьютер, прикрепляя метафоры физического мира ко всем действиям. Мы настолько привыкли к системам WIMP, что может потребоваться минута, чтобы вспомнить, в какой степени ее основные строительные блоки сформированы: «Файлы» помещаются в «папки», «удалённые» элементы отправляются в «корзину», действия разбиваются на разделы в «меню» панели задач в верхней части окна, а значки, такие как дискета, отражают такие действия, как сохранение файла (возможно, пришло время обновить его).

Использование компьютера с графическим интерфейсом, требующим много перемещений и кликов, как правило, несколько медленнее, чем использование компьютера с командной строкой, но кривая обучения гораздо круче в интерфейсе командной строки, где визуальной метафоры не существует, а каждое действие требует знания определённой команды. Клики, копирование и создание папок на ПК требуют нескольких щелчков или сочетаний клавиш. В командной строке это требует знания таких команд, как cd, cp и mkdir.

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


Блумбергский терминал

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

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

Подумайте обо всех анимациях, которые среднестатистический пользователь видит за день: переключение между пространствами в Mac OS, разблокировка 1Password, ожидание, пока iOS покажет SpringBoard после нажатия кнопки «Домой», переход в полноэкранный режим из приложения Mac OS или переключение между вкладками в мобильном Safari.


Однажды Apple поймёт, что они оставили зияющую дыру в своей стратегии UX и что переключение задач с помощью Cmd + Tab тоже должно быть анимировано. Умножьте длину этой анимации на среднее количество переключений задач в день, на количество пользователей, на их стоимость в секунду, и вы увидите, что миллионы долларов в год в глобальной производительности испарились за одну ночь.

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

Выбирай командную строку


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

Один из самых ранних примеров современной палитры команд принадлежит Джо Скиннеру, создателю Sublime Text, который анонсировал её как часть бета-версии Sublime Text 2 в 2011 году. Это был большой шаг вперед в UX для программистов, уже привыкших к использованию командной строки. Это не только помогло им двигаться быстрее, используя только клавиатуру, но и означало, что им больше не нужно было запоминать все сочетания клавиш. Вместо этого они могли вводить то, что хотели, и палитра команд интеллектуально находила и выполняла нужное действие.


Sublime Text

Палитра команд обычно состоит из трёх основных элементов: одного сочетания клавиш для вызова палитры, нечеткого сопоставления для поиска команд и способа просмотра прямых сочетаний клавиш для будущего использования. Этот дизайн интерфейса взял лучшее из терминала и графических интерфейсов, объединив их в удобное для пользователя и эффективное решение.

Сегодня концепция палитр команд распространилась на различные программные приложения, став стандартной функцией во многих из них. Такие инструменты, как Photoshop, MS Office, Notion, Nuclino и Deepnote, внедрили палитру команд как средство упрощения взаимодействия с пользователем. Кроме того, голосовые помощники, такие как Siri, Alexa и Google Assistant, по сути, приняли концепцию палитры команд, позволяя пользователям выполнять задачи с помощью голосовых команд, полностью устраняя необходимость в визуальном интерфейсе.

Разработки в области голосовых интерфейсов намекают на возможность расширения этого до палитр команд. А GPT-3 от OpenAI не просто открыл двери для забавных бесед с чат-ботами, которыми можно похвастаться в соцсетях, но и вывел модели обработки языка на новый уровень.

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


Палитра команд Windows

Постепенно, а затем внезапно, как кажется, командная строка вернулась, помогая с ведением журнала, рабочими процессами, сочетаниями клавиш и другими вспомогательными функциями. Теперь мы достигли следующего поколения: командная строка, которая одновременно мощная и доступная; инструмент, который эффективен для технических пользователей без пугающей кривой обучения прошлых десятилетий. Более того, мы видим, как компании извлекают выгоду из этого увлечения скоростью и эффективностью: например, Superhuman, который позиционирует себя как «самый быстрый опыт работы с электронной почтой из когда-либо созданных».

Superhuman, современная альтернатива Gmail, имеет собственную командную строку, активируемую нажатием Command + K. Навигация в приложении разработана таким образом, что движения пользователя естественно быстры. Пользователь вынужден использовать клавиатуру, а не мышь или трекпад. Но Superhuman — это лишь один пример возвращения к CLI. Возможно, наиболее заметным из них является Stripe, которая в ноябре 2019 года объявила о выпуске собственного интерфейса командной строки.

Другие примеры включают:

  • Linear, инструмент отслеживания ошибок и современная альтернатива Jira.
  • Notion и Slack, которые размещают свои основные инструменты за меню с косой чертой (/).
  • Amie, приложение для повышения производительности.
  • Quill, профессиональный обмен сообщениями для групп и коман.
  • Slapdash, который объединяет приложения под одной панелью команд.


Википедия через веб-браузер командной строки

Существует множество веб-браузеров командной строки. Обычно на ум приходит классический Lynx, а также ELinks. Оба они способны отлично просматривать базовые веб-сайты HTML.
WordGrinder — это текстовый процессор на базе терминала.
Можно создавать и проводить презентации полностью из терминала. Программа называется «tpp» (Text Presentation Program), и она есть практически в каждом репозитории на планете.
Midnight Commander, который также известен как просто mc. Открытый «клон» знаменитого файлового браузера Norton Commander.
cmus — это музыкальный проигрыватель.
То, что можно было бы назвать менеджером окон в графическом рабочем столе, в терминалах называется терминальным мультиплексором — та же идея, более или менее. Существует три терминальных мультиплексора, которые большинство людей склонны использовать: GNU Screen, tmux и Byobu.


Три терминала Windows в Byobu

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

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

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

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

Дорога вперед


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

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

Вот некоторые вещи, из которых терминалы могли бы черпать вдохновение:

  • Насыщенные элементы мультимедиа: изображения, видео, табличные результаты и т. д. Терминалу нужен был ответ на них с 1985 года, но до сих пор его нет.
  • Шрифты. Моноширинный — лучшее семейство шрифтов для программирования, но объективно не оптимален для чтения. Мы должны иметь возможность смешивать шрифты в одном интерфейсе терминала для лучшей читаемости.
  • Пробелы и высота строки: используемые в умеренных количествах, они помогают сделать элементы пользовательского интерфейса более отличительными, а текст — более разборчивым.

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

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

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

Есть будущее, в котором наше программное обеспечение будет делать всё, от регистрации ошибки до погашения кредитной карты, быстро и эффективно, но путь, по которому мы идём сегодня, — это не он.

ИИ кажется естественным следующим шагом для командной строки. Видя, как ChatGPT и ему подобные захватывают мир, начинаешь задумываться: «что дальше?» Станет ли Интернет одной большой палитрой команд, которая содержит все ответы и выполняет все действия? Остаётся просто надеяться, что никто не введёт format или rm -rf.

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале



Комментарии (79)


  1. ZekaVasch
    28.08.2024 08:23
    +10

    Текст сочинен нейросетями ?


    1. jackchickadee
      28.08.2024 08:23
      +1

      Текст сочинен нейросетями ?

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


  1. ildarz
    28.08.2024 08:23
    +39

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

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


    1. 2medic
      28.08.2024 08:23
      +8

      Я бы ещё добавил, что эффективная работа в терминале требует навыка слепого набора текста, без которого в терминале работать становится несколько проблематично. Если оператор медленно набирает двумя пальцами, уткнувшись взглядом в клавиатуру, то крайне велика вероятность пропустить опечатку, с последующим разгадыванием квеста: почему же не сработала команда?


      1. strvv
        28.08.2024 08:23

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

        Этот же вывод сделали и в MicroSoft, когда стали замещать потомка (по функционалу) dos (cmd.exe) мощной программной оболочкой PowerShell.


    1. Free_ze
      28.08.2024 08:23
      +4

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

      А откуда эта интуитивная понятность берется? У GUI интерактивная природа - перед глазами пользователя знакомые интерактивные элементы, с которыми можно взаимодействовать. Аналогичный опыт будет и с CLI, если вызвать theapp --help и пробежаться глазами по ключам - они типовые, зачастую.


      1. 2medic
        28.08.2024 08:23

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

        Зачастую они противоречивые и не логичные. Т.к. не было никого, кто бы координировал разработку утилит командной строки и применял хоть какие-либо стандарты. Совершенно непонятно, почему для отметки схемы в команде pg_dump используется ключ -n, или почему у pg_dump есть ключ -f, а у pg_restore его нет.

        Если что, я в командной строке сидел ещё во времена ДВК-3. Но как только перестаёшь постоянно выполнять некие повторяющиеся действия, так из головы постепенно улетучиваются ключи, опции, и даже имена самих команд.

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

        Простой пример: мне нужно перейти в некий каталог (какой не помню), и что-то в нём сделать. Для начала придётся десяток раз вызвать ls(dir)/cd. mc или Norton Commander куда как приятнее. Особенно если выучишь хоткеи.

        CLI, как и игра на пианино, требует постоянной практики.


        1. Free_ze
          28.08.2024 08:23
          +3

          Зачастую они противоречивые и не логичные.

          Это уже вопрос дизайна. Кнопки запросто могут быть такими же.

          почему для отметки схемы в команде pg_dump используется ключ -n

          Впрочем, там есть и более очевидный ключ --schema.

          почему у pg_dump есть ключ -f, а у pg_restore его нет.

          Разве?

           -f filename
          --file=filename
          
              Specify output file for generated script, or for the listing when used with -l. Use - for stdout.
          

          Для начала придётся десяток раз вызвать ls(dir)/cd.

          Попробуйте тыкать в процессе набора путей, тогда может хватить одной cd. Автокомплит - важная штука в CLI.

          Norton Commander куда как приятнее

          Хороший пример не самого очевидного GUI, имхо. Много возможностей - много хитрых кнопок и хоткеев, которые таки тоже нужно разучивать.


          1. Free_ze
            28.08.2024 08:23
            +1

            Попробуйте тыкать Tab в процессе набора путей...

            Обрамление угловыми стрелками съело слово


        1. Dolios
          28.08.2024 08:23

          Если что, я в командной строке сидел ещё во времена ДВК-3. Но как только перестаёшь постоянно выполнять некие повторяющиеся действия, так из головы постепенно улетучиваются ключи, опции, и даже имена самих команд.

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

          Для начала придётся десяток раз вызвать ls(dir)/cd.

          Конечно же, нет. Вы просто набираете cd, а затем, пользуетесь клавишей Tab, получая подсказки по каталогам текущего уровня. Что очень быстро и невероятно удобно. Гораздо быстрее, чем продираться в нужную папку файловым менеджером, каждый раз отыскивая глазами следующую папку в иерархии, чтобы перейти в нее.

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


      1. dv0ich
        28.08.2024 08:23
        +7

        Почти со всеми используемыми мной GUI-программами я научился работать методом тыка, без чтения справок и документаций. С терминальными прогами такое не прокатывает. Вот и всё.

        (терминал использую каждый день, если что)


        1. Free_ze
          28.08.2024 08:23
          +3

          Почти со всеми используемыми мной CLI-программами я научился работать просто читая текст, не ползая по меню, не изучая пиктограмы и расположение кнопок. С оконными прогами такое не прокатывает. Вот и всё.


        1. Kahelman
          28.08.2024 08:23
          +1

          Вы таки с SAP/R3 не работали. Когда куча полей/ вкладок и фиг его знает что куда вводить надо. :)

          Ещё тест: попробуйте в Windows Explorer 5 файлов по макаке переименовать (например Добавить _old перед расширением)

          И расскажите об успехах :)


          1. Zuy
            28.08.2024 08:23

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


            1. Kahelman
              28.08.2024 08:23

              Это не «чистый” GUI

              И если у вас 10k файлов, вам динамический результат -по боку.

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

              Скопируйте все log файлы из папок разного уровня вложенности с помош GUI


              1. Zuy
                28.08.2024 08:23

                Не чистый, а какой?
                Изначальная задача была переименовать 5 файлов по маске. В Total Commander это делается просто без всяких знаний. А как это в CLI сделать?


                1. Free_ze
                  28.08.2024 08:23

                  rename 's/search_pattern/replacement/g' *.jpg
                  

                  Причем, с ключом -n | --nono покажет ожидаемый результат, аналогично TC.

                  rename --help
                  Usage:
                      rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -u [enc]]
                      [ -e|-E perlexpr]*|perlexpr [ files ]
                  
                  Options:
                      -v, --verbose
                              Verbose: print names of files successfully renamed.
                  
                      -0, --null
                              Use \0 as record separator when reading from STDIN.
                  
                      -n, --nono
                              No action: print names of files to be renamed, but don't rename.
                  
                      -f, --force
                              Over write: allow existing files to be over-written.
                  
                      --path, --fullpath
                              Rename full path: including any directory component. DEFAULT
                  
                      -d, --filename, --nopath, --nofullpath
                              Do not rename directory: only rename filename component of path.
                  
                      -h, --help
                              Help: print SYNOPSIS and OPTIONS.
                  
                      -m, --man
                              Manual: print manual page.
                  
                      -V, --version
                              Version: show version number.
                  
                      -u, --unicode [encoding]
                              Treat filenames as perl (unicode) strings when running the
                              user-supplied code.
                  
                              Decode/encode filenames using encoding, if present.
                  
                              encoding is optional: if omitted, the next argument should be an
                              option starting with '-', for instance -e.
                  
                      -e      Expression: code to act on files name.
                  
                              May be repeated to build up code (like "perl -e"). If no -e, the
                              first argument is used as code.
                  
                      -E      Statement: code to act on files name, as -e but terminated by
                              ';'.
                  

                  Против

                  Total Commander Multi-Rename tool

                  Разве этот интерфейс можно назвать очевидным?


                  1. Zuy
                    28.08.2024 08:23

                    Хмм, в TC интерфейсе хотя бы потыкав мышкой можно сходу понять что происходит. По вашему же примеру даже в хелпе не написано что там за заклинание сразу после rename стоит. Это какой-то perlexpr? Предполагается идти гуглить, что это такое?


                    1. Free_ze
                      28.08.2024 08:23

                      в TC интерфейсе хотя бы потыкав мышкой можно сходу понять

                      Путь экспериментов - это противоположность "сходу".

                      Это какой-то perlexpr? Предполагается идти гуглить, что это такое?

                      Более подробное описание и примеры можно найти в манах (man rename).


                      1. Zuy
                        28.08.2024 08:23

                        > man rename
                        rename(2)                                                 System Calls Manual                                                rename(2)
                        
                        NAME
                               rename, renameat, renameat2 - change the name or location of a file
                        
                        LIBRARY
                               Standard C library (libc, -lc)
                        
                        SYNOPSIS
                               #include <stdio.h>
                        
                               int rename(const char *oldpath, const char *newpath);

                        Здесь что-ли? :)


                      1. Free_ze
                        28.08.2024 08:23

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


              1. dv0ich
                28.08.2024 08:23

                Скопируйте все log файлы из папок разного уровня вложенности с помош GUI

                Это медленно, но не невозможно.

                Тогда как пользоваться терминалом, не зная команд, невозможно.


                1. strvv
                  28.08.2024 08:23
                  +1

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


                  1. dv0ich
                    28.08.2024 08:23

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

                    GUI даже после этого предела может быть просто безальтернативным. Как вы предлагаете в терминале, например, заниматься 3D-моделированием или редактированием видео?)


                    1. Derevtso
                      28.08.2024 08:23

                      Не в пику Вашему суждению, но тот же Autocad, в целом, пример условного "моделирования из консоли".

                      Или некоторые редакторы трекерной музыки.

                      Однако, в целом, я - за наличие GUI+cli, для разных сценариев.


      1. ildarz
        28.08.2024 08:23

        theapp --help
        'theapp' is not recognized as an internal or external command,
        operable program or batch file.

        :(.

        P.S. Но, может быть, надо было Theapp? Или the_app? Или app? Или appcli? Или сначала надо сделать appsetup -vfdx --o 4 --P и только потом theapp?


        1. Free_ze
          28.08.2024 08:23
          +1

          Гуи не дадут преимущества в поисках нужного бинарника.


          1. ildarz
            28.08.2024 08:23


            1. Free_ze
              28.08.2024 08:23

              Интерфейс проводника
              windows directory hierarchy
              windows directory hierarchy


    1. LaRN
      28.08.2024 08:23
      +4

      С gui почти те же сложности что и с cli. Попробуйте в блендере найти инструменты для скульптинга, если вы первый раз блендер видите. То же касается и ide например idea. Там есть gui, но реально быстро все происходит, когда пользуешся short cut-ми.


      1. StjarnornasFred
        28.08.2024 08:23
        +2

        И вот мы приходим к выводу, что наилучший интерфейс - это совмещение GUI и терминала. То, что можно быстро и удобно сделать мышкой - делается мышкой. То, для чего легче набить пару слов с клавиатуры - делается клавиатурой. И то, и другое должно быть доступно. (Я, например, на дух не переношу окно терминала, но при необходимости залезть в реестр прожимаю Win+R regedit, а не ищу его в настройках панели управления - так удобнее и быстрее).


        1. LaRN
          28.08.2024 08:23

          Это да. Гибридный вариант самый удобный, но его труднее реализовать.


          1. strvv
            28.08.2024 08:23

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


            1. LaRN
              28.08.2024 08:23

              Тут скорее про комьинацию подходов. А в статье больше про gui vs cli. У меня во время работы в одном КБ был диалог с главбухом.

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

              В то время работали в автокаде, кпжется в 14 еще, и нееоторые специалисты реально все или почти все в консоли набирали.


        1. warkid
          28.08.2024 08:23

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


    1. NAI
      28.08.2024 08:23
      +1

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

      GUI сразу же ломаются при необходимости решать пакетные задачки - переименовать 2000 файлов, создать 200 doc(x) по шаблону, отзеркалить 100 картинок, кинуть на печать 5 файлов. А вот в терминале с этим нет особых проблем (за редким исключением)

      Да, кое-где программисты думают о людях и добавляют Multi-Rename, но по факту это точечные, единичные фичи, которые существуют для отдельного функционала


      1. Didimus
        28.08.2024 08:23

        В gui вы сразу видите, во что будет переименовано. Например, в тотал командоре


        1. NAI
          28.08.2024 08:23

          Например, в тотал командоре

          Это как раз и относится к "кое-где". Как там в проводнике с групповыми переименованиями?

          Во-вторых, что у тотала с остальными фичам? Например, взять список файлов и разложить по папочкам? Или просто взять список файлов (не по шаблону, а именно список) и скопировать из ./datastore в ./common?

          В тотале при архивации есть exclude?Ну, чтобы можно было сжать все (*.*) файлы кроме определенных(-exclude *.zip) Спойлер - можно... в теории. Сравните:

          Тотал:

          • Открыть Select group

          • Написать регулярку. Если вы с ними не знакомы и не пишите каждый день парсер e-mail'ов, то разбираться будете явно не 15 минут. Особенно с exclude.

          • Тестировать регулярку

          • Заселектить все кроме

          • Сжать

          Теперь Tar:

          tar --exclude='./.zip' -zcvf /backup/filename.tgz .

          Предположим что Tar не умел бы в exclude..

          $files=Get-ChildItem -Exclude ".zip"
          Compress-Archive $files.Name ./files.zip


    1. vvbob
      28.08.2024 08:23
      +3

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

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

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

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

      Я справился где-то за пол часа, покопался немного с командой find, вспоминал как там в ней рекурсивно искать по папкам и вызывать echo для найденного. Отыскал с ее помощью все нужные файлы, вывел их в один огромный текстовый файл, и потом вставил его в вордовский док. После чего занялся другими текущими задачами. После обеда. смотрю - а коллега проклиная руководство с его дурацкими заданиями, в проводнике ищет файлы, открывает их по очереди, копирует текст из файла, вставляет его в док.. и так по кругу, даже еще процентов на 10 не продвинулся. Когда я сказал ему не маяться фигней и дал ему свой скриптик, он просто в шоке был, ему и в голову не пришло что можно так просто и быстро все сделать,

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


      1. ildarz
        28.08.2024 08:23
        +1

        Я смотрю, вы, как и несколько предыдущих "защитников" cli, не дочитали мой комментарий до конца, где написано:

        вечная (как минимум до появления нейроинтерфейсов) ниша терминалов - узкоспециализированная работа в некоторых областях.

        Мне даже стало интересно - это постоянная работа в cli влияет на то, что текст воспринимается не целиком, а построчно? :)


        1. vvbob
          28.08.2024 08:23
          +1

          Алаверды - вы-то мой коммент до конца дочитали?


    1. Alpensin
      28.08.2024 08:23

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


  1. 2medic
    28.08.2024 08:23
    +2

    Как-то автор перескочил через TUI. UI не обязательно может быть графическим. Он вполне может быть себе текстовым. Тот же небезызвестный Norton Commander тому пример. А уж сколько софта было написано на текстовом фреймворке TurboVision…


    1. GeorgeTudosi
      28.08.2024 08:23

      Как-то автор перескочил через TUI.

      Концептуально это то же самое, что и GUI, только с худшим качеством картинки.

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

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


      1. 2medic
        28.08.2024 08:23
        +3

        Концептуально это то же самое, что и GUI, только с худшим качеством картинки.

        Вот тут готов поспорить. Битовая матрица символа считывалась на отлично даже на древних мониторах размером 25 строк на 80 символов.

        В своё время разрабатывал прекрасные TUI для ДВК-3.

        Плюсом у буковок можно поменять цвет, если монитор не монохромный, и подрисовать им фон. Таким образом можно выделять хот-кеи и активные пункты меню. И даже рисовать тени у открытых окон, имитируя Z-order.

        Скрытый текст

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

        Но как по мне, TUI не заслуженно забыт и оставлен в сторонке. Ничто не мешает писать утилиты командной строки таким образом, чтобы они не только получали параметры, опции, команды, но и вполне себе обладали интерфейсом пользователя.

        Как, например, htop.


        1. belch84
          28.08.2024 08:23

          В своё время разрабатывал прекрасные TUI для ДВК-3.

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

          Тоже работал на ДВК-3 очень давно. Насколько я помню, там можно было накладывать графический экран на текстовый, совмещая текстовый и графический режимы. Это позволяло создавать текстовые меню типа: "L-линия, R-прямоугольник, C-окружность", ожидать нажатия соответствующей клавиши и отображать результат выполнения на графическом экране


          1. 2medic
            28.08.2024 08:23

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

            Да, можно. Только для этого нужна была библиотека KeyGP, разрабатывавшаяся в Зеленограде, в том же предприятии, где делали ДВК. Эта библиотека была платная и имела хитроумную привязку к диску, т.е. просто так не скопируешь. Причём эта привязка в первых версиях слетала при дефрагментации диска. Потом этот баг пофиксили.

            И что самое удивительное, в этом режиме даже работал скроллинг. Можно было вывести строку в stdout и весь экран вместе с текстом и графикой скроллился вверх. Такого я больше нигде не видел. Либо текстовый режим, либо графический.


            1. belch84
              28.08.2024 08:23

              Только для этого нужна была библиотека KeyGP, разрабатывавшаяся в Зеленограде, в том же предприятии, где делали ДВК. Эта библиотека была платная и имела хитроумную привязку к диску, т.е. просто так не скопируешь

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


  1. yri066
    28.08.2024 08:23
    +1

    Я как раз отношусь к тому типу пользователей, которые через UI с помощью мышки выполнят работу быстрее, чем тратя уйму времени на гугление нужных команд и вставки их в терминал (у меня уже был случай, что скопированная команда удалила из системы все пакеты и мне пришлось переустанавливать linux (в команде не было команд remote или rm и поэтому для это было неожиданно))

    *PS мой уровень владения терминалом это гугление команд


  1. dv0ich
    28.08.2024 08:23
    +5

    Все согласятся, что интерфейс этого будущего невероятен и желанен.

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


  1. event1
    28.08.2024 08:23

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

    P.S. автор, спасибо за забавный подстрочник, конечно, но английский текст русскими словами — это уверенный минус


    1. M_AJ
      28.08.2024 08:23
      +1

      Хорошо же будет, нет?

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


      1. event1
        28.08.2024 08:23

        Простые пользователи не обязательно дураки. Обычные люди пользовались компьютерами и до изобретения графических интерфейсов. Выучить десяток команд для обычного человека — пара пустяков.


        1. M_AJ
          28.08.2024 08:23
          +3

          Обычные люди пользовались компьютерами и до изобретения графических интерфейсов

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

          Выучить десяток команд для обычного человека — пара пустяков.

          А если их не десяток, а пять десятков? При этом 20 ходовые, 20 нужны раз в месяц, а ещё 20 раз в год? Тогда когда человеку понадобится какая-то из последних 20 команд он будет вынужден лезть в справочник. А графический интерфейс позволяет тут же, рядом с параметром разместить и документацию. Не нужно точно помнить то ли там max_limit, то ли max_threshold, то ли от 1 до 10 принимает значение, то ли от 1 до 50. Достаточно помнить что что-то одно из этих двух, где-то на последней вкладке, и диапазон возможных значений может быть прямо рядом с полем подписан, и даже более подробная всплывающая справка тут же, при наведении курсора на знак "?"


          1. event1
            28.08.2024 08:23

            Графический интерфейс дал возможность пользоваться компьютером тем, кто просто не стал бы

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


            1. M_AJ
              28.08.2024 08:23

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

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


        1. 2medic
          28.08.2024 08:23
          +1

          Выучить десяток команд для обычного человека — пара пустяков.

          Зачем? Чтобы что? Ну вот надо было мне гибернацию наладить на своём ноуте под Ubuntu. Для этого надо было реорганизовать swap. Ну справился я с этой задачей в консоли. Гибернация работает. Год работает, два работает… Думаете, я помню утилиты и их команды с ключами, которыми пользовался? Помнится только то, чем пользуешься постоянно. А обычные люди не пользуются шеллом, обычные люди пользуются каким-либо приложением. Так что вся работа в командной строке будет сводиться к запуску приложения.


        1. dv0ich
          28.08.2024 08:23
          +2

          Выучить десяток команд для обычного человека — пара пустяков.

          Непонятно только, зачем. Я вот занимаюсь разработкой и потому выучил консольные команды гита, gcc и прочих инструментов, ведь мне это реально нужно. Однако я, пользуясь Arch-подобным дистрибутивом (Manjaro), до сих пор не знаю упоротых ключей pacman, и знать не хочу, потому что почти всегда я ставлю-удаляю-обновляю пакеты через гуишный менеджер пакетов, а если вдруг возникает надобность сделать это из терминала - есть манжаровский pamac с человеческим синтаксисом вроде pamac install вместо пакмановской однобуквенной наркомании.


          1. arpo90
            28.08.2024 08:23

            Удивительно. Я тоже разработчик и пару раз в жизни использовал консоль гита. При этом по большей части использовал гуи оболочки для него - сначала turtoiseGit, в сейчас - тупо IDE, в котором видно всё - комнаты, все ветки, комменты и прочее и прочее. И все можно сделать, просто тыкнув правой клавишей и выбрав нужную контекстную команду.

            При этом я, конечно, пользуюсь и cli - всякие openssl, curl, да и просто работа с серверами обязывает. Но часто, если есть возможность выбора, выбираю gui.


  1. Askodon
    28.08.2024 08:23

    все вопросы которые вы бы хотели решить, уже решены во всяких wezterm, alacritty и kitty.


  1. gun_dose
    28.08.2024 08:23
    +1

    Главный плюс использования CLI - это возможность автоматизации практически чего угодно. То, что можно сделать с помощью .sh, .bat, make-файлов, не имеет никакой графической альтернативы.


    1. EuHex
      28.08.2024 08:23
      +2

      Макросы как альтернатива


      1. strvv
        28.08.2024 08:23
        +1

        Реализация макроса в GUI, мышкой?

        Это штатно реализовано в большинстве программ?


    1. 2medic
      28.08.2024 08:23

      То, что можно сделать с помощью .sh, .bat, make-файлов, не имеет никакой графической альтернативы.

      Разработчики всяких TUI/GUI обёрток над консольными утилитами с вами не согласны. Вы правы, что главный плюс CLI в возможности автоматизации. Но когда мне нужно обработать 36 серий сериала, я не хватаю vim и не пишу скрипт с нуля. А беру MKVToolNix, мержу первый файл, потом импортирую команду. И уже затем пишут цикл в .sh, .bat, .cmd. Получается значительно быстрее, чем читать справку по командам и ключам.


      1. gun_dose
        28.08.2024 08:23

        То есть вы по итогу всё равно пишете скрипт, просто не с нуля, а при помощи вспомогательных утилит.


        1. 2medic
          28.08.2024 08:23

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


          1. gun_dose
            28.08.2024 08:23

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

            Я это и говорю. Шелл-скрипты хороши для автоматизации, это как раз то и значит, что они почти никому не нужны, потому что почти никому не нужно ничего автоматизировать))


            1. 2medic
              28.08.2024 08:23

              Шелл-скрипты хороши для автоматизации

              Я с этим не спорю. Я не согласен с утверждением:

              То, что можно сделать с помощью .sh, .bat, make-файлов, не имеет никакой графической альтернативы.

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

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


  1. FunArt
    28.08.2024 08:23

    Мне кажется, сейчас с появлением GPT, количество почитателей командной строки должно резко возрасти. Когда решаешь какие-то задачи в ОС с помощью ИИ, гораздо проще получить решение через командную строку. Чем добиваться от GPT помощи по кнопкам интерфейса системы.


  1. Borjomy
    28.08.2024 08:23
    +6

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

    Заметьте, диалоговые системы в программах, использующие командную строку, практически отсутствуют. А там, где они есть, это коммерческие продукты.

    Командная строка это не про удобство. Разработчик экономит свое время и крадет ваше.

    Знаете, что поразительно? До сих пор никто не удосужился стандартизировать набор аргументов командной строки в диалоговом режиме. Всем плевать. Это же надо о пользователе думать. А такое просто не принято в этой сфере.


    1. kmeaw
      28.08.2024 08:23

      Диалоговые системы сильно ухудшают возможность строить сложные системы из простых (composability), вынуждая использовать костыли типа expect. Хорошо, когда диалоговая система есть, но плохо, когда её нельзя не использовать.

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


  1. Alexis_Che
    28.08.2024 08:23

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

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


  1. dimsoft
    28.08.2024 08:23

    А есть вариант в windows терминале настроить показ языка ввода ? Как в старом добром DOS ?


    1. ncix
      28.08.2024 08:23

      Нажмите любую буквенную клавишу - и узнаете )


      1. kest70
        28.08.2024 08:23
        +1

        ... кроме может быть 'с'. :-)


  1. eugeniouglov
    28.08.2024 08:23

    Спасибо за статью! Невероятно как точно мои идеи в последние несколько лет здесь красиво описаны.

    Меня заинтересовала не сама замена графического интерфейса на терминал, а именно палитра комманд.

    Тоже писал статьи по этому поводу.

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

    А здесь сделал веб приложение для поиска собственной информации по тегам как в Гугл поисковике. Ну и на основе алгоритма прикрутил голосового ассистента.

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


  1. SysManOne
    28.08.2024 08:23

    Толковый CLI всегда перекроет гуй в рутинных операциях повторяемых 1000 раз в час, очевидно жеж, есть ведь биомеханическая выгода .

    Никто ведь не притягивает GUI что бы оператор в приложении тыкал мышкой в кейборду что бы набрать "Хило Ворлд" ?! Верно ведь и обратное в автокаде рисовать, гоняя курсор на кейборде - ну можно, но очень не эргономично и производительно.

    Так что, надо разделять применения.

    К слоdу о CAD-ах, вот помню P-CAD на заре ... занятия вели для пользователей во многом мышкой, но через год разработчики PCB работали преимущественно в две руки, правой - мышь, левая долбила команды. По мне так интерфейс P-CAD-а - практически идеальный пример сочетания.

    К слову о CLI-приложениях, когда что бы вывести список команд нужно знатно потыкать:

    --help

    --?

    -h

    --h

    --?

    Если в ОС нет нормально проработанных средств для разработки CLI , а есть getopt - то такое гуано и будет шествовать по жизни.

    Отличнейший пример средств для CLI - CLI$ Routines (API) в VAX/VMS, OpenVMS . Там всё единообразно и даже для HELP был HLP$ Routines (API) - пиши просто и понятно всем.


  1. Zamix80
    28.08.2024 08:23

    Как то во всех этих статьях, не упоминается как возможно было работать с электронной почтой через командную строку до, приведенная здесь программа относительно новая, тут уж не обойтись без мало-мальского интерфейса, ведь работа с email - основное для множества, сам работал только в dos и писал autoexec-и


  1. amarkevich
    28.08.2024 08:23

    автоматизация. всё, что делается через CLI, очень просто встроить через скрипты для выполнения автоматически