Читать «Журнал «Компьютерра» №43 от 22 ноября 2005 года» онлайн - страница 53

Журнал 615 Компьютерра

Мы пойдем другим путем

Философия работы с компьютером в Unix/Linux и Windows принципиально разная. С точки зрения Unix-системы, программ должно быть много, и каждая должна заниматься своим делом, а сложная функциональность достигается за счет их взаимодействия: одни приложения могут использовать другие, передавать друг другу информацию и вообще жить бурной внутрисистемной жизнью. Более того: пользователь, по мнению Unix, представляет собой лишь еще один процесс, не лучше и не хуже какой-нибудь утилиты или демона. Соответственно отдельные софтинки должны уметь общаться в первую очередь с себе подобными - то есть обладать интерфейсами, которые поддаются автоматической обработке.

В Windows все наоборот: программы готовы взаимодействовать с человеком (с помощью GUI), но не со своими собратьями. В результате отсутствия разделения труда приложения обрастают гроздьями функций, размер дистрибутивов растет как на дрожжах, а новые возможности бывают далеко не всегда нужны большинству пользователей. Конечно, «монолитные» программы есть и под Linux, но общая концепция системы все-таки другая, что чувствуется в большинстве открытых разработок.

Впрочем, это не значит, что весь свободный софт жутко недружелюбен. Проблема пользовательского интерфейса решается в рамках Unix way легко и изящно: многие GUI-приложения просто являются надстройками (frontend) над консольными утилитами (backend). Например, под Linux существует несколько систем синхронизации с «Палмами» (kpilot, jpilot и т. д.), но все они являются frontend’ами над разработкой pilot-links, осуществляющей взаимодействие с КПК. Аналогичным образомработают CD-рекордеры K3b и xcdroast, а также множество других GUI-программ. Подобный подход дает серьезные преимущества: не теряя в удобстве работы по сравнению с «монолитами», мы приобретаем гибкость модульной архитектуры.

Разговор с компьютером

Наличие множества программ с доступом из командной строки создает своеобразную языковую среду, в которой очень любят работать юниксоиды. Из нескольких тысяч «слов» можно составлять «предложения», выполняющие довольно нетривиальные действия. Можно изобретать новые «слова», используя скриптовые языки (Shell, Perl, Python и др.), что позволяет расширять возможности самовыражения и упрощать работу с системой. При этом компьютер выступает в качестве очень прилежного ученика-помощника, которому достаточно один раз объяснить, как выполнять то или иное действие, и можно быть уверенным, что он все поймет и запомнит (если, конечно, вы правильно объясняли).

Меняется само отношение к работе с компьютером: оно становится более творческим, смещаясь от периодического прочесывания Интернета в поисках новой «классной программы для…» к решению конкретных задач теми средствами, которые предоставляет система. Конечно, это не значит, что софт искать совсем не приходится или что нужно все писать самому, - но зачастую такой подход оказывается быстрым и эффективным. К тому же он позволяет реализовывать весьма специфические вещи, которые практически невозможно найти в сторонних разработках. Подчеркнуть собственную индивидуальность всегда приятно, а интересная и необычная функция, сделанная своими руками, - это вам не логотип на экране мобильника, купленный за доллар у оператора.