Pull to refresh
2617.4
Timeweb Cloud
То самое облако

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

Level of difficultyEasy
Reading time12 min
Views24K

В фантастическом фильме Стивена Спилберга «Особое мнение» 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-канале



Tags:
Hubs:
Total votes 37: ↑27 and ↓10+36
Comments84

Articles

Information

Website
timeweb.cloud
Registered
Founded
Employees
201–500 employees
Location
Россия
Representative
Timeweb Cloud