СОФТЕРРА: Лилипуты в стране великанов
СОФТЕРРА: Лилипуты в стране великанов
Автор: Александр Клименков
Прелесть маленьких программок даже не в размере, а в том, что одно-единственное действие, для которого предназначены эти лилипуты, они выполняют хорошо и на совесть. Они не требуют инсталляции, не подминают под себя все свободные ресурсы, а самое главное, не перегружены вагоном и маленькой тележкой совершенно ненужных функций.
Bloatware
Английский термин bloatware можно перевести как "разбухшее ПО". Так называют программы, которые предоставляют минимальную функциональность и при этом требуют для работы несоразмерно большое количество дискового пространства и оперативной памяти. Пренебрежение разработчиков к оптимизации размеров программ также заслужило специального определения - creeping featuritis, то есть "ползучий улучшизм".
Сколько раз приходилось видеть софтверных великанов, список возможностей и функций которых занимал не одну страницу. Если принять во внимание "пиратскую" скидку, широкое распространение таких программ вполне объяснимо. Купил за несколько десятков рублей диск, поставил на многогигабайтный винчестер и забыл. Мало ли что может понадобиться. А тут программа под рукой - все умеет, со всем разберется.
Тем удивительнее, что малыши становятся все популярнее. И тому есть причины. Такие программы достаточно мобильны, их легко переносить с компьютера на компьютер. Хоть с точки зрения функциональности они звезд с неба и не хватают, зато быстро и умело выполняют действия, необходимые большинству пользователей. При этом у них есть одно важное преимущество: они просты, разобраться в них нетрудно. Да и опытные пользователи порой устают от слишком обширной функциональности. Например, моя жена, работающая с большими сложными пакетами, с удовольствием пользуется маленькими программками, которые я ей подкидываю. А уж маленькие аркадные и логические игрушки для КПК неизменно обходят в нашем семейном рейтинге больших многодисковых монстров игровой индустрии. Кроме всего прочего, такими малютками приятно пользоваться, как приятно держать в руках добротную миниатюрную вещь. Такие программки входят в повседневную жизнь и стоят на компьютере годами. К ним привыкаешь как к старой машине, они превращаются в удобный, привычный инструмент.
Далее мне хотелось бы рассказать о программах-малютках, которыми я пользуюсь почти ежедневно. Возможно, и читателям они пригодятся.
Маленькая выжигалка
О назначении программы Small CD Writer недвусмысленно говорит ее название. Она пишет диски. Не печатает к ним этикетки, не тестирует привод, не создает виртуальные дисководы, а просто пишет диски. Она действительно small - последняя версия весит лишь 398 Кбайт. При таком размере программа умеет писать CD- и DVD- болванки, создавать загрузочные диски и работать с ISO-образами. Программа не требует инсталляции и не занимает места на диске под кэширование файлов (как делают многие ее старшие собратья). Объективности ради отмечу, что мне приходилось слышать от знакомых, пользовавшихся Small CD Writer, о каких-то проблемах с записью DVD, но сам я ни с какими проблемами не сталкивался.
У читателей может возникнуть закономерный вопрос: почему же автор, коли ему не нужны всякие дополнительные функции, не пользуется стандартными средствами для записи дисков, имеющимися в Windows XP? Ответ простой: дополнительные функции мне все же нужны. Но не печать этикеток к дискам, а, скажем, возможность установить скорость записи. Кроме того, программа подкупает своим аскетичным, но в то же время изящным интерфейсом. Обычно программисты-одиночки не отличаются хорошим вкусом и не дружат с дизайном, но и из этого правила бывают приятные исключения.
Кроме маленькой выжигалки дисков, на сайте разработчиков (www.avtlab.ru) имеется еще несколько неплохих программ. Это клиент-пчелка The Bee размером 753 Кбайт, работающая с электронной почтой, news-серверами и основными сервисами ICQ; и URL-Album размером чуть меньше мегабайта, позволяющая хранить коллекцию ссылок, снабжая каждый линк автогенерируемым маленьким скриншотом с сайта.
Тигровый блокнотик
Блокнот TigerPad (tigerpad.narod.ru) на самом деле вовсе не "тигровый", а "львиный", в том смысле, что в его интерфейсе всюду отображаются картинки из диснеевского мультфильма "Король Лев". И "шкурка" у окон программы соответствующая: песчаный рельеф и львиные лапки. Программа действительно удобная и красивая, но, к сожалению, с 2004 года автор по неизвестным причинам прекратил работу над своим детищем. Однако и в последней версии, размер которой всего 623 Кбайт, уже столько полезных возможностей, что программа успешно конкурирует с целой когортой подобных ей редакторов текстовых файлов.
TigerPad обладает всеми необходимыми функциями для программ этого класса: умеет на лету преобразовывать кодировки, помогает подставлять теги html (мне лично греет душу возможность автоматического прописывания высоты и ширины картинки при вставке тега <img>), умеет подсвечивать синтаксис различных языков программирования и форматов, помогает получить html-код выбранного цвета, переводит число в текст и т. д. Перечислять можно долго, но не стоит - все эти функции уже стали классическими для программ-блокнотов.
Лучше сосредоточиться на тех возможностях программы, которые не дают мне с ней расстаться уже много лет. Начну с функции форматирования текста. Это шедевр. С помощью команд и настроек TigerPad может автоматически отформатировать практически любой текст, какие бы фантазии ни пришли в голову его автору. Но чаще всего эту функцию приходится использовать, как ни странно, именно для того, чтобы форматирование убрать. В современном мире экранов разной ширины, мобильных устройств и программ-читалок форматирование текстового файла со строго заданной шириной колонки и принудительными переводами строки выглядит анахронизмом. И все равно многие упорно продолжают выравнивать текст книги по ширине. Мой стандарт соответствует простому правилу: "один абзац - одна строка" - а читалка сама разберется, где делать перенос. К опции форматирования прилагается целый сонм функций по умному удалению или добавлению символов в начале строки, в конце строки или по определенному шаблону.
Еще одна замечательная опция "Найти и заменить". Поразительно, но в большей части текстовых редакторов, которые я видел, она отсутствует. Программа, как я уже писал, обладает богатыми возможностями по работе с html - как с точки зрения удаления тегов, так и с точки зрения превращения текста в html. TigerPad умеет оптимизировать код, добавлять шаблон заголовка и работать с коллекцией скриптов (то есть делать то, ради чего обычно пишутся отдельные приложения).
Есть и опции, в общем-то, бесполезные, но в своем роде уникальные, с философским наполнением. Я имею в виду команды "Убрать мат из текста" (ну тут все понятно - обычный фильтр) и… "Добавить мат в текст" (а вот это действительно уникально).
Дорогу худым
Знаменитый Никлаус Вирт в статье "Долой "жирные" программы" определил два фактора, которые приводят к постоянному и неоправданному разрастанию размеров программ:
• быстро увеличивающаяся аппаратная производительность;
• игнорирование принципиальной разницы между жизненно важными возможностями и теми, которые "хорошо бы иметь".
Проблему больших, "жирных" программ автор рассматривает почти с философской точки зрения: "Легкость использования системы всегда должна быть главной целью, но эта легкость должна опираться на лежащие в основе системы концепции, что и позволяет сделать работу с нею почти интуитивной. Кажется, однако, что чем дальше, тем больше люди склонны неверно истолковывать сложность как изощренность, которая сбивает с толку, - а ведь непостижимость должна вызывать подозрение, а не восхищение".
Продвинутые таблицы
TablePro была когда-то телефонным справочником. Хорошим, добротно сделанным приложением для хранения контактов в csv-файле. Напомню, что формат csv подразумевает хранение табличных данных в простом текстовом файле. Одна строка такого файла соответствует одной строке таблицы. Колонки внутри строки разделяются определенным символом (чаще всего запятой). Этот формат в некотором роде является универсальным. Его понимает даже Excel.
Создав телефонный справочник, его автор Григорий Жмулевский не остановился на достигнутом и решил сделать маленький и удобный табличный редактор, который сможет работать с любыми таблицами в распространенном и простом формате csv. Так на свет появилась TablePro.
По словам Жмулевского, это "простая и удобная база данных для дома и офиса. Быстрый и мощный поиск, экспорт в различные форматы, печать, сортировка по всем полям, настройка пользовательского интерфейса, очень быстрая загрузка и обработка огромного количества записей". Это чистая правда. При размере чуть больше 300 Кбайт программа умеет выполнять практически все функции, необходимые для работы с таблицами. Сами csv-файлы занимают мало места (по сравнению с xls и dbf). Параметры таблицы (ширина и название колонок, тип хранимой в ячейках информации, общие настройки таблицы и т. п.) хранятся в xml-файле - отдельном для каждой таблицы. Оба файла совершенно прозрачны.
При желании всю таблицу (или выделенные строки) можно экспортировать в классические форматы: html, xls, ini, dbf, doc. Программа снабжена удобным конструктором таблиц, умеет автоматически выполнять операции вставки, замены, удаления и преобразования содержимого ячеек.
Для добавления и редактирования записей используется удобное окошечко, в котором автоматически располагаются различные элементы интерфейса, соответствующие формату данных, заданных для тех или иных колонок таблицы. Программа умеет работать с различными макросами подстановки (например, автоматически добавлять в ячейки текущую дату в заданном формате), позволяет производить вычисления по несложным формулам. Судя по отзывам на форуме программы, многие успешно используют ее в деловой практике - например, для ведения базы клиентов.
Скачать TablePro можно на сайте автора (zgsprojects.narod.ru). Там же в разделе "Файлы" выложены различные базы данных для программы, созданные пользователями. Есть и словари, и справочники, и даже сонники. Программа не требует инсталляции и ничего не пишет в реестр. Хорошие программисты живут на Сахалине…
Настраиваемая газета
Для просмотра RSS-каналов существует множество приложений. Умеет это делать и каждый уважающий себя браузер. Но почти все эти программы построены по одному и тому же принципу - заголовки новостей отображаются в специальной таблице, новости просматриваются в специально выделенной области. Аналогично выстроен интерфейс большинства почтовых клиентов. Хочешь посмотреть письмо - кликни на строку с его названием. Хочешь посмотреть другое - кликни на другую строку. С почтой это удобно. С небольшими RSS-новостями - нет. Мне всегда хотелось читать последние новости с какого-либо сайта в виде маленькой газетки - все на одной странице. Да и общий вид страницы хотелось бы настраивать по своему вкусу. После долгих скитаний по Сети и десятков перепробованных RSS-ридеров я нашел программу, которая делает именно то, что мне нужно, - YH RSS Aggregator (yuhala.narod.ru/yhrss.html).
Список RSS-лент организован в древовидной форме. При закачке каждая лента сохраняется в отдельный html-файл установленной структуры. Его оформление можно как угодно настраивать с помощью обычного CSS и html-файла шаблона. В шаблоне используются специальные строчки-макросы, которые обозначают места, где программа автоматически вставит заголовок новости, имя автора, время создания, текст статьи и т. п. В архиве программы уже есть несколько готовых шаблонов и тем, но можно создавать и свои. Можно также выбрать каталоги, в которых будут храниться шаблоны, xml-файлы и автоматически сформированные html-файлы с отображением новостей. В общем, простор для творчества и полная прозрачность. Умеет программа работать и в "классическом" режиме": строчка - новость.
Этот маленький аггрегатор весит всего полмегабайта. Он умеет сворачиваться в трей и получать новости с определенной периодичностью. Ну и конечно, обладает необходимыми инструментами поиска новостей.
Программы-лилипуты очень помогают в повседневной жизни и работе. Как бы хотелось, чтобы их было как можно больше - маленьких, аккуратных, быстрых и удобных. Но многие авторы упорно плодят монстров, обрастающих все новыми и новыми ненужными функциями. На сей раз я говорю уже не о корпорациях, а о программистах-одиночках. В Сети много таких программ, узнать их нетрудно - в названиях, как правило, присутствуют слова "Super", "Mega" и т. п., список возможностей занимает не один экран. Что ж, такие программы тоже имеют право на жизнь и, наверное, неплохо продаются. Но пользоваться ими что-то не хочется.
Контраргумент
Интересно, что думают сами программисты о размерах приложений. Известный софтмейкер Джоэл Сполски считает, что все не так просто, как кажется, - пользователи разные, и у каждого свои понятия о том, что является основными функциями программы (которые надо непременно оставить), а что - второстепенными (от которых можно легко отказаться).
Например, в вышеупомянутой статье Вирта говорится о том, что "многие разработчики программного обеспечения попадаются на старое, как мир, правило "80/20". Кажется совершенно очевидным, что 80% людей используют лишь 20% возможностей программ. И вы убеждаете себя, что вам надо внедрить только 20% возможностей, и вы все равно сможете при этом продать 80% копий. К сожалению, это не всегда одни и те же 20%. Каждый использует разные вещи".