Автор: Илья Щуров Voyager

Рабочий день в "Компьютерре" - понятие очень условное. Зачастую можно выйти из редакции с чувством глубокого морального удовлетворения после трудного, но плодотворного рабочего дня - и встретить кого-нибудь из коллег, идущего навстречу с бодрым и отдохнувшим лицом, на котором явственно читается желание поработать.

Встреча с прекрасным

Так что я никак не ожидал, что, появившись в редакции всего-навсего в половине седьмого (вечера, разумеется), останусь один на один с этим заморским чудом техники. Впрочем, может быть, оно и к лучшему.

Первый вопрос - а где же здесь, собственно, системный блок? - был решен довольно быстро. Вспомнив свой первый компьютер (незабвенный "Апогей БК 01"), представлявший собой большую красную клавиатуру, я за каких-нибудь пятнадцать минут догадался (на всякий случай заглянув под стол и посмотрев на потолок), что разработчики iMac’а вполне могли провернуть такую же штуку и здесь, уместив всю электронную начинку в широкий и не очень тонкий монитор (вероятно, года через три они запихнут ее в мышку).

Вдоволь налюбовавшись плавными линиями и молочно-белым пластиком корпуса, я перешел к следующей задаче: включению. Обойдя устройство по замкнутому контуру несколько раз, понажимав на все известные мне сочетания клавиш на клавиатуре, пощелкав единственной кнопкой мышки и покрутив ее маленький шарик (выполняющий функции "двухмерного колесика"), а также беззастенчиво ощупав монитор-системник со всех сторон, я уже был готов впасть в панику и сдаться на милость Гугла, введя в него вопрос "как включить iMac?". Наконец, озарение снизошло: в интуитивно понятном месте на задней стенке дисплея приютилась хорошо замаскированная кнопка, нажатие на которую оживило сей девайс. (Через несколько дней я узнал, что тайное знание о ее расположении было откуда-то получено Сергеем Леоновым, а затем распространялось по редакции как устное народное творчество - но до меня, увы, не дошло.)

В общем, знакомство с компьютером обещало быть интересным.

Вскрытие показало…

Детское желание узнать, "что у игрушки внутри", у меня носит довольно "мирный" характер - я давно перестал интересоваться "железной" составляющей техники, так что попадающим в мои руки устройствам не нужно бояться отвертки или паяльника (впрочем, iMac’у это не сильно помогло - сразу после меня им вплотную занялся Сергей Леонов). А вот заглянуть под "софтверный" капот всегда любопытно (да и риск обнаружить после сборки "лишние детали" меньше) - к тому же Mac OS X сама по себе довольно интересная система, и упустить шанс в ней покопаться - просто грех.

Пользователь, привыкший к интерфейсу операционок одной небольшой редмондской компании, а также похожим на них графическим средам в юниксах (в первую очередь Gnome и KDE), пересаживаясь за Мак, оказывается в непривычной среде. От него можно услышать вопросы типа "где ж здесь кнопка Пуск?" или "а куда делось главное меню программы?", нередко сопровождающиеся весьма выразительной лексикой. Мне кажется очевидным, что удобство того или иного интерфейса - это почти всегда вопрос привычек (и именно поэтому в области интерфейсов трудно экспериментировать - перемены мало кто любит, и можно распугать всех пользователей), так что ограничусь констатацией: визуальная среда Mac OS X довольно сильно отличается от всего, с чем мне приходилось сталкиваться. Впрочем, она значительно ближе к MS Windows, чем та среда, в которой я работаю каждый день.

Здесь потребуется некоторое лирическое отступление, имеющее характер пояснения и напоминания. Постоянные читатели наверняка знают, что я уже несколько лет "пишу и верстаю" в Linux. Однако это еще полбеды - беда же в том, что на моем рабочем столе нет не только меню "Пуск" или ему аналогичного, но и вообще никаких иконок и даже окон в привычном понимании; основным инструментом навигации по файловой системе является командная строка, а мышкой я пользуюсь, только когда работаю с изображениями. В общем, мои пристрастия очень далеки от современного интерфейсного мейнстрима - что редмондского, что яблочного.

Однако в данном случае это не слишком важно. По секрету скажу, что я не планировал менять свои привычки и адаптироваться к Mac OS X. Напротив, мною руководило желание переделать эту систему так, чтобы в ней можно было работать. И у меня были все основания считать, что это удастся. Потому что на самом деле разница между Mac OS X и Linux не так уж и велика.

Вид сверху

По всей видимости, идеология Mac мне не слишком близка, но некоторые вещи действительно успели понравиться даже за время того небольшого тест-драйва, что удалось провести. К ним относится, в частности, Expose: по нажатии F9 система позволяет взглянуть на рабочий стол "с высоты птичьего полета", располагая на нем все открытые окна в уменьшенном виде (при этом они не "замораживаются", а продолжают работать).

В первую очередь я по привычке установил Mozilla Firefox, Adium (свободный IM-клиент, основанный на библиотеке libgaim) и NeoOffice (адаптированный порт OpenOffice.org) - софтверный минимум, необходимый для работы. Эти программы устанавливались привычным для Windows-пользователя способом - скачал дистрибутив, распаковал (точнее, подмонтировал образ диска, но для пользователя эти действия мало чем отличаются), при необходимости запустил Setup, нажал несколько раз "Next" и "Agree" - ура, все работает.

Однако в мои задачи входила установка гораздо менее распространенных в мире Mac OS X программ, большую часть из которых нужно было собирать аж из исходников. Для этого пришлось скачать с сайта Apple почти гигабайтный архив со средствами разработки (предварительно прикинувшись крутым программером и зарегистрировшись на Apple Developer Connection) и поставить систему управления пакетами. В первую очередь я искал способ установить оконный менеджер Ion, без которого уже не представляю свою компьютерную жизнь (подробнее про Ion см. статью "Безоконный менеджер" в "КТ" #604), в планах также были Gimp, Inkscape, Gaim и даже Apache с MySQL. Готовый пакет (хотя и с не очень свежей версией) нашелся в системе MacPorts, и именно ее я установил в первую очередь.

После нескольких вспомогательных заклинаний в командной строке я набрал заветное port install ion3. Неторопливо поскрипывая двумя ядрами своего процессора, iMac прикинул, сколько всего потребуется скачать и скомпилировать, ужаснулся, затянул покрепче ремень - и приступил к делу: необходимые пакеты (а их было немало) автоматически забирались из Сети, распаковывались, компилировались и прописывались в системе без моего вмешательства. Не могу сказать, чтобы установка прошла без сучка без задоринки, однако я и не рассчитывал на быстрое достижение своих целей - они не совсем обычны, а Ion в конечном счете все-таки собрался.

Надо заметить, что Mac OS X использует две параллельные графические подсистемы - собственную проприетарную Aqua и стандартные для мира юникс X’ы (точнее, XFree86). Последние, впрочем, требуется отдельно установить с прилагаемого DVD-диска, но делается это совсем просто. После чего в Mac OS начинают работать программы, даже не адаптированные под Aqua, причем внешний вид их окон почти не отличается от оригинальных - системы работают параллельно и друг другу практически не мешают. По крайней мере, если не менять встроенный оконный менеджер quartz-wm на что-то другое. Но именно это мне и хотелось сделать.

Боюсь, что, взглянув на скриншот слева, поклонники маковского дизайна захотят стереть меня в порошок: да, я действительно заменил красивые и стильные окошки в стиле Aqua на унылые и аскетичные, но весьма функциональные и удобные фреймы Ion’а. И это было только начало.

Они повсюду

Просматривая списки пакетов в MacPorts и Fink, поневоле задумываешься о проникающих способностях свободного софта: здесь есть почти все программы, к которым я привык под Linux. Желающие могут даже установить KDE или Gnome поверх Mac OS X - мне лично очень хотелось посмотреть на то, как будет выглядеть замечательный планетарий KStars, но увы: сборка всех необходимых для этого пакетов несколько противоречила графику использования iMac’а.

Вероятно, повозившись еще немного, я мог бы привести Mac OS X в состояние, в котором ее вообще никто не отличил бы от Linux или FreeBSD. Правда, осмысленность этого подхода остается под вопросом - в конце концов, никто не мешает поставить Linux, зачем мучить и так неплохую ОС? Если бы мне действительно пришлось работать на iMac’е, вероятнее всего я бы попытался использовать часть встроенных возможностей системы вместе с привычным набором софта. А возможно, даже "распробовал" бы какие-то специфические эппловские решения.

Ну а текущий мой опыт работы под Mac OS X подтверждает мнение о том, что любую задачу можно решить практически в любой среде, и выбор операционной системы в скором времени будет таким же делом вкуса, привычки и технологической моды, как и большинство других "выборов" в наш век тотального консьюмеризма. Конечно, как только пользователи Windows обнаружат, что он вообще есть.

Тотальная автоматизация

В Mac OS с незапамятных времен присутствует система, которая тоже должна была бы мне очень понравиться - если бы я успел с ней разобраться. Речь идет об AppleScript - средстве автоматизации различных процессов, чем-то напоминающем столь милые сердцу любого юниксоида shell-скрипты, но предназначенном для работы с любыми приложениями. Однако философия здесь достаточно далека от классического unix way.

Работу с командной строкой в unix можно представить как проектирование конвейеров, обрабатывающих поток информации, обычно в текстовом виде. Мы имеем несколько сотен достаточно специализированных "роботов", каждый из которых умеет делать одно действие, но делает его хорошо. Расставляем их в цепочку, настраиваем каждый и запускаем процесс обработки.

AppleScript устроен несколько иначе. Продолжая аналогию, можно сравнить его с языком, который понятен более сложным и более универсальным роботам ("большим" приложениям типа Adobe Photoshop), с помощью которого можно автоматизировать их работу и наладить между ними взаимодействие. При этом его грамматика очень похожа на грамматику естественного английского (и некоторых других языков), а написанные на нем скрипты напоминают кулинарные рецепты: "положить в кастрюлю три яйца из холодильника на кухне" не сильно отличается от "tell application "Downloader" to download "computerra.ru" to file “test.html”". (Насколько такой синтаксис удобен для разработки реальных программ - вопрос спорный, но после вычурных конструкций большинства языков программирования выглядит, несомненно, впечатляюще.) В версии Mac OS X 10.4 Tiger появилось средство для упрощения разработки скриптов под названием Automator, позволяющее создавать "потоки обработки" (workflow) буквально мышкой, вообще без написания кода, - впрочем, к подобным "прослойкам" я отношусь скептически.

И снова надо заметить, что в Windows присутствует близкая технология Windows Scripting Shell. Однако в глаза она не бросается и популярностью у простых юзеров не пользуется.

Ссылки

[1] - краткие "советы дня" о том, как использовать Mac OS X на 100%.

[2]  и (медленно, но верно переезжающий на ) - основные репозитарии свободного софта под Mac OS X.

[3] - сравнительный анализ Mac OS X и Windows XP.

[4]  - все о скриптах AppleScript.