Нужен ли нам такой Linux?
АрхивReaditorialИ если вдруг когда-либо в Linux исчезнет (или редуцируется до уровня Windows) интерфейс командной строки, то нужен ли нам будет такой Linux?
- Тебе какие женщины нравятся - умные или красивые?
- Ни те, ни другие. Мне нужна только ты!
В последнее время с некоторым интересом слежу за обсуждением темы "Windows contra Linux" на компьютерровском форуме. Читаю. Но когда наткнулся на такой пассаж: "Только если Linux позволит делать всё с помощью мышки и без командной строки, тогда и можно будет говорить о каком-то прогрессе*", задумался. Вот и попытка выразить свои размышления.
--- * За точность цитаты не ручаюсь, но смысл в контексте обсуждения был таков. ----
Как обнаружено археологами, интерфейс командной строки и графический интерфейс появились практически одновременно - более 30 лет назад - и с тех пор развиваются параллельно, особо не пересекаясь и не мешая друг другу.
Кажется, если какой-то способ взаимодействия с машиной являлся безусловно лучшим, он уже давно бы захватил экологическую нишу целиком.
Итак, представим себя профессиональным высококвалифицированным компьютерным специалистом. Каждая командная утилита поддерживает некоторое число вариантов работы (опций) и огромное множество обрабатываемых файлов или иных объектов (аргументов). Например, команда копирования "cp" может скопировать отдельный файл, несколько файлов, объединённых по некоторому признаку (по маске), содержимое каталога первого уровня, каталог со всеми вложенными каталогами. Та же ситуация с другими инструментами командной строки. А если ещё вспомнить, что Unix изначально поддерживает программные конвейеры, когда первая команда передаёт результат своей работы второй, та обрабатывает полученное и отдаёт третьей и так далее, получается огромное число вариантов команд.
Именно командные утилиты Unix позволяют делать с текстовыми данными всё, что заблагорассудится - сортировать, делать выборки, копировать, вырезать, выводить на печать, менять теговое оформление и заменять фрагменты, отслеживать версии и много чего ещё... И многое из этого - так сказать, в голой системе (если к Unix/Linux применимо такое понятие). Расскажите мне, пожалуйста, как в Windows штатными средствами системы из списка-таблицы нескольких сотен сотрудников предприятия отобрать тех, у кого день рождения в следующем месяце, рассортировать их по дням, подставить имена в поздравительные приказы, индивидуальные открытки и, наконец, вывести всю эту груду бумаг на печать. Это удивительно, но в Unix/Linux подобные задачи решаются чуть ли не сами по себе.
Теперь представим своё рабочее место - компьютер в районном ЖКО. Требуется, чтобы сантехник дядя Вася вечером мог подойти к компьютеру на пять минут и внести выполненные им сегодня работы на ниве благоустройства жилищного фонда района. Тут начинается самое интересное. Учить дядю Васю пользоваться командной строкой себе дороже, после второй минуты объяснения он уже тянется в карман огладить честно заработанную чекушку, а после пятой - ищет взглядом верёвку и мыло. Если же после полугода мытарств, двадцати предупреждений в приказе (и все - программисту, как не справляющемуся с возложенными обязанностями и не умеющему работать с людьми), сантехник наконец соглашается собственноручно что-то вписать, оказывается, что сегодня он пишет "сменил прокладку", завтра "резинку заменил", а третьего дня лаконично "прокладка". И как прикажете сортировать и учитывать такие записи? Решение лежит на поверхности: ограничить доступ пользователей ко всему многообразию выбора опций, по возможности запретить им что-либо вводить, но дать выбирать из уже введённых заранее пунктов. Просто покликай мышкой, расставь галочки, понажимай стрелки. А чтобы было легче попасть, стрелки сделаем побольше. А чтобы дядя Вася не перепутал списки квартирного оборудования с подвальным - сделаем их разного цвета и на разноцветном же фоне. А можно вообще вместо надписей картинки прицепить... Так появился графический интерфейс.
Конечно же, есть области, в которых графический интерфейс - не средство, а необходимое условие: тот же GIMP, Dia, MindMap и иже с ними. Сгоряча чуть было не вписал музыкальные секвенсоры, но им-то как раз графический интерфейс вовсе не обязателен.
А вот и вывод (который, как известно, - место, где мы устали думать): (псевдо)графический интерфейс предназначен в первую очередь для оптимизации выбора элементов неподготовленным пользова..., скорее - клиентом. Для исключения доступа ко всему богатству команд и опций. Ведь если из сотен файлов каталога в экранной форме указаны только три, как бы клиент не ухищрялся, кроме этих трёх ничего он более не увидит. Для ускоренного обучения клиентов вводу данных. Превращает компьютер из универсального обработчика информации в бытовой (промышленный) агрегат с жестко зашитым набором операций. Вроде кофемолки с дисплеем.
И если вдруг когда-либо в Linux исчезнет (или редуцируется до уровня Windows) интерфейс командной строки, то нужен ли нам будет такой Linux?