Если появляется несколько конкурирующих платформ, каждая из них пытается выжать из этого эффекта максимум - то есть какая-либо совместимость им противопоказана. Напротив, они всеми силами пытаются привязать к себе как можно больше пользователей и разработчиков, переманивая их у конкурентов всеми правдами, а то и неправдами. Действовать иначе означает заведомо проиграть. Как правило, чья-то платформа становится доминирующей (по крайней мере, в своей рыночной нише), и реальная конкуренция замирает - а с нею прекращается и развитие. На какое-то время.
Конкурентам, а порой и собственным клиентам, которых не устраивает стагнация, ничего не остается, кроме как объединить силы, а для этого - договориться об общих подходах (открытые стандарты), а иногда и просто начать совместную разработку альтернативного решения (свободное и открытое ПО). Не всегда это приводит к быстрому изменению баланса сил, но обычно позволяет сдвинуть ситуацию с мертвой точки и вынудить компанию-монополиста мало-помалу открывать свою платформу, двигаясь навстречу принятым стандартам и интегрируясь в строящуюся открытую инфраструктуру.
Виток развития заканчивается тем, что появляется новая стандартизованная платформа, которая становится новым верхним уровнем стека технологий. В этот момент компании, долгое время ориентировавшиеся на захват и удержание "власти платформы", вынуждены переориентировать свой бизнес, чтобы играть на этаже выше. Именно здесь появляются свои инновационные продукты, часть которых со временем вырастает в новые платформы, и круг замыкается.
Мы видели, как это было с архитектурой ПК (читатели со стажем, вероятно, помнят формулировку "IBM PC-совместимый компьютер"), с различными коммуникационными сетями (когда-то было невозможно отправить e-mail из одной сети в другую); на наших глазах происходит стандартизация операционных систем, офисных пакетов (см. тему номера "КТ" #723), IM-протоколов, веб-браузеров…
Можно предложить простой эмпирический критерий того, что некоторый набор технологий стал открытой и стандартизованной платформой: это происходит тогда, когда большинство людей перестает ожесточенно спорить о том, какая из реализаций лучше. Сам по себе веб, по-видимому, ему уже удовлетворяет - браузерные войны давно позади, и период доминирования "HTML от MSIE" сменился какой-никакой поддержкой стандартов - никто не будет всерьез рассматривать "вебдванольный" сайт, который откажется работать хотя бы в Firefox. Девиз "веб как платформа", о котором так долго говорил Тим О’Рейли со товарищи, воплотился в жизнь. Эта битва окончена. Что ждет нас дальше?
В ожидании веб-ОС
Развитие на протяжении всего минувшего года нескольких инициатив, начало которым было положено еще в 2007-м, показывает, что претендент на роль новой единой и стандартной платформы, решающей задачи "простых пользователей" (назовем ее веб-ОС), наконец, найден. Речь идет о социальных сетях, таких как Facebook и MySpace, и порожденных ими платформах для разработки социальных приложений. И, конечно, не обошлось без Google - которого так долго боялись, но который, однако, пока не слишком уверенно чувствует себя на этом поле, хоть и имеет поистине наполеоновские планы. Впрочем, обо всем по порядку.
В мае 2007 года Facebook объявила об открытии собственного API, названного F8, с помощью которого сторонние разработчики получили возможность писать веб-приложения, работающие в этой социальной сети, используя ее ресурсы (контакты, пользовательские данные и т. д.). Произносились громкие слова о "платформе", "о чем-то вроде ОС" и прочих революционных вещах. Почивать на лаврах Facebook не пришлось: в конце 2007-го Google и MySpace объявили о работе над открытым стандартизованным API, названным OpenSocial, и уже в феврале MySpace анонсировала запуск собственной платформы для написания приложений, основанной на спецификациях OpenSocial, а в мае - сообщила о старте инициативы Data Availability (позже переименованной в MySpaceID), позволяющей сторонним веб-ресурсам получать доступ к данным, хранящимся в пользовательском профайле MySpace, и использовать их для создания собственных сервисов. При этом юзеру, имеющему аккаунт в MySpace, не нужно заводить отдельную учетную запись на стороннем сервисе - социальная сеть полностью берет на себя авторизацию и работу с учетной записью.
Это было что-то новое - до сих пор такие сети не были настроены делиться своим главным богатством (пользователями, а также всем тем, что их привязывает к сети) с первым встречным. Facebook, однако, за словом в карман не полезла и уже на следующий день анонсировала собственный проект Facebook Connect, реализующий примерно те же возможности, что и Data Availability, а еще через месяц выпустила существенную часть своей платформы (ранее доступной только партнерам) под свободной лицензией (проект получил название fbOpen). Параллельно Google представил свою разработку Google Friend Connect, тоже основанную на OpenSocial, позволяющую добавить "социальные возможности" к любому веб-сайту без программирования и без привязки к какой-то одной социальной сети (в первую очередь, опять же, речь идет о возможности авторизации на сайте с помощью аккаунта, полученного где-то еще - например, в самом Google, но не только). К концу года анонсированные весной-летом сервисы наконец прошли стадию первичной отладки и заработали на полную мощность - на ряде популярных порталов появилась возможность идентифицироваться с помощью Facebook Connect или Google Friend Connect.
Расстановка сил была ясна, и все прогрессивное человечество замерло в ожидании развязки противостояния "Facebook против всех (c Google и MySpace во главе)". Казалось, мир стоит на пороге нового времени, когда множество разрозненных веб-сервисов наконец объединятся, пользователям не придется тратить время на регистрацию и запоминать десятки логинов-паролей, вручную синхронизировать списки контактов в разных сетях и рисковать потерей всего нажитого "виртуального имущества" при необходимости покинуть какой-нибудь сервис. Реальность, однако, оказалась не столь радужной - если не сказать мрачной. Революция если не отменяется, то по крайней мере откладывается на неопределенное время. Что же все-таки происходит?
Просто закрытая открытость
Если смотреть на уровне технологий, то ситуация кажется довольно простой. Как всегда, есть "хорошие парни" и есть "плохие парни". Хорошие (назовем их, условно, G, M и Y) используют, разрабатывают и поддерживают открытые стандарты, обеспечивающие интероперабельность (возможность взаимодействия) между различными сервисами, а плохие (пусть это будет F) - ни с кем не дружат, продвигают собственную проприетарную платформу, чтобы "привязать" к себе не только своих непосредственных пользователей, но и партнеров. При этом не имеет большого значения тот факт, что "клиентская" часть этой платформы распространяется под свободной лицензией - понятно, что привязка к одному поставщику (vendor lock-in) - в данном случае, к материнской социальной сети - сохраняется.
В долгосрочной перспективе, конечно, добро обычно побеждает зло: таков закон жанра. Однако зачастую, даже когда открытые решения появляются раньше проприетарных, они на начальном этапе развиваются довольно медленно и не могут похвастать сколь-нибудь широкой аудиторией. При этом параллельно может появиться удачный закрытый продукт, "доводящий до ума" уже витающие в воздухе (а иногда и реализованные в коде) идеи и делающий их более удобными для пользователя, - и тут же завоевывает огромную популярность, часто порождая монополии, не приемлющие открытые стандарты. Этот сценарий реализуется во многих случаях: в качестве примера можно привести системы мгновенного обмена сообщениями, где позиции стандартного протокола XMPP (Jabber) все еще довольно слабы, или пользовательские VoIP-решения для звонков "с компьютера на компьютер", где бал правит Skype. Все объясняется сравнительно просто: пока разработчики открытых решений договариваются о стандартах, пытаясь согласовать интересы всех заинтересованных сторон и глядя далеко в будущее, разработчик закрытого решения просто делает хороший продукт, решающий задачи пользователя "здесь и сейчас".
История с Facebook Connect этот тезис хорошо подтверждает: открытая, стандартная децентрализованная технология, позволяющая безопасно авторизоваться на одном сервисе, используя учетную запись другого сервиса, существует c 2005 года, когда Брэд Фитцпатрик (основатель LiveJournal) предложил первые спецификации OpenID. Правда, до недавнего времени OpenID использовали (помимо самого LiveJournal) в основном некрупные блог-хостинговые площадки и автономные блоги. Этот стандарт используется в OpenSocial, на его базе работает Google Friend Connect, о его поддержке говорит Microsoft, однако назвать OpenID популярным решением пока язык не поворачивается. Запуск и довольно уверенная экспансия (которую обозреватели даже окрестили "эпидемией") Facebook Connect в конце прошлого года показала, что открытость и децентрализованность - это хорошо, но малоинтересно пользователям, которым нужна простота и удобство. Одной из причин слабой распространенности OpenID эксперты называют использование "неинтуитивных" идентификаторов пользователя, в качестве которых в системе выступают обычные URL (например, openid.example.com/myusername или myusername.example.com), а также нетривиальную процедуру авторизации.