В любом случае, оконный менеджер – посредник между 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 тоже не всё гладко. Ведь большинству покупателей всего‑то и нужно — одна баночка того, бутылочка другого, а их заставляют брать целые упаковки. И что потом делать со всем этим добром? Хотя, конечно, у каждого пользователя свой взгляд на то, что ему нужно, а что нет.
Стоит отметить ещё одну важную деталь – в состав Office входит язык программирования Basic. Basic – мой первый язык программирования, я выучил его ещё в школе, работая с телетайпом и перфолентами. На Basic можно создавать собственные утилиты, которые знают, как вести себя со всеми этими «наворотами», «фишечками» и «мулечками», которыми кишмя кишит «офисный» пакет. Basic легче, чем языки программирования, обычно используемые в Unix, поэтому именно Office, а не остальные ГПИ — «прибамбасы», завоевал сердца пользователей. Может, как раз благодаря ему и зародится вскоре новое поколение хакеров, сильнее тех, кто придумали GNU.