Online-каталоги универсальных приложений могут составить конкуренцию классическим репозиториям ПО

05.01.2011 20:48

Тони Мобили (Tony Mobily), основатель журнала Free Software Magazine, опубликовал статью с размышлением о возможности создания online-каталогов (app store) самодостаточных приложений для распространения свободного ПО, которые разительно отличались бы от стандартных способов распространения свободного ПО через репозитории дистрибутивов.

6 января компания Apple откроет магазин приложений для Mac OS X. Ожидается, что повторив судьбу магазинов приложений для iPhone и Android, экосистема Mac OS X получит гигантский толчок вперед. На первый взгляд может показаться, что GNU/Linux не нуждается в подобных магазинах приложений, потому что это свободное ПО и распространение приложений уже отлично реализовано через различные менеджеры пакетов. Ниже представлены некоторые доводы в пользу магазинов программ, при этом под "приложением" подразумевается ориентированные на пользователя программы с графическим интерфейсом, такие как Google Chrome, OpenOffice.org, Pidgin, Rhythmbox, Gnutella и т.п.

Требования и технические решения для магазина приложений GNU/Linux:

  • Самодостаточные приложения. Это означает, что "приложение" должно быть в виде директории, содержащей собственно приложение, все необходимые библиотеки и пиктограммы. "Установка" приложения должна означать не более, чем копирование директории в каталог пользователя, и должна быть по возможности доступна любому пользователю системы. В данные момент в GNU/Linux приложения "раскиданы" по всему диску, что делает невозможным установку приложения любым пользователем путём обычного копирования директории с приложением.

    Что нужно магазину приложений: каждому пользователю в системе должна быть доступна возможность устанавливать свои собственные приложения, независимо от других пользователей, и каждый пользователь должен иметь возможность скопировать любое приложение "как есть" на любой съёмный носитель или любой другой компьютер, и работать с приложением на другом компьютере, как и на своём.

  • Приложения должны одинаково работать в любом дистрибутиве. Это означает, что должно быть создано некое стандартное подмножество библиотек, представленное в каждом дистрибутиве (должны быть как библиотеки Gnome, так и KDE). Приложения будут ожидать, что подмножество библиотек будет статически связано с их дополнительными библиотеками, необходимыми для их работы. В данный момент каждый дистрибутив имеет свой набор библиотек, и каждое приложение, чтобы иметь возможность функционировать, должно быть скомпилировано под требования конкретного дистрибутива.

    Что нужно в магазине приложений: каждое приложение должно одинаково работать в любом скомпилированном дистрибутиве GNU/Linux.

  • Приложения должны уметь предупреждать пользователя о необходимости их обновления, если таковое необходимо, и они должны уметь регистрировать в системе свои типы файлов. В основном это означает, что каждое из приложений должно быть зарегистрировано на каждого пользователя. В данный момент в GNU/Linux приложения устанавливаются с помощью менеджера пакетов, который занимается обновлением, в то время как оболочка (Gnome или KDE) решает, какие типы файлов привязаны к конкретным приложениям.

    Что нужно реализовать в магазине приложений: магазину приложений GNU/Linux понадобится механизм обновления, не зависящий от конкретного дистрибутива, и функция связывания типов файлов с приложениями, не зависящая от дистрибутива и оболочки.

  • Необходимо иметь возможность формировать рейтинг приложений в централизованной базе данных, чтобы у пользователей была возможность поделиться информацией о приложениях со своими друзьями. Это позволило бы продвигать приложения методами "вирусного маркетинга", а также помогло бы создать то, чего так не хватает в GNU/Linux сейчас - культуру потребления приложений. В данный момент пользователи вынуждены активно искать приложения, а в поиске, как правило, первым всплывает не совсем то, что хочется видеть.

    Что нужно реализовать в магазине приложений: возможность обмена информацией о приложениях в централизованном порядке: голосования, комментарии, предложения приложений от друзей, и т.д. Необходимо сфокусироваться на приложениях с графическим интерфейсом пользователя.

  • Необходимо создать приложения, которые будут работать на разных процессорах, например, приложение может содержать в основной директории несколько каталогов - по одному для каждого типа процессоров. Если это возможно, то упаковщик пакетов будет поддерживать несколько типов процессоров. Первоначально это может быть всего лишь теорией и можно начать с поддержки лишь процессоров Intel. Что происходит сейчас: с нынешней системой управления пакетами проблема поддержки множества процессоров является довольно серьёзной, если не сказать неразрешимой.

    Что нужно сделать в магазине приложений: возможность иметь самодостаточные приложения, которые будут работать на разных процессорах.

  • Разработчики приложений должны сами нести ответственность за создание исполняемых файлов своих приложений; дистрибутивы должны способствовать этому путём предоставления готовых к использованию стандартных сред компиляции. Техническую сторону должна обеспечить стандартизация дистрибутивов GNU/Linux. Фрагментация GNU/Linux сделала технически невозможным подобный сценарий, по крайней мере сейчас. Основные дистрибутивы, ориентированные на конечного пользователя, должны будут согласиться принять стандартный набор библиотек и предоставить универсальные инструменты разработчикам приложений. Также разработчики основных дистрибутивов должны будут вместе "замарать руки", чтобы разработать кросс-дистрибутивную систему регистрации и обновления установленных приложений.

Экономика магазина приложений, некоторые сценарии организации финансирования разработчиков:

  • Пользователь ищет приложение под лицензией GPL, находит его и начинает с ним работать. Это бесплатно. Однако появляется всплывающее окно, которое говорит, что автор хотел бы получать 1.5$ в год на развитие приложения. Пользователь может сказать "Да", "Нет", "Никогда" или "Напомните мне в следующем месяце".
  • У пользователя может быть общесистемная настройка (или специальная утилита), которая будет автоматически выделять несколько долларов в месяц на каждое приложение. Эта настройка будет контролировать то, какие приложения используются чаще всего, и будет распределять выделенный пользователем бюджет между наиболее популярными приложениями.
  • Дистрибутив может быть ответственным за управление платежами и делать небольшой (оговорённый заранее) отчёт по каждому платежу. Разработчики дистрибутива будут в тесном контакте в разработчиками приложений и перечислять средства на их счета.
  • Действительно популярные приложения будут получать хорошее финансирование. Как бы там ни было, но критическая масса здесь играет большую роль: с миллионами пользователей GNU/Linux становится возможным написать приложение, которое будет иметь, например, 50 тысяч пользователей, и, следовательно, получать несколько тысяч долларов финансирования в год от своих пользователей.