Текст в чистом виде
АрхивКолонка ЗолотоваГрафический интерфейс традиционно считается более простым в изучении, нежели командная строка, но практика показывает обратное.
Вероятно, у каждого бывало так, что попавшаяся на глаза статья переворачивала собственное представление о том или ином предмете. Несколько дней назад такое случилось со мной, после прочтения отчёта британца Рича Уэрема, посвящённого разбору вопроса о преимуществах командной строки над графическим пользовательским интерфейсом. Вообще, тема эта фантастически обширна, и по своему флейм-потенциалу своему с лёгкостью затмит даже бурно обсуждаемую сегодня на форумах "Windows vs Linux". Впрочем, чему удивляться - две темы связаны: именно Linux славится своей текстовой консолью с замечательно отлаженными за десятки лет эволюции UNIX-инструментами, а Windows подкупает простым и понятным графическим интерфейсом. Но пытаться решить вопрос в лоб бесперспективно, к нему нужно подойти с другой стороны, что и проделал Уэрем: он усадил группу полных новичков, проходящих стандартный "курс вождения мышки в офисных пакетах", за Linux-машину с запущенной консолью (строго говоря, использовался промежуточный софт, но для пользователей всё выглядело совершенно так же, как если бы они действительно оказались в консоли свободной ОС), объяснил, что компьютер переведён в "режим для общения", дал список команд для начала и предоставил юзерам возможность самостоятельно разбираться с тем, что они получили.
Помимо грубого погружения "чайников" в цифровую пучину, Рич сделал ещё один важный шаг. Опираясь на работы Эрика Реймонда, он теоретически обрисовал повседневное поведение обывателя, не имеющего дела с компьютерной техникой. В обычной жизни мы не выполняем нескольких операций одновременно (предпочитая распределить их во времени и контролировать выполнение процессов только тогда, когда это покажется нужным нам), мы точно знаем, где находится та или иная вещь, и мы обязательно ведём диалоги с окружающими нас людьми и объектами (пример - проверка почты в физическом почтовом ящике).
А теперь, собственно, находки Рича, сделанные им в ходе наблюдения за пользователями, попавшими в текстовую консоль. Прежде всего, командная строка оказывается диалогом в чистом виде. Вы спрашиваете - машина отвечает. При этом единственное промежуточное устройство, с которым пользователю необходимо научиться работать - это клавиатура. Вы можете сказать, что мышь и GUI обеспечивают те же удобства, но вдумайтесь: графический интерфейс живёт в двух измерениях, тогда как командная строка одномерна (по вертикали - ось времени) и всё внимание пользователя может концентрироваться только в одном месте - на курсоре. Дав новичку понять, что компьютер подобен ребёнку с ограниченным лексиконом, можно добавить в процесс общения человека и машины столь дефицитный для начинающих комфорт: пользователь уже не боится компьютера, ибо превосходит его интеллектуально, а общий синтаксис беседы предельно прост (глагол плюс название объекта, на который направлено его действие). Такой диалог воспринимался новичками как совершенно естественный.
Второй важный момент: освоив базовые принципы ведения диалога, пользователь (как и в обычном мире) получал моментальный доступ к дополнительной информации, которую мог использовать для самостоятельного расширения своих знаний. Текстовый интерфейс со стандартной опцией --help и стандартной командой man, подчиняющейся правилам общего синтаксиса, помог многим пользователям узнать и освоить более сложные команды/программы, среди которых были редактор pico и локальная почтовая служба mail. Инструменты, работающие в текстовом режиме, многие из прошедших перед этим курс текстовых редакторов Windows, нашли сравнительно более простыми, поскольку тот же pico сам объясняет пользователю, что можно и нужно нажимать.
Как ни странно, но тот факт, что на экране в один момент времени отображается только одна задача, начинающие пользователи нашли более удобным, нежели обычную (всё на одном экране) оконную смесь Windows. Впрочем, объясняется такое предпочтение просто: юзеру ничто не мешает концентрироваться на текущей задаче; когда захочет, он сможет обратить внимание на другие, отправленные им в фон (принцип перевода процессов в фоновый режим через добавление к командам одного символа схватывался на лету всё по той же причине следования общему синтаксическому стандарту). Здесь, опять-таки, очевидна аналогия с повседневностью.
Наконец, система последовательного оповещения о работе фоновых задач (в пику параллельной системе, принятой в мире графических интерфейсов) даёт пользователю дополнительную уверенность в полном контроле - как и в реальном мире. Результат нетрудно предвидеть: все из прошедших через эксперимент нашли командную строку более удобной, многие изъявили желание перевести свой домашний компьютер в аналогичный режим (Рич снабдил их копиями Mandrake Linux). Таким образом, налицо противоречие традиционной точке зрения: GUI оказывается более сложным в изучении инструментом, требующим наличия значительного объёма первоначальных знаний (о принципах устройства данного варианта интерфейса, о последовательности выполнения операций и т.д.). Так что начинать обучение лучше всего с командной строки. Впрочем, возражения и идеи принимаются в соответствующем топике на форуме.