
Предыдущие номера:
ИЮНЬ 1997
СЕГОДНЯ
GUESTBOOK
ПРЕЖНИЕ ВЫПУСКИ
ВСЕ ДОМЕНЫ .RU
INDEX.HTML

| |

| |
Заметка сто двадцать первая
ДЛЯ НАС, ИДИОТЫ
Поднятая нами в позавчерашней заметке тема о сравнении различных операционных систем, их достоинств и недостатков, вызвала в гостевой книге религиозную войну в режиме реального времени. Третий день уже там пылают станицы, пикирующие бомбардировщики в глубоком пике равняют Боинги с запорожцами одной ковровой левой... Паравозов даже разродился особым мнением, где жалует нас не особо - и поделом.
Трудно тут уклониться, трудно рассудить. Но начать надлежит с одного необходимого технологического замечания. По поводу WORDWRAP в гостевой книге. Поскольку в окне, куда подаются записи, среди атрибутов помянут WRAP=VIRTUAL, переводы каретки на новую строку производятся автоматически, в процессе письма, при достижении буквами правого края рабочего поля. Несмотря на это, встречаются записи, в которых помимо встроенного WORDWRAP добавлены еще и свои, локальные разбивки строк, затрудняющие чтение.
По моему разумению, это связано вовсе не с тем, что авторы раздробленных писем торопятся нажать ENTER прежде, чем программа сделает это сама, упершись в крайний правый знак. Размер и вид пересеченных писем наводит на мысль, что в гостевую книгу они внесены средствами Copy-Paste (^V-^C) из постороннего текстового редактора, который и добавил туда своих принудительных концов строк. Пишущему сообщение в редакторе эти "спецзнаки" невидимы, смотрятся они при выделении обычными пробелами, и лишь после, при окончательной записи на диск, обогащаются своими гипертекстовыми эквивалентами в виде <BR>. Как с этим явлением бороться - прописано во вспомогательных объяснениях каждого отдельного редактора, так что авторам писем с подобными накладками остается порекомендовать либо man либо RTFM - кому что ближе под рукой.
Если же обратиться к самой теме обсуждения - не к операционным системам (о которых спорить бесполезно), а к противостоянию между графическим и словесным пользовательским интерфейсом, то тут вот какие соображения приходят мне в голову.
Изначально пользовательский интерфейс создан был для того, чтобы обеспечить пользователя компьютера набором кнопок и команд, которые были бы доступны нажатию и отданию соответственно. Если б компьютерный пользователь мог отдавать машине свои распоряжения прямо в кодах, то никакого интерфейса (перевода, посредника, междумордия) уже бы и не потребовалось. Однако это повсеместно не так. У пользователя - свой, человеческий язык (принято считать, что английский) у машины - свой код (принято считать, что двоичный). Интерфейс живет посередине, беря на себя функции перевода человеческих команд на машинный язык и обратно.
На вопрос "как нам обустроить интерфейс" существует изначально два разных ответа. Первый состоит в том, что язык общения между человеком и машиной должен быть предельно приближен к языку общения между отдельными живыми людьми. Раз уж переводить машинные коды, то - до конца. Я ему START по волнистой форточной гриве, а он мне меню с соболями. Другой ответ состоит, напротив, в том, что для наиболее успешного управления машиной человеку следует детально знать ее язык и набор инструкций. Без этого пользование не может быть полноценным. Нельзя свести умение управлять компьютером к знанию команд на своем собственном условно человеческом языке, ибо машина все равно никогда до конца его не поймет.
Две этих взаимно противоречащих точки зрения легли в фундамент разработки двух принципиально разных по своему устройству пользовательских интерфейсов. Первый весь основан на допущении, что пользователь для эффективной работы должен плотно и досконально знать машинный код, и вся задача сводится к тому, чтобы создать пригодные инструменты ввода. Такой интерфейс представлен в UNIX. Пользователь дает машине те команды, которые она знает, понимает, и может исполнить. Если пользователь не знает язык машины, то он сразу свободен и может гулять, даже если в остальном он умен и хорош собою.
Противоположный подход отражен в позиции сторонников GUI. Они полагают, что пользователь при посадке за компьютер ничего не должен дополнительного знать, кроме того, что он уже выучил по жизни. А все команды и инструкции, предлагаемые ему системой, должны быть ему сразу интуитивно понятны - благодаря использованию в меню доходчивой графики и слов известного языка.
Какая из этих позиций верная? Так вопрос не ставился, пожалуй, еще никогда. Ввиду явной бессмысленности. Каждому - свое, как тонко подметили в свое время немцы. Человек, способный усвоить и выучить наизусть все тонкости машинного кода, может обратить это свое знание в преимущество и сделаться повелителем Сфер, куда непосвященному и несведущему вход заказан. С другой стороны, человек, для которого компьютер - лишь вспомогательное средство для решения в целом посторонних жизненных задач, предпочтет себе интерфейс, понятный и доступный управлению без предварительной подготовки.
Существует мнение, что прогресс знаменует отмирание интерфейсов старого, "машинного" образца и торжество графической разновидности. В конце концов, существование по сегодняшний день командной строки объясняется отчасти тем, что не все коды пока доступны переводу на человеческий язык - а со временем, по мере совершенствования языков управления, можно будет перевести в нормальные понятия вообще все, что машина умеет, и тогда любая мыслимая команда станет кнопкой или строчкой в меню. Необходимость учить коды отпадет даже для самых продвинутых пользователей, а, возможно, отомрет и сам код - машина научится рассуждать нашими, а не своими отдельными понятиями...
Такая точка зрения выглядит достаточно заманчиво, и во многих местах ее принято даже уже объявлять официальной. Между тем, здесь налицо явное упрощение жизни, неучет очевидных и существенных обстоятельств. Ведь прогресс - он, на самом деле, свойственен не только машинам. Совершенствуются и пользователи, растет их осведомленность, растут запросы. Как бы ни был хорош графический интерфейс, как бы ни было подробно расписано меню - всегда найдется пользователь, которому потребуется задействовать больше функций, чем предусмотрено разработчиком, или использовать такие возможности программы, доступ к которым не предложили создатели интерфейса. Обращение к тем функциям, вызов которых не заложен в меню или GUI, возможно лишь через командную строку, в режиме свободного формирования запроса. Если мы хотим, чтобы пользователь мог расширять возможности системы по мере и в процессе пользования, возможности обращения через командную строку должны быть сохранены.
Перфекционисты знают: попытка создать среду, в которой машина управлялась бы чистой графикой, вообще без командной строки, уже сделана. В Макинтоше, например, командная строка отсутствует, и команды там можно отдавать только те, которые предусмотрены в графическом меню. Мышкой повозил, ткнул, нажал, и всяческая радость. А чего нет - не взыщи.
Мне, однако, сдается, что командная строка, как лазейка для пользовательской самодеятельности, для новых возможностей, для гибкости и настройки, останется в операционных системах всегда. Как в обычном, некомпьютерном языке существуют, при всей его упакованности, бесчисленные модули расширения.
|