Проектируйте с учетом возможных переделок и улучшений. Системы, подобные вебу, RSS и AJAX, сходны тем, что особых помех для их повторного использования не существует. Большая часть полезного софта находится в открытых исходниках, а если и нет, то имеется не так уж много способов защитить свою интеллектуальную собственность. Стандартная браузерная функция «посмотреть исходник» позволяет любому человеку скопировать любую веб-страницу. RSS был спроектирован для того, чтобы пользователь мог читать контент тогда, когда это удобно ему, а не поставщику информации. Самые успешные веб-сервисы - это, как правило, такие службы, которые могут быть изменены неожиданным для их создателей образом (some rights reserved).
В оригинале статья Тима О’Рейли была опубликована за неделю до начала конференции Web 2.0 (web2con.org, проводилась с 5 по 7 октября 2005 года), и, несомненно, автор хотел подогреть интерес к этому событию, что ему прекрасно удалось. Но у Веба 2.0 есть и другая, темная сторона.
Многие наблюдатели отмечают, что сейчас рынок находится в состоянии ожидания. Компаний, говорящих о Вебе 2.0, появляется все больше. Штат фирм, занимающихся разработкой новых веб-решений, растет. Говорить о Вебе 2.0 модно, заниматься им - престижно. И не исключено, что в самое ближайшее время мы увидим второе пришествие доткомов - только взлет новых компаний будет короче, а падение быстрее. Дело еще и в том, что далеко не все инфраструктурные изменения, о которых пишет Тим, могут быть легко конвертированы в деньги. Идея сервисов, построенных на сервисах, которые, в свою очередь, построены на других сервисах, и так далее до бесконечности (mash-up), может, и не плоха, но при всех достоинствах конечного продукта нельзя забывать, что держится он, в общем-то, на честном слове и будет функционировать только до тех пор, пока поставщики сервисов продолжают их предоставлять. Собственных активов у таких компаний, как правило, практически нет.
Тим О’Рейли почти не касается финансовых рисков - его больше увлекают технологические аспекты. Но некоторые венчурные капиталисты, следящие за становлением новой концепции, высказываются более чем осторожно: Рик Сигел пишет о том, что само по себе применение новых технологий вовсе не гарантирует возврата инвестиций; Фред Уилсон признается, что уже вкладывать опасно даже в первые производные (производные от компаний, владеющих интеллектуальными или иными активами), а сейчас предлагается инвестировать во вторые производные (сервис, объединяющий, допустим, Google Maps и delicious, является второй производной, поскольку и Google, и delicious [в меньшей степени] являются в данном случае не владельцами исходных данных, а посредниками).
Упрощенные бизнес-модели - это естественный спутник упрощенного программирования и свободного партнерства. В Вебе 2.0 повторное использование не осуждается. Новые сервисы, такие как housingmaps.com, являются простым совмещением двух существующих служб. У Housingmaps.com нет бизнес-модели (пока), но множество небольших сервисов живет за счет Google AdSense (или, возможно, амазоновских программ, или - и тех и других).
Эти примеры иллюстрируют еще один ключевой принцип Веба 2.0 - то, что мы называем «сборка по-новому». Когда вокруг столько дешевых компонентов, вы можете создавать нечто ценное, просто собирая из них неожиданные или эффективные комбинации. Точно так же, как ПК-революция дала «путевку в жизнь» компаниям, собирающим компьютеры из обычной комплектухи, Веб 2.0 предоставляет возможности компаниям, собирающим свои приложения из чужих компонентов.
Еще одна особенность Веба 2.0, которая заслуживает упоминания, это то, что теперь веб не привязан к платформе ПК. Перед уходом из Microsoft разработчик Дэйв Стац (Dave Stutz) дал своему бывшему работодателю совет: «обеспечить высокую прибыль способно программное обеспечение, работающее поверх устройств».
Конечно, так можно охарактеризовать практически все веб-приложения. В конце концов, простейшее приложение требует для своей работы по крайней мере два компьютера: один - для хостинга сервера, второй - для браузера. И как мы уже обсуждали, развитие веба как платформы расширяет эту идею до синтетических приложений, составленных из сервисов, которые предоставляются множеством компьютеров.
Но - с Вебом 2.0 такое случается частенько - «2.0» означает не что-то совершенно новое, а развитие и углубление существующих концепций. И фраза Стаца поясняет, как нужно проектировать приложения для новой платформы.
В настоящий момент лучшим примером нового подхода является iTunes. Это приложение без проблем соединяет карманное устройство с грандиозной веб-базой, оставляя ПК роль локального кэш-сервера и контрольной станции. Попытки донести веб-контент до мобильных устройств, разумеется, предпринимались и раньше, но связка iPod/iTunes является одним из первых приложений, соединяющих в единую цепочку сразу несколько устройств. Другой хороший пример подобного подхода - TiVo.
iTunes и TiVo также демонстрируют другие ключевые принципы Веба 2.0. Они не являются веб-приложениями сами по себе, однако используют мощь веб-платформы, превращая веб в незаметную, практически невидимую часть своей инфраструктуры. TiVo и iTunes - сервисы, а не коробочные приложения (хотя в случае с iTunes это не совсем верно - программа вполне может использоваться и как коробочный софт, для управления пользовательскими данными). Более того, и TiVo, и iTunes пытаются использовать коллективный разум, хотя в обоих случаях эти эксперименты натыкаются на сопротивление со стороны ИС-лобби[ИС - здесь: интеллектуальная собственность. - Прим. ред.]. В iTunes архитектура взаимодействия пользователей довольно ограничена, хотя последние нововведения в области поддержки подкастинга несколько изменили положение дел в лучшую сторону.
Все это одна из областей Веба 2.0, в которой мы ожидаем тем больших изменений, чем больше устройств подключено. Какие приложения появятся, когда все наши телефоны и автомобили будут не только потребителями информации, но и ее поставщиками? Мониторинг пробок в реальном времени, флэш-мобы, любительская журналистика - вот только несколько первых ласточек, намекающих нам на возможности новой платформы.
Еще со времен браузера Viola (1992) у всех на устах слово «апплеты» и прочие способы доставки активного контента через браузер. Появление в 1995 году Java тоже сопровождалось упоминанием апплетов. JavaScript - а затем и DHTML - были представлены публике как простые пути для выполнения приложений на стороне клиента и обогащения пользовательских интерфейсов. Несколько лет спустя Macromedia использовала термин Rich Internet Applications (впрочем, им не гнушалась и Laszlo Systems - разработчик флэш-решений в открытых исходниках), чтобы подчеркнуть возможности Flash не только в области доставки мультимедиа-контента, но и как основы для построения GUI-интерфейсов.
Однако потенциал веба для постройки полномасштабных приложений не принимали всерьез до появления Gmail, за которым последовал Google Maps. В обоих случаях веб-приложения предлагали богатые пользовательские интерфейсы и почти неотличимую от ПК-приложений интерактивность. В одном из своих эссе Джесс Джеймс Гаррет из веб-студии Adaptive Path «окрестил» использованные для этой цели технологии AJAX. Он писал:
Сам AJAX не является технологией. Это несколько вполне самостоятельных технологий, работающих вместе. AJAX включает в себя:
обработку стандартов XHTML и CSS;
динамическое отображение и интерактивное использование DOM (Document Object Model);
взаимный обмен и управление данными посредством XML и XSLT;
асинхронное извлечение данных с помощью XMLHttpRequest;
и JavaScript, объединяющий все это вместе.
AJAX также является ключевым компонентом таких приложений, как Flickr, приложений от 37signals, Gmail и Orkut (Google). Мы вступаем в беспрецедентный период нововведений в пользовательских интерфейсах, раз уж разработчики, наконец, научились создавать веб-приложения, ничем не уступающие в этом аспекте ПК-приложениям.