Витуальная Пустынь
\"Pustyn\"

ОРейли

ОРейли- записки на полях БукиБуки

Hardware, Software and Infoware

Tim O'Reilly

Я разговаривал недавно со своими друзьями, у которых нет своего домашнего компьютера. Они размышляли о том, что надо бы завести себе компьютер, чтобы можно было пользоваться Amazon.com и покупать книжки и CD-диски. Не чтобы пользоваться "Интернет", или "Веб", а чтобы пользоваться Amazon.com.

Вот такое классическое определение "убойного приложения": нечто, что заставляет человека идти и покупать себе компьютер.

Что интересно, так это то, что теперь это убойное приложение не связано ни с самим компьютером, ни даже с установленным на нем программным обеспечением, но с индивидуальным сайтом. И раз уж мы начинаем думать о сайтах, как о приложениях, то приходится признать, что они представляют совершенно новую породу, что-то, что можно назвать "информационными приложениями" или infoware.

Информационные приложения используются для компьютеризации задач, которые просто не могли быть выполнены в старой модели вычислений. Несколько лет назад, если вам нужно было просмотреть базу данных с миллионом книг, то вы обращались к библиотекарю, который владел необходим знанием синтаксиса запроса к базе и может быть был способен помочь вам найти нужную книжку. Если же вы хотели купить книжку, то вы отправлялись в книжный магазин и выбирали там из относительно малого набора. Сегодня, десятки тысяч людей без всякого специального образования каждый день находят и покупают книжки в сети обращаясь к базе, содержащей более миллиона наименований.

Секрет в том, что компьютеры продвинулись еще на один шаг вперед в направлении человеческого способа общения. Веб-приложения используют обычный Английский язык для построения своего интерфейса - слова и картинки.

Традиционное программное обеспечение встраивало небольшое количество информации и большое количество программного обеспечения; infoware встраивает небольшое количество программного обеспечения в большое количество информации. "Действие" в рамках infoware очень просты: сделать выбор, купить или продать, ввести небольшое количество информации, получить результат.

Эти действия часто выполняются скриптами, связанными с html-страничками через специальный интерфейс CGI. CGI определяет способ, которым веб-сервер обращается к внешним программам и возвращает полученный от этих программ результат в форме html-страничек. CGI-программы могут быть маленькими сценариями, которые выполняют простые расчеты, или они могут быть связаны с огромными базами данных. Но, даже в тех случаях, когда внутри сервера действует эта сложная машина баз данных, пользовательский интерфейс не базируется на традиционном программном обеспечении. Интерфейс состоит из web-страничек (которые может написать автор, редактор, веб-дизайнер, а не программист).

Информационный интерфейс, как правило, динамичен. Например, Amazon.com представляет список книг, который обновляется продавцами каждый час. Продавцы могут на лету добавлять описания книг, рейтинги и комментарии, которые становятся важными точками опоры для покупателя принимающего решение. Дизайнеры размещают не только цены на книги, но и новые истории, советы аналитиков и иногда даже дискуссионные группы. Таким образом, информационный интерфейс как правило состоит из насыщенной смеси документов, данных и ссылок.

Существуют и другие информационные приложения, которые используют простой интерфейс и предоставляют пользователю динамический информационный выход. Мой любимый пример связан с сервисом, который был просто немыслим несколько лет назад - получение карт и направлений. Серверы карт, такие как http://maps.yahoo.com позволяют вам просто набрать два адреса и получить карту с указанием маршрута, по которому вам надо следовать, чтобы попасть из одного места в другое.

Однако, что общего имеют все эти вещи с OpenSource?

Ответ прост - большинство технологий, которые делают существование WWW возможным это OpenSource. Сам по себе Интернет - такие его составляющие как TCP/IP протокол и ключевые элементы вроде системы доменных имен (DNS) были сделаны на базе OpenSource. Это легко подтвердить тем что программа BIND, которая поддерживает DNS и лежит в основании множества приложений - OpenSource. Наиболее известные броузеры Netscape и MSIE выросли из открытой разработки Бернерс-Ли. По данным NetCRAFT более 50% всех серверов в мире базируются на веб-сервере Apache. Большинство динамических приложений генерируются такими языками как Perl, Python, Tcl.

Но, этот ответ только часть истории. В конце концов, почему именно Веб, а не какая то другая технология будет в будущем основой сетевых приложений?

Microsoft действительно стояла в впереди всех в реализации мощных сетевых мультимедийных приложений. В 1994 году такие CD-rom продукты MicroSoft как on-line энциклопедия Encarta и Cinemania, справочная система по фильмам были наиболее продвинутыми системами предоставляющими гипертекстовые документы с богатыми мультимедийными возможностями. MicroSoft уже тогда осознавал, как важно предоставлять богатые мультимедийные ресурсы по сети.

С MicroSoft и их видением будущего была только одна проблема - барьеры для входа в это будущее были уж очень высоки. Издатели, которым предлагалось пользоваться средствами Microsoft предлагалось платить и платить. В отличии от этого подхода, каждый может создать веб-сайт. Необходимое программное обеспечение было свободным. Спецификация создания документов и динамического содержания была простой, открытой и ясно документированной.

Возможно еще более важно то, что и технология и этика Интернета делают законным копирование деталей с сайтов других людей. Страницы на HTML легко копируются и видоизменяются. Даже CGI скрипты, которые используются для создания динамических страниц можно копировать. Хотя традиционные компиллируемые языки вроде C работают быстрее, доминирующим средством для создания CGI сценариев стал Perl, поскольку он более доступен. Хотя Perl является мощным средством для написания большинства приложений он доступен даже любителю для написания небольших скриптов, выполняющих простые задачи. Еще более важно, что поскольку Perl не компиллируется, то используемые скрипты могут просматриваться, копироваться и модифицироваться пользователями. Кроме того, архив полезных Perl-скриптов свободно распространяется разработчиками веб-сайтов. Легко клонируемые веб-сайты, построенные на комбинации HTML-CGI-Perl означают, что впервые мощные приложения могут создаваться непрофессионалами.

В связи с этим интересно, что первые попытки программной индустрии продвинуть Веб-интерфейс за счет использования таких технологий как Java-апплеты на стороне клиента или Microsoft ActiveX провалились, поскольку они были нацелены на профессионалов, и не могли легко копироваться и использоваться любителями. Продавцы оценивали веб в терминах software и не понимали, что веб продвигается не только теми приложениями, которые будут встраиваться, но и теми средствами, которые будут использоваться для его построения.

Если вы посмотрите на такие большой сайт как Yahoo, то увидите, что за сценой трудится армия администраторов и программистов, постоянно перестраивающих продукт. Динамический продукт не просто автоматически перестраивается, но переделывается и в ручную, часто с использованием массива быстрых и грязных скриптов.

"Мы не создаем содержания Yahoo. Мы собираем его. " - сказал Джеффри Фридл автор книги "Регулярные выражения" и Perl-программист Yahoo. - "Мы получаем материалы из тысяч самых разных источников и каждый из них в своем собственном формате. Мы делаем массовое просеивание этих материалов, выбирая то, что будет добавлено в Yahoo. Например, для того чтобы связать новые истории к билетам на quotes.yahoo.com Фридл должен был написать отдельную процедуру, которая просматривала более 15,000 имен компаний. Способность Perl-а анализировать свободный по форме текст с помощью мощных регулярных выражений сделала эту работу возможной. Perl является центральным компонентом системного администрирования. Огромное число Perl скриптов постоянно обследуют серверы Yahoo и их связи с внешними сайтами и извещают администраторов о нарушениях связи. Многие приложения Perl также выполняются скриптами Perl.

Perl часто называют клейкой лентой Интернета и как клейкая лента он используется во всех неожиданных случаях.

Неудача Microsoft по возвращению infowere в русло Software при помощи ActiveX коренится в том сдвиге парадигмы, который произошел в компьютерной индустрии. История доминирования Microsoft над IBM - классический пример для обсуждения того, что сейчас происходит. IBM отдала рынок MicroSoft, потому что она не увидела, что происходит сдвиг от станций к настольным компьютерам, но и от hardware к software. В настоящее время Microsoft не осознает, и может быть и не сможет осознать оставаясь Microsoft, что программное обеспечение, так как его знает Microsoft больше не является ведущим двигателем компьютерного бизнеса.

В дни доминирования IBM hardware был королем и барьеры для вхождения в компьютерный бизнес были очень высоки. Большинство программного обеспечения производилось фирмами производителями компьютеров.

Появление PC как товарной платформы (так же как и появление платформы открытых систем таких как Unix) изменило ситуацию коренным образом. Неожиданно барьеры для вступления в бизнес резко понизились.

Если вы посмотрите на раннюю историю Веб-а, вы увидите сходную модель. Монополия Microsoft на программное обеспечение создало очень высокие барьеры перед вхождением в бизнес software. Более того, поскольку программные приложения стали очень сложными и Microsft создало дополнительные барьеры на пути возможных конкурентов. Теперь уже невозможно было для одинокого программиста в гараже или на чердаке создать свой продукт.

Возможно, это наиболее важная черта программного обеспечения OpenSource - оно снизило барьеры вхождения на рынок software. Вы можете бесплатно попробовать продукт, более того вы можете создать свою собственную версию этого продукта. Исходный код доступен для массивного и независимого анализа. Если кому-то не нравиться свойства продукта, он может изменить их. Более того, поскольку разработчики (по крайней мере в начале) не пытаются конкурировать друг с другом, но сосредотачиваются на решении реальных проблем, то весь процесс происходит в менее жестких условиях.

Эволюция поддерживает не отдельных победителей, но разнообразие.

Это еще одна из причин успеха Perl. Ларри Уолл создал Perl для того, чтобы автоматизировать несколько задач системного администрирования, с которыми он постоянно сталкивался. После того, как он начал использовать этот язык в сети, ему нашлось еще масса применений и язык постепенно рос.

Perl описывался как язык кухонной раковины, потому что многие его свойства противоречат дизайну классического программирования. Но, хаос иногда порождает действительно богатые структуры. Человеческий язык сложен, потому что он отражает реальность. Как сказал Уолл в своем эссе "Английский можно использовать, потому что он помойка. Поскольку он помойка, то он хорошо описывает пространство проблем, которое тоже является помойкой. Сходным образом, Perl тоже задумывался как помойка".

OpenSource вовсе не намерен переиграть MicroSoft в ее собственной игре. Вместо этого он намерен изменить правила игры. Конечно, Amazon и Yahoo просто детские игрушки по сравнению с Microsoft. Но, предзнаменования, которые они несут достаточно прозрачны. Основные взаимодействия человека и компьютера находятся в сфере infoware, а не software.

IATP
Библиотека Виртуальной Пустыни в 2003 году является частью сетевого проекта "Нижегородские ресурсы коллективного авторства" и развивается при финансовой поддержке Управления образовательных и культурных программ Государственного Департамента США в рамках Программы "Обучение и доступ к Интернет", реализуемой на территории Российской Федерации Представительством некоммерческой корпорации "Прожект Хармони Инк." (США).
Точка зрения, отраженная текстах сайта может не совпадать с точкой зрения Управления образовательных и культурных программ Государственного Департамента США или Некоммерческой корпорации "Прожект Хармони Инк.".

NN counter top100