Вот тут‑то собака и порылась. Ибо ошибки, как ни крутите, наличествуют, и сбои в работе программ, что ни говорите, происходят. Два–три раза в год Билл Гейтс созывает огромное количество народу и демонстрирует новинки от Microsoft. Новинки чаще всего на подобных показах ведут себя отвратительно и ломаются прямо в руках создателя. Продавцы коммерческих ОС, торгаши, одним словом, вынуждены ломать комедию (довольно‑таки грубую, ибо актеры они никудышные) и убеждать всех и каждого, что системные «баги» — «ерунда, дело житейское», всего лишь человеческий фактор (ошибка какого‑то тупицы–программера), не стоит волноваться. Пользователи слова продавцов ни в грош не ставят – и младенцу понятно, что вранье это всё несусветное. Однако пресс–релизы и рекламные объявление подобным враньем прямо‑таки кишат. По ним выходит так, что работники корпораций ночами не спят, лишь бы создать великолепный продукт и порадовать любимых пользователей. Да если бы дело обстояло именно так, документация была бы написана четко и достоверно, каждая страница содержала бы описание всех ошибок, погрешностей и системных сбоев, а интерактивная система помощи, действительно заботящаяся о пользователях, давала бы полезные советы, как восстановить систему после краха.
Но этого и в помине нет. Акционерные общества, предоставляющие великое множество чудесных товаров и услуг – великолепное изобретение. Они отлично справляются со множеством задач. Но одна задача им не по зубам – признание собственных ошибок. Куда там! Они ведь настолько идеальны, что даже мелких недостатков за ними не водится.
Для человека подобное поведение – отклонение от нормы, ну, а для корпораций всё не так страшно. Тем более все прекрасно понимают, что корпоративные пресс–релизы выпускаются не для обычных людей, а для акционеров. Конечно, огульное корпоративное вранье иной раз приносит ужасающие плоды, вспомним хотя бы, к чему привела огульная ложь табачных компаний или химических предприятий. Производители ОС не идут с ними ни в какое сравнение, они просто раздражают.
Возможно, мне возразят, что недовольство потребителей может перерасти в стойкое отвращение, и тогда акции компании неизбежно поползут вниз, так что, в перспективе, честность и открытость – наилучший выход из положения. Однако производители ОС придерживаются иного мнения. Их бизнес настолько стремительно идёт в гору, что они предпочтут миллиарды вечно негодующих потребителей миллиону спокойных и счастливых.
Большинство системных администраторов, работающих с Windows NT, знают, если система зависает, ее следуют перегрузить, а если она перестает загружаться вообще, единственный способ привести ее в чувство – переустановить заново с нуля. По крайней мере, это единственный известный им способ, который срабатывает. Многие, правда, полагают, что инженеры из Microsoft владеют тайным знанием по усмирению вышедшей из повиновения Windows, однако делиться им ни с кем не собираются, даже с моими знакомыми потрясающими сисадминами.
Так как Linux продукт не коммерческий, а свободный и бесплатный, так как его сложно установить и еще сложнее с ним работать, то ему совсем не обязательно прикидываться надежным и безотказным. Он такой и есть. Едва в ОС Linux обнаруживается ошибка, ее сразу же начинают обсуждать на каждом углу. А затем любой, готовый отвечать за свои действия технически подкованный хакер открывает исходный код, находит «баг» и его исправляет.
Насколько я знаю, Debian – единственный дистрибутив Linux, имеющий собственный Устав (http://www.debian.org/devel/constitution). Но что меня действительно в нём восхищает, так это потрясающая система отслеживания ошибок (http://www.debian.org/Bugs) – интерактивная Книга жалоб и предложений, где публикуются описания промахов и ляпов и способы их устранения. Схема проста до гениальности. Когда в начале января 1997 года у меня возникли проблемы с Debian, я отправил письмо с описанием своих затруднений на почтовый адрес submit@bugs.debian.org. Моему вопросу сразу же присвоили порядковый номер (# 6518), уровень важности (уровни могут быть следующие: ошибка, критичная для всей системы (critical), ошибка, критичная для одного пакета (grave), серьезная ошибка (important), просто ошибка (normal), ошибка, уже исправленная в следующей версии (fixed), пожелания (wishlist)) и разместили в списке рассылки, где за нее принялись шарящие в Debian программисты. В течение следующих двадцати четырех часов по электронной почте я получил пять сообщений — два из Северной Америки, два из Европы и одно из Австралии, предлагавших мне одно и то же решение проблемы. Оно оказалось верным, всё заработало. Копию нашей переписки разместили на сайте Debian, чтобы пользователи, столкнувшиеся с подобными трудностями, не набивали лишний отчет об ошибке, а, порыскав по сайту, нашли способ избавления от напасти.
В том же 1997 году, десять месяцев спустя после описанных выше событий, я поставил на ту же машину Windows NT 4.0. Программа установки дошла до середины и зависла, зависла, не сказав ни слова, не сообщив ни о единой ошибке. Пытаясь понять, кто виноват и что делать, я зашел на сайт техподдержки Microsoft. Поисковая система не работала, то есть абсолютно. Абсолютно ничего не искала и ничего не сообщала. Она молчала даже о том, что не работает.
Проблема наверняка в материнской плате, догадался я, она была не совсем обычной сборки и модели, и я подумал, что раз NT не Linux, то и подобное разнообразие «материнок» она не поддерживает. А так как меня хлебом не корми, дай приобрести что‑нибудь новенькое из технического оборудования, я купил новую плату с логотипом Windows NT на коробке, гарантирующим её совместимость с данной операционной системой. Засунув её в системный блок, я запустил Linux. Linux запустился влет. Я снова попытался установить Windows NT. И снова процесс установки без объяснений остановился на полпути. С момента первого зависания прошло две недели, и я понадеялся, что, возможно, поисковик на сайте техподдержки Microsoft уже заработал. Надеялся я напрасно.
Я заново зарегистрировался на сайте техподдержки Microsoft. У меня спросили идентификационный номер Windows, я его ввёл и стал пошагово следовать инструкции, появившейся на экране. Короче говоря, я создавал такой же отчет об ошибке, как и на сайте Debian. Только здесь интерфейс был намного круче (настоящий графический пользовательский!) — я печатал сообщение в специально написанном под web–браузер текстовом окошке, а не просто, как в случае с Debian, отсылал «телеграмму» на «мыло». Я прекрасно осознавал, что когда закончу отчет, он автоматически превратится в собственность Microsoft, и обычные пользователи его никогда не увидят и не прочтут. Большинство линуксоидов отказалось бы участвовать в подобном безобразии по этическим причинам, я же решил поэкспериментировать и дать Microsoft шанс. Не получилось. Я так и не смог отправить сообщение, ибо поочередно сменявшие друг друга web–странички, которые я кропотливо заполнял, внезапно привели меня к совершенно пустому и девственно чистому листу — всё, тупик.
Я возвратился к начальной странице, кликнул мышкой по кнопке «phone support» (техпомощь по телефону) и раздобыл номер Microsoft. Я позвонил. После нескольких раздирающих уши пронзительных гудков записанный на пленку голос любезно сообщил мне: «Набранный вами номер не существует».
Ещё раз я попытался вдохнуть жизнь в поисковик на сайте. Безрезультатно, он не дышал. Тогда я решился воспользоваться одноразовой платной поддержкой Pay Per Incident (Заплати и получи помощь). Продравшись сквозь очередной частокол web–страниц, я уперся лбом в пустую стену и прочел: «Удовлетворяющая вашему запросу страница не найдена».
Но я не сдался, я долбал этот сайт до тех пор, пока на экране не возникло предупреждение: «Лимит запросов исчерпан. Вашей учетной записи техподдержка более не предоставляется. Если вы до сих пор нуждаетесь в помощи, нажмите клавишу «ОК». Внимание — поддержка платная…». Цена вопроса равнялась 95 долларам.
Дело принимало нешуточный в финансовом плане оборот, я отказался продолжать эксперименты с платным сервисом и обратился к FAQ. Похоже, с моей проблемой никто доселе не сталкивался. Только один пользователь оставил запись «Не могу установить NT», да и тот оказался рекламным агентом, а не инженером.
Тогда я послал всё к черту и Windows NT на тот компьютер так и не установил. Я пошел по пути наименьшего сопротивления и удовольствовался Debian Linux.
Доступные всем и каждому отчеты об ошибках играют первостепенную роль в мире программного обеспечения с открытым кодом. Благодаря им пользователи находят решение проблем, а операционные системы улучшаются от версии к версии. Это настолько важно, что технические специалисты высочайшего класса добровольно и совершенно безвозмездно тратят своё время и деньги на то, чтобы отслеживать и постоянно обновлять базу ошибок и глюков. В сообществе коммерческих ОС все шиворот навыворот, и сообщение об ошибке — роскошь, за которую приходится выкладывать немалые деньги. При этом ваш отчет держится в строжайшем секрете, чтобы ни дай Бог никто из пользователей ничего не узнал и не воспользовался (бесплатно!) помощью, оказанной только вам за ваши 95 долларов. Хотя, с другой стороны, а что мешает пользователям NT самим организовать бесплатную и общедоступную систему отслеживания ошибок и предоставления помощи?
Повторю опять и опять — бессмысленно обсуждать подобные вопросы в отрыве от концепта «культура». На самом деле деле посредством Pay Per Incident корпорация Microsoft поддерживает не OC Windows, а иллюзию выгодной и разумной сделки, которую совершил приобретатель ПО от Microsoft. Всё, что ему теперь остаётся, — платить за профилактическое обслуживание фантазии. Потому что если людям требуется действительно надежная ОС, они ставят Linux, и если им нужна техподдержка, они ее рано или поздно находят. А вот что требуется пользователям Microsoft — загадка.
На дату написания этой главы (январь 1997 года) в базе данных, содержащей «баги» на сайте Debian Linux, насчитывалось порядка 32 000 различных ошибок. Почти все из них уже давным–давно исправлены и закрыты. Из «непочиненных» осталось 12 критических (critical) ошибок, последнюю из которых зарегистрировали 79 дней назад; 20 критических ошибок для одного пакета (grave), самой старой из которых исполнилось 1166 дней; 48 важных (important) и сотни простых (normal) и более чем простых недоделок.
У BeOS (сейчас и до неё доберемся) тоже имеется собственная база данных ошибок и недочетов (http://www.be.com/developers/bugs/index.html) [17] с собственной классификационной системой, включающей такие категории, как «Не является ошибкой» (Not a Bug), «Так и должно работать» (Acknowledged Feature) и «Исправлению не подлежит» (Will Not Fix). Некоторые «баги» тут — просто–напросто капризы работающих с Be хакеров, которые подпадают под классификацию «Спасибо, что вы с нами» (Input Acknowledged). Одно такое сообщение, датированное 30 декабря 1998 года, я нашел где‑то в середине длиннющего перечня недоделок между постами «Мышка чудит» и «Бесполезно изменять формат рамки BView, если рамка не прикреплена к BWindow».
Выглядело оно так:
------------------------------------------------------
R4: требуется мегаломаньяк на руководящую должность
Статус: Семейка BeOS
Версия BeOS: R3.2
Комплектующие: не определены
Описание проблемы:
Что на самом деле требуется корпорации Be, так это найти подходящего мегаломаньяка, страдающего манией величия, посадить его в руководящее кресло и выставить на всеобщее обозрение, дабы пользователи возненавидели его лютой ненавистью. Иначе BeOS зачахнет в волшебном королевстве идеальной ОС, с которой простым людям в здравом уме и твердой памяти не совладать. Успех операционной системы зависит не от ее великолепных качеств и достоинств, а от того, насколько ненавистны и отвратительны главы корпорации, которая выпускает данную ОС.
Полагаю, это побочный эффект убогих условий, в которых прозябают разработчики. Но нужда, как известно, объединяет. Поэтому, чтобы сделать BeOS менее доступной и ужасающе ненадежной, разработчикам волей неволей придется объединиться в некое товарищество, наподобие того, какое образует группа совершенно незнакомых людей, застрявших в овощном магазинчике во время мощнейшего урагана.
Далее, необходимо перенести головной офис компании BeOS в город с отвратительными климатическими условиями. Это закалит характер тех же разработчиков, и вознесёт BeOS на вершину успеха. Я бы предложил Сиэтл, но, боюсь, там всё места уже заняты. Попробуйте Вашингтон, округ Колумбия, но ни в коем случае не Сан–Диего или Тусон.
------------------------------------------------------
К сожалению, система на сайте корпорации Be скрывает имена людей, регистрирующих отчеты об ошибках (чтобы уберечь их от неминуемого возмездия?), поэтому, как зовут автора сего послания, мне не ведомо.
Может показаться, что я считаю Debian Linux венцом технического и этического творения. Однако не так всё просто, как кажется, во вселенной операционных систем. Я запустил Windows NT на другом компьютере, и, столкнувшись в январе 1999 года с какой‑то проблемой, снова зашел на сайт техподдержки Microsoft. Поисковая система работала (правда, чтобы ею воспользоваться, мне пришлось представиться «продвинутым пользователем»), и вместо чахлого и бесполезного FAQ моему взору предстала пара сотен документов (я создал очень обтекаемый по форме запрос), подлинных отчетов об ошибках, хотя они и назывались как‑то иначе. То есть Microsoft запустила точно такую же систему поиска и регистрации ошибок, как и Debian, с другим интерфейсом, конечно, и другим способом подачи материала, но со всеми необходимыми техническими штучками–дрючками. Компания честно признавала, что ее операционная система тоже содержит глюки.
Как я уже писал, продажа операционных систем – довольно сомнительное занятие, Apple и Microsoft до сих пор остаются на плаву только благодаря агрессивному проталкиванию в массы новейших технологий и созданию такого образа своих компаний, в которые люди охотно верят и за которые с радостью платят. В случае с Apple это образ творческих вольнодумцев, а в случае Microsoft – почтенных буржуа. Как и Disney, они продают не товар, а интерфейс, волшебное зеркальце. Его необходимо тщательно полировать, на нем не должно быть трещинок и сколов, иначе чудесный мираж рассеется, и бизнес–план полетит ко всем чертям.
Похоже, еще совсем недавно людям, создававшим руководства пользователей или сайты техпомощи для коммерческих операционных систем, юристы компаний или отделы по связям с общественностью строго–настрого запрещали даже намекать на том, что данное программное обеспечение содержит ошибки, а интерфейс болен синдромом «ноля преткновения». Поэтому до поры до времени все эти «мануалы» и web–сайты ни на что не годились. После знакомства с ними даже технически одаренные пользователи теряли дар речи и начинали подозревать, что у них поехала крыша.
Когда Apple ведет себя как обычная корпорация, мы «хотим верить», что так надо, что несмотря на это Apple нас не подведет и «флот не опозорит». Мы ни капли не сомневаемся в Apple, ведь у них такая чудная реклама, да и злокозненный Билл Гейтс постоянно вставляет им палки в колеса. Когда же дело касается Microsoft, мы тотчас впадаем в паранойю, и нам везде мерещится злой умысел. Корпорация явно от нас что‑то скрывает! Она такая могущественная! Она с ума нас всех сведет!
Утаивать промахи и пропагандировать исключительно успехи характерно для тоталитаризма — режима, распространенного в Центральной Европе в середине двадцатого века. Вспомните Кафку или Оруэлла. Но тоталитаризму пришел конец, Берлинская стена рухнула, и теперь Microsoft ничего другого не остается, как разместить базу данных системных ошибок в открытом доступе для всех желающих. Пусть она называется как‑то по–другому, и семь потов сойдет, пока вы её отыщете, но она‑таки есть.
Другими словами, Microsoft приспособилась к двухуровневой структуре «Элои–Морлоки». Если пользователь — Элой, он устанавливает Windows, следует инструкциям, надеется на лучшее и молча страдает, если что‑то идет не так. Если он Морлок, он заходит на сайт, логинится как «продвинутый пользователь», находит базу данных и добивается правды от первого попавшего под горячую руку инженера Microsoft (хотя ни имени, ни фамилии его он так и не узнает).
Но тут возникает вопрос – раз сама Microsoft пошла на такой беспрецедентный шаг, то какой толк в продаже операционных систем? Пользователи, возможно, и согласятся платить 95 долларов Microsoft–у за каждую проблему, но взамен они потребуют, чтобы другие бедолаги, денег не заплатившие, никогда бы не узнали, как справиться с постигшей их бедой. Это удобно – люди друг другу не доверяют, информацией не делятся и тем самым подпитывают иллюзию о непогрешимости системы. Но как только сообщения о системных ошибках и о том, как с ними бороться открыто появляются на сайте, всё меняется. Кто пустит на ветер 95 баксов, чтобы узнать, как починить систему, если, возможно, какой‑нибудь дурак уже заплатил за эту информацию, и, следовательно, она вскорости появится на сайте абсолютно бесплатно? База данных растет, и у Microsoft нет другого выхода, как честно и откровенно сказать, что их операционные системы так же, как и другие ОС, полны «багов». Ничего постыдного в этом нет. Как я уже говорил, база данных Debian содержит 32 000 сообщений об ошибках. Просто теперь Microsoft нечем хвастать перед конкурентами, и пользователям Windows и всем тем, кто до сих пор ещё «хочет верить», верить становится всё труднее.
Memento mori
Когда загрузка заканчивается, и Linux прекращает изрыгать телеграфоподобную тарабарщину, мне предлагают залогиниться — ввести имя пользователя и пароль. Компьютер продолжает работать в режиме командной строки, и по черному экрану бегут белые буквы. Никаких окошек, меню, кнопочек. Система не реагирует на мышь, она даже не знает, что к неё подключена мышь. До сих пор в таком режиме запускается множество программного обеспечения. Например, Emacs можно запустить как в графическом режиме, так и с текстовым интерфейсом (на самом деле имеется даже две ГПИ–версии Emacs, получившиеся в результате «раскола» между Ричардом Столлманом и некоторыми хакерами, которых он достал хуже горькой редьки). То же самое справедливо и для многих других Unix–программ. Большинство из них до сих пор не обзавелись ГПИ, а те, что всё‑таки обзавелись, преспокойно запускаются из командной строки.
Конечно, кто‑то подумает, что раз у меня только одно окно на мониторе, мне позволено работать только с одной командной строкой, и, соответственно, одномоментно запускать лишь одну программу. Однако, стоит мне нажать сочетание клавиши Alt и функциональной клавиши F2, что расположена в верхнем ряду клавиатуры, как передо мной распахивается свеженькое чистенькое черное окошко с приглашением ввести логин и пароль. Залогинившись, я запускаю ещё одну программу, затем нажимаю Alt‑F1 и возвращаюсь в предыдущее окно, которое, несмотря на то, что я переключился на другие задачи, продолжает работать как ни в чём не бывало. Или, нажав Alt‑F3, я могу залогиниться в третьем окошке или в четвертом (Alt‑F4) или в пятом (Alt‑F5). Одно окошко я могу открыть под своим именем, другое – под именем root (системный администратор), а с третьего и вовсе зайти на удаленную машин через интернет.
Каждое из этих окошечек на языке Unix называется tty (сокращенно от teletype, телетайп). Поэтому всякий раз, открывая окошко в Linux, я словно бы переношусь назад в ту самую школьную комнатку в моём родном городе, где двадцать пять лет назад написал свою первую программу. Просто tty тише и быстрее, чем телетайп, и поддерживают такое мощное ПО, как Emacs и GNU.
В Linux вы легко (легко по стандартам UNIX, а не по стандартам Apple/Microsoft) сконфигурите вашу машину так, чтобы после включения она сразу же загружала ГПИ. В этом случае вы никогда не увидите окошек tty. Однако я до сих пор гружусь в телетайпном белые–буквы–на–черном–экране режиме. Это моё memento mori, если хотите. В старину маститые писатели, бывало, держали на письменном столе человеческий череп, чтобы он напоминал им о суетности и бренности мира. Окошки tty предостерегают меня от соблазна пасть жертвой мишурного блеска пользовательского интерфейса.
Оконная система X Window System – ГПИ в среде Unix — должна поддерживать тысячи разных видеокарт на разнообразных чипсетах, огромное количество отличающихся друг от друга типов памяти и материнских плат. Кроме того, не стоит забывать о несметной армии мониторов (от новехоньких до бэушных), которые предлагает нам рынок, и так как каждый монитор отличается особыми техническими требованиями, то, следовательно, существует несколько миллионов всевозможных комбинаций материнских плат и дисплеев. Единственное, что роднит их всех – то, что все они могут работать в алфавитно–цифровом стандарте VGA, старейшем режиме работы командой строки, который в течение нескольких секунд можно наблюдать и при загрузке Windows. Linux всегда загружается в текстовом режиме, ибо поначалу система понятия не имеет, какое оборудования подключено к компьютеру. Если вам претит работа со «стеклянным телетайпом», и вы мечтаете запустить Linux в ГПИ, то сначала вам потребуется точно и достоверно сообщить системе, какое аппаратное обеспечение установлено на вашей машине. Если вы ошибетесь, то в лучшем случае получите пустой экран, а в худшем — сожжёте дисплей, подав на него не тот сигнал.
Когда я осваивал Linux, всё приходилось делать вручную. Как‑то я почти целый месяц убил на то, чтобы заставить систему опознать монитор. Свидетельница этой отчаянной и затяжной борьбы, моя записная книжка, была испещрена невнятными закорючками, горестно оплакивающими мою тяжкую долю. Стоит, правда, признать, что монитор тот был очень уж нестандартным. Сейчас большинство дистрибутивов Linux поставляются с программой, которая автоматически определяет тип видеокарты и настраивает систему наилучшим образом, так что запустить X Window теперь так же легко, как ГПИ на машинах с ОС от Apple и Microsoft. Важнейшая системная информация записывается в обычный текстовый файл XF86Config, в который имеет смысл заглянуть, даже если ваш дистрибутив создает его автоматически. Для большинства пользователей всё, написанное в нём, загадочно и необъяснимо, но не в этом и суть. Подобный файл с похожей информацией существует и в MacOS, и в Windows, однако запрятан он так далеко, что не всегда найдёшь, а если даже и найдёшь, то вряд ли откроешь и прочитаешь с помощью обычного текстового редактора. В Linux все системные файлы открываются без труда. Это всегда обычные текстовые файлы, не требующие специальных программ, чтобы их прочесть. С одной стороны это хорошо, есть возможность в любой момент на них поглазеть, с другой стороны это плохо, так как можно случайно повредить их и угробить операционную систему.
Предположим, с моим файлом XF86Config всё в порядке, я ввожу команду startx и запускаю X Window System. Монитор на минуту гаснет, раздается волнующий писк, и на экране, на подложке серого фона, возникает рабочий стол с курсором мышки посредине. Потом загружается оконный менеджер. Сама по себе система X Window System ГПИ не является, она не рисует окна и менюшки, предоставляет это делать другим программам — оконным менеджерам, которые ставятся поверх X Window. Некоторые из них, разумеется, в свободном доступе. Самый известный и популярный — twm (Tom's Window Manger — оконный менеджер Тома[18]), однако существуют и другие варианты, например, более легкий и, возможно, более шустрый fvwm, которым пользуюсь я. Сейчас я положил глаз на оконный менеджер Enlightenment. Это, скажу я вам, нечто! Совершенно ни на что не похожее, самое «хипповое» приложение, которое я когда‑либо видел. Во–первых, оно написано под Linux, во–вторых, абсолютно бесплатно, в–третьих, создано группой хакеров, по–настоящему одержимых программированием, а в–четвертых, просто–напросто великолепно. Это такой оконный менеджер, который естественно вписался бы на задний план фильма «Чужие».
В любом случае, оконный менеджер – посредник между X Window и вашим программным обеспечением. Он определяет, как должны выглядеть рамки окон, меню и кнопочки, то есть формирует поле деятельности для приложений. Приложения могут быть любыми — текстовыми редакторами, браузерами, графическими пакетами или утилитами, такими, как, например, калькулятор или часы. Это похоже на параллельную вселенную — вроде бы всё, как в знакомом до боли мире, где царствуют Apple и Microsoft, и, однако же, чуть–чуть по–другому. Вместо знаменитого Adobe Photoshop, идущего на «ура» под MacOS и Windows, вы ставите The GIMP, вместо Microsoft Office — покупаете ApplixWare[19]. Большинство платных программ таких, как Mathematica, Netscape Communicator, Adobe Acrobat имеют Linux–версии, и если вы подобающим образом настроите оконный менеджер, невозможно будет отличить, в какой системе данные программы трудятся — в MacOS, Windows или Linux?
Но вряд ли где ещё, кроме Linux, вам встретиться окошко под названием xterm. Обычное окошко – черные буквы на белом фоне, цвет которых вы вольны изменить в любое мгновение. Каждое окошко xterm – самостоятельный интерфейс с командной строкой, этакое tty в окне. Поэтому, даже если вы с головой погрязли в ГПИ–режиме, вы всё–равно не утратили возможность общаться с Linux–системой посредством командной строки.
Довольно много программного Unix–обеспечения вообще обходится без ГПИ. Возможно, его создали до появления X Window, или, возможно, программистам совершенно не хотелось заморачиваться с разработкой ГПИ, а, может, они в нем просто не нуждались. Так или иначе, для вызова любой такой программы достаточно ввести ее имя в командной строке окошка xterm. Наглядное тому подтверждение – уже упоминавшаяся команда whoami. Есть ещё одна, wc (сокращенно от word count, счетчик слов), которая сообщает количество строк, слов и букв, набранных в текстовом файле.
Запуск подобных утилит из командной строки – неоспоримое преимущество Unix, ибо попробуйте сделать хоть что‑то похожее в операционных системах, работающих под ГПИ. Возьмем, к примеру, команду wc, ничего не стоит сесть да написать такую программку для операционной системы с командной строкой. Пара строчек кода (а какой‑нибудь умница–программист вообще обойдется одной строкой) и – готово. Программка маленькая, всего‑то несколько байт памяти, места на диске практически не занимает. Чтобы написать подобную программку в операционках с ГПИ, потребуются сотни, даже тысячи строк кода, а если программист попадется с воображением, то и десятки тысяч. Такая программа страдала бы неизлечимым ГПИ–синдромом – медленно и неохотно загружалась и жрала бы память как не в себя. Овчинка выделки не стоит, поэтому вряд ли такая программа, как самостоятельная и независимая утилита, увидела бы свет. Пользователям пришлось бы дожидаться, когда выйдет коммерческий пакет, в который добавили бы встроенную функцию – счётчик слов.
Склонность ГПИ усложнять любое, даже самое минимальное программное обеспечение постепенно полностью меняет стиль программирования. Теперь бессмысленно писать маленькие утилитки. Их замещают функциями, встроенными в громадные, всеохватывающие программные пакеты. Аппетиты ГПИ растут, он усложняет всё вокруг, программные пакеты превращаются в вечно голодных монстров и начинают поглощать друг друга, как, например, Microsoft Office поглотил Microsoft Word, Excel и Power Point. Все это напоминает ситуацию с гипер–маркетом Wal‑Mart – чудовищных размеров исполин, обосновавшийся на окраине города, сживает со свету расположенные по соседству маленькие частные магазинчики.
Сравнение не совсем уместное, потому что когда магазинчик не выдерживает конкуренции с Wal‑Mart, его владелец разоряется и теряет всё. Ничего подобного с программами, конечно же, не происходит, они становятся компонентами бесчисленных пунктов меню, как это случилось, например, с утилитой wc, которую встроили в Microsoft Word. Единственный по–настоящему серьезный изъян в этом случае – потеря гибкости программного продукта, однако большинство пользователей этого либо вовсе не замечает, либо делает вид, что так и надо. Но с Wal‑Mart тоже не всё гладко. Ведь большинству покупателей всего‑то и нужно — одна баночка того, бутылочка другого, а их заставляют брать целые упаковки. И что потом делать со всем этим добром? Хотя, конечно, у каждого пользователя свой взгляд на то, что ему нужно, а что нет.