Телефон: +7 (926) 245-03-63

История web

История web
История web

Следующая статья: Социальное програмное обеспечение.

Адам Босуорт - самый выдающийся специалист по проектированию программных средств, о котором вы скорее всего, никогда не слышали, и один из ведущих мыслителей современности в области программных архитектур. Суть его выступления проста: умные теоретики разрабатывают изумительные, неимоверно жесткие и сложные концепции, которые попросту слишком сложны для обычных смертных… и поэтому никогда понастоящему не прививаются. Но понастоящему умные теоретики используют свой интеллект для упрощения своих творений, делают их доступными для широких масс, и именно такие архитектуры имеют значение. Еще в 2002 году я написал:

Когда вам приносят спецификацию новой технологии, и вы в ней ничего не понимаете, не огорчайтесь. Все остальные тоже ничего не поймут, и, скорее всего, ничего путного из нее не выйдет. Вспомним SGML: никто не пользовался этим языком, пока Тим Бернерс-Ли радикально не упростил его, и народ внезапно все понял. По той же причине был упрощен протокол пересылки файлов, а на смену FTP пришел HTTP.

Это повсеместное явление; даже в рамках одной технологии некоторые вещи достаточно понятны и используются на практике (скажем, IUknown в СОМ), а другие столь отвратительно усложнены (IMonikers), хотя могли бы быть простыми (чем плохи URL?), что в конечном счете увядают».

Проблема с излишне усложненными спецификациями заключается в том, что никто не хочет показаться глупым, и поэтому никто не предъявляет претензий к проектировщикам за то, что они спроектировали что-то слишком сложное. Пока C++ становился все более запутанным и невразумительным, никто не сказал: «Остановитесь, это слишком сложно для человеческого понимания», потому что люди не хотели выглядеть глупыми - но они молча «голосовали ногами», переходя на Visual Basic, PHP и Perl, понятные для простых смертных. Не огорчайтесь, если вы не можете разобраться в CORBA и не совсем понимаете, зачем нужны все эти WS-* - этого никто не понимает, и эти технологии вряд ли будут играть сколько-нибудь заметную роль за пределами очень узкой ниши. Технология VoIP долго оставалась невостребованной, потому что Н.323 выходит за пределы понимания простых смертных. Но потом проектировщики Skype выкинули весь старый хлам и сделали штуковину, которая позволяет проводить телефонные звонки по Интернет. Неужели это было так сложно?

Вчера я выступил с докладом на ICSOC041. В сущности, я попытался напомнить группе очень умных людей, что их интеллект должен ориентироваться не на сложные, а на относительно простые пользовательские и программные модели. Поскольку передо мной выступал Дон Фергюсон из IBM, а на следующий день должен был выступить Тим Бернерс-Ли, мне показалось особенно разумным придерживаться простых и понятных идей. Приведу текст своего выступления.

До и после меня выступают куда более умные и заслуженные докладчики. Дон Фергюсон из IBM создает концепции настолько изощренные и хитроумные, что перед ними меркнут труды архитекторов, создавших знаменитые арки Альгамбры. Тим Бернерс-Ли создал Всемирную Паутину в том виде, в котором мы ее знаем, а сегодня он из своего орлиного гнезда в MIT проповедует своего рода религию семантической Паутины, совершенно недоступную для моего понимания. Эти джентльмены чрезвычайно умны. Было бы глупо пытаться выглядеть умным, выступая между ними. Соответственно, я пойду в обратном направлении и поговорю о достоинствах подхода KISS и его влиянии на технологии Интернет.

Бесспорно, существуют извечные разногласия между частью человечества, считающей наше разнообразие, несовершенство и ошибки особой частью богатого спектра человеческой души, и другой частью, стремящейся к совершенству, полному контролю, построению сложных систем и правил, тщательное соблюдение которых гарантирует полную упорядоченность процесса. Мой доклад посвящен этому конфликту в контексте Интернет технологий. Кроме того, прошу считать его полемическим выступлением в поддержку KISS. Как таковой, мой доклад необъективен, отражает мою личную точку зрения, а местами даже использует некорректные приемы. В самом деле, порой он балансирует на грани ламентации.

По иронии судьбы попытки создания систем, рассчитанных на совершенство человеческой натуры, в конечном счете, приводят к созданию систем, наиболее бездушных и жестких - систем, которые загнивают изнутри, пока словно величественные, скрипящие и трухлявые дубы, не обрушиваются наземь, распространяя кислый запах тления. Мы видели, как это произошло в 1991 году с невероятным падением СССР. И наоборот, системы, учитывающие сложность, хрупкость, великолепие человеческой натуры, в основу которых заложена гибкость, многократные проверки и допуски, часто выживают вопреки всем прогнозам. Так же дело обстоит и с программным обеспечением. Программы гибкие, простые, терпимые, снисходительные к человеческим слабостям, оказываются самыми устойчивыми, приспособленными к выживанию и развитию - а программы требовательные, абстрактные, насыщенные возможностями, но излишне систематизированные, ждет медленный и неотвратимый развал. Возьмем электронную таблицу. Это изменчивая, неформальная, пластичная, гибкая среда, которая по иронии судьбы превращается в настоящий кошмар для всех бухгалтеров и аудиторов, потому что в действительно сложной и функциональной электронной таблице разобраться практически невозможно. Компания Lotus Corporation (ныне IBM), призвав на помощь магистров из Гарварда и докторов в области информационных технологий из MIT, создала Improv - программу, которая обещала «решить все проблемы». Это была настоящая мечта аудитора. Программа обеспечивала неслыханные высоты абстракции и формализма представления строк и столбцов… короче говоря, была воистину всесторонней. Однако ее ждал полный провал, и вовсе не потому, что программа не сдержала своих обещаний - как раз наоборот2.

Возьмем поиск. Я помню первые неуклюжие демонстрации Microsoft, когда Билл Гейтс впервые завел речь об «информации под рукой»3 - сложные экраны для ввода критериев поиска, поддержка булевской логики. В одном из моих собственных продуктов, Access, была реализована вроде бы более простая технология QBE (Query By Example)4. Сегодня полмиллиарда людей ежедневно пользуются поисковыми системами, и что же они применяют? Не QBE. He булевскую логику. Они выбирают потрясающе элементарную и неоднозначную технологию, а именно произвольный текстовый поиск. Реализация сложна, но пользовательская модель проста и тривиальна.

Возьмем пользовательский интерфейс. При первом появлении HTML эта технология была фантастически неформальной, нечеткой и либеральной. Помню, еще в 1995 году руководитель проекта Microsoft Office презрительно говорил, что HTML никогда не будет иметь успеха из-за своей примитивности, a Word победит, потому что документы Word так богаты возможностями, а их структура полностью формализована. Конечно, HTML в наши дни стал основным строительным материалом для огромных хранилищ человеческой информации. Более того, это один из непредвиденных парадоксов в истории компьютерных технологий: изначально предполагалось, что HTML будет использоваться как язык пластичной разметки, не подверженный двумерным ограничениям - парадокс, потому что орды фанатиков CSS с тех пор пытаются упаковать его в смирительную рубашку и проклинают таблицы, а целые поколения программных инструментов создают на его базе многослойные двумерные разметки с точностью до пикселя. И все же спросите любого одаренного web дизайнера - такого, как Джон Уделл (Jon Udell), и он вам ответит, что часто использует HTML тем неформальным, нечетким, интуитивным способом, для которого он и проектировался. Они просто «вливают» в HTML содержимое. В 1996 году я присутствовал на одном из первых семинаров XML. Участники метали громы и молнии в HTML за то, что он «загрязняет» содержимое разметкой. Среди первых поклонников XML было много разочарованных любителей SGML, возжелавших лучшего и совершенного мира, в котором данные безукоризненно отделялись бы от представления. Короче, они протестовали против одной из выдающихся историй успеха в компьютерных технологиях - причем той, которая стала возможной благодаря своим недостаткам, а не вопреки им. Я сильно сомневаюсь, что HTML, который бы изначально распространялся с четкой многоуровневой иерархией (XML, правила разметки - XSLT, и форматирование - CSS), пользовался бы столь оглушительным успехом.

В 1996 году я поддерживал XML, но как оказалось, я поддерживал его по прямо противоположным соображениям. Мне хотелось иметь гибкий, неформальный, «человеческий» способ обмена данными между программами, а по сравнению с RPC, DCOM и ПОР тех дней XML был невероятно гибкой, пластичной и естественной средой. И до сих пор остается. И именно по этой причине, а не вопреки ей, XML быстро завоевывает место общепринятого механизма обмена данными между программами. А старые системы медленно, но верно обрушиваются и уходят в никуда.

Возьмем само программирование. Каждый день в мире программирования идет необъявленная война. Это война между простыми людьми и теоретиками. Это война между теми, кто желает простых, неформальных, гибких, человеческих средств программирования, и теми, кто ищет четких, однозначных, единственно правильных решений. Это война между РНР и C++/Java. Раньше это была война между С и dBASE. Учащиеся Колумбийского университета; те, кто прошел через жесткий отбор службы найма Google; другие программисты этого уровня - все они любят точные инструменты, абстракцию, стройные ряды упорядоченных концепций и формальную логику. Но большинству программистов ближе позиция моего сына. В их представлении программный код сродни молотку, который используется для выполнения работы. РНР для них является идеальным языком. Он прост. Он высокопроизводителен. Он гибок. Основой этого языка являются ассоциативные массивы, поэтому он, как и XML, является гибким и самодокументирующим. Это позволяет легко написать код, который динамически адаптируется к переданной информации и легко выдает нужный XML или HTML. Для таких людей важно содержание и сообщество, а не тонкости технологии. Как найти нужные поставки RSS? Как организовать взаимодействие сообщества, назначить модераторов и динамически принимать решения относительно того, какие сообщения можно пропускать, а какие должны подвергаться предварительному просмотру? Как отфильтровать информацию по репутации? Их интересуют именно эти вопросы, а не сам язык.

Аналогичным образом, я наблюдаю две диаметрально противоположные тенденции в современных моделях обмена информацией между программами. С одной стороны мы видим RSS 2.0 и Atom. Документы, основанные на этих форматах, плодятся как кролики. На самом деле никого особенно не интересует, какой именно формат используется в конкретном случае, потому что они во многом взаимозаменяемы. Оба формата практически представляют собой списки ссылок на содержание с прикрепленными метаданными. Оба формата делают возможной реализацию моделей сохранения репутации, фильтрации, выносной аннотации и так далее Известна бесплодная попытка провести для этого сообщества жесткую абстрактную формализацию под эгидой RDF и RSS 1.0. Попытка завершилась неудачей. Это произошло потому, что она была слишком абстрактной, слишком формальной и одновременно слишком сложной для «ударных частей», которые просто пытаются решить конкретную задачу. Вместо этого победили RSS 2.0 и Atom; сейчас они широко используются для проведения ток-шоу и формирования списков воспроизведения (podcasting), фотоальбомов (Flickr), расписаний событий, списков интересных ресурсов, новостей и так далее Воспроизведение доступно каждому. Технология становится простым, неформальным lingua franca, по которому распространяется информация в Web. Во время распространения она фильтруется, обобщается, расширяется и даже преобразуется в новые формы, как вода, текущая из ручьев по рекам к огромным заливам. Эту информацию можно получить напрямую по HTTP, указав URL. В большинстве языков для ее выборки достаточно ввести одну строку кода. Это тот мир, к которому благополучно адаптируются Google и Yahoo, при всей своей пластичности, гибкости, непредсказуемости, и в то же время простоте и ориентации на конечного потребителя.

С другой стороны, мы имеем мир SOAP, WSDL, XML SCHEMA, WS_ROUTING, WS_POLICY, WS_SECURITY, WS_EVENTING, WS_ADDRESSING, WS_RELI-ABLEMESSAGING и других попыток формализации моделей расширенного информационного обмена (rich conversation). Каждая из этих спецификаций толще и гораздо сложнее исходной спецификации XML. Этот мир в высшей степени удобен для IT-отделов крупных корпораций. Он кажется стопроцентно контролируемым и подотчетным. Если мир RSS можно сравнить с ручьями, реками и заливами, воды которых несут смытые частицы донных отложений, этот мир является миром Шлюзов, Водоводов, Дамб и Фильтров Чистой Воды. Это мир для экспертов - сокровенный, сложный и эзотерический. Код обработки этих сообщений проходит настолько раннее связывание, что он предварительно компилируется на основании WSDL, и как многие узнали на собственном опыте, если он не работает - ни одна человеческая душа не выяснит, почему. Трудно передать словами, насколько велики различия между HTTP с его небольшим количеством простых команд и этим миром, бесчисленные уровни которого объединяются в неслыханно сложный механизм. Короче говоря, это мир, который могут полюбить только IBM и Microsoft. И они его полюбили.

С одной стороны мы имеем блоги, фотоальбомы, расписания событий, рейтинги и поставки новостей. С другой - CRM, ERP, ВРО и кучу других трехбуквенных сокращений, ориентированных на корпоративную среду.

Как я уже говорил, много лет назад некто заявлял, что HTML никогда не будет иметь успеха из-за своей примитивности. Конечно, HTML ждал успех именно по этой причине - потому что он был примитивен. Сегодня я слышу, как те же люди в тех же компаниях говорят, что технология XML no HTTP никогда не будет иметь успеха из-за своей примитивности. Успех возможен только с SOAP и SCHEMA. Но настоящее волшебство XML заключается в том, что этот язык является самодокументирующим. Разработчики RDF этого так и не поняли, потому что они искали то, что найти нельзя - абсолютную истину. Сказать, что XML не может иметь успеха из-за неизвестной семантики - все равно, что сказать, что реляционные базы данных не могут иметь успеха из-за неизвестной семантики, или текстовый поиск не может иметь успеха по той же причине. Однако в этом утверждении имеется зерно истины. И раньше, и сейчас трудно высказать об XML какую-то непреложную истину. Вот почему InfoPath5 пришлось идти на такие выкрутасы, чтобы сделать возможным простое редактирование. Напротив, модель RSS проста благодаря почти произвольному набору известных свойств для элемента списка: имя, описание, ссылка, тип MIME и размер для вложения. Как и в HTML, определяется минимальная полезная информация. Как и в HTML, ее можно расширить в случае необходимости, но большинство людей подходит к этой возможности весьма осмотрительно. Поэтому блог-ридеры и агрегаторы могут без особых проблем отобразить содержимое, понимая, что ценность заключена в информации. Да, между блог-ридерами и InfoPath есть еще одно различие: блог-ридеры бесплатны. Их авторы понимают, что ценность кроется в содержимом, а не в механизме для его просмотра6.

В RSS воплощен очень простой принцип, который Тим Бернерс-Ли всегда считал одним из самых важных и центральных догматов своей революции: а именно, что к любому элементу содержания можно обратиться по URL. На языке RSS это называется «перманентными ссылками» (permalinks)7. Эта идея имеет глубокое значение. Дэйс Сифри (Dave Sifry) из Technorati недавно обратил мое внимание на то, что одним из самых замечательных аспектов RSS и web журналов (блогов) является их способ решения одной из самых трагичных проблем Web, а именно нецивилизованности общения. Web в своем сегодняшнем виде во многих отношениях напоминает классический пример «трагедии общественных земель«»

4. Поскольку рассылка электронной почты практически ничего не стоит, появился спам.

Поскольку отправка сообщений осуществляется практически бесплатно и анонимно, появились группы, в которых небольшая группа людей может заглушить обсуждение назойливой и бессмысленной болтовней. Но одно из достоинств возможности адресации каждого элемента заключается в том, что комментарии по поводу элементов могут распространяться в Web. Web становится чем-то вроде огромной комнаты, в которой люди комментируют мысли других людей, используя для этой цели сообщения в своих web журналах. Поступая таким образом, они подвергают риску свою репутацию. Вряд ли это можно назвать дешевыми и анонимными сообщениями - скорее это недвижимость в пространстве, связанном с вашей личной точкой зрения и репутацией. По этой причине комментарии обычно становятся более взвешенными, продуманными и осмотрительными. А если этого не происходит, участники либо решают, что их это устраивает, либо отказываются от дальнейшего участия. Происходящее можно сравнить с «дуэлью передовиц» в паре газет.

Напротив, жесткие абстрактные уровни архитектуры web служб представляют лишь анонимные, бесконечные сообщения, проходящие под разрядом одного URL. Если сообщения не регистрируются в журнале, никакой ответственности нет и в помине. Так как спецификация XML Schema, определяющая их грамматику, представляет собой гибрид верблюда со слоном и жирафом, эти сообщения могут понравиться разве что специалисту по африканской фауне. Впрочем, имейте в виду, что даже эти сообщения гораздо лучше предшествовавших им сообщений MOM. Поскольку сообщения являются самодокументирующими, вы можете установить динамические фильтры для изменения их маршрута или структуры с использованием ХРАТН, XSLT, XML Query и даже других языков; все эти решения позволяют легко проверить, является ли сообщение существенным, и если является - выявить его интересные части. Все это хорошо и достойно двадцать первого века. Но точки отправления и приема, окутанные немыслимыми сложностями JAX RPC и .NET, все еще застыли в жесткости раннего связывания8 двадцатого века.

Мне хотелось бы сказать, что мы находимся на распутье, но истина никогда не бывает такой простой. А правда в том, что люди используют те средства, которые им подходят. Просто для некоторых программистов подходящим инструментом является РНР, а для других - Java, поэтому также будет справедливо сказать, что для некоторые программистов подходящим инструментом является RSS, а для других - WS-*. Здесь нет однозначного «победителя». Уверен я лишь в ценности информации и возможности ее беспроблемного объединения, оценки, фильтрации и расширения.

Что это означает лично для вас? Вспомните радио. Когда оно было техническим новшеством, настоящей ценностью был сам радиоприемник. Содержания было относительно немного, но многие люди хотели иметь дома собственный приемник. Однако в какой-то момент качество самих аппаратов и передачи данных стало достаточно высоким, и ценность радио неизбежно сместилась в область содержания. Именно поэтому идут такие ожесточенные баталии вокруг DRM9, феномен podcasting произвел такую революцию, а Говарду Стерну так много платят за выступления на спутниковом радио. Ценность кроется в содержании. Мы достигли примерно той же точки в компьютерных технологиях. Их ценность заключена уже не в компьютерах и не в программах, которые на них работают, - она в содержании, в умении программ находить и фильтровать это содержание, а также в возможностях программ по организации содействия людей и обмена информацией о содержании (а также друг о друге). Никого не волнует, если в Excel появится новая команда меню - если только она не упростит поиск информации в Web, а возможно, и ее обновление и обмен информацией с другими пользователями по поводу вашей находки.

Как насчет мобильных телефонов? Кому-нибудь захочется иметь на мобильном телефоне электронную таблицу или PowerPoint? Или все же будет интереснее узнать, где находится ближайший банкомат или ресторан индийской кухни, где продается литература по компьютерным технологиям нужной тематики, и что пишут в рецензиях на эти книги? Действительно ли интересно иметь адресную книгу, синхронизированную с PC, или интереснее видеть присутствие людей, участвующих в ваших занятиях, в вашем проекте, в ваших планах на вечеринку, и иметь возможность координировать и планировать событие вместе с ними? А если вы выберете второй вариант, разве ценность в действительности происходит не от знания тех, с кем вы работаете, общаетесь и учитесь; того, что они думают об интересующих вас вещах, будь то кино, классы, рестораны или новости; а не от программ на самом устройстве? Как только вы вливаетесь в Web, 2 миллиарда людей смогут увидеть вашу информацию и взаимодействовать с ней.

Сейчас идет много разговоров о Web 2.0. Похоже, многие полагают, что во «второй» Паутине центральное место займут развитые интеллектуальные клиенты, обменивающиеся информацией через Web и имеющие дело с мультимедийным содержанием (фото, звук, видео). Несомненно, так оно и будет. Будь то Skype10, наш продукт Hello11 или iTunes12, люди все чаще подключаются к Web для обмена мультимедийным содержанием. Однако я утверждаю, что это изменение не является существенным. Оно эффектно, занятно, полезно, но в конце концов, ничего принципиально нового в нем нет.

Принципиально новым является фактор информационной перегрузки. Электронная почта уже давно стала настоящим проклятием. Блог-ридеры только усугубляют проблему. Я не могу даже отдаленно представить нечто аналогичное в области видео- или аудио из-за гораздо больших трудностей с фильтрацией. Принципиально новым будет то, что люди будут собираться для того, чтобы оценить, обсудить, проанализировать и реализовать 100 000 предложенных Zagat13 моделей доверия к информации, товарам и услугам. Мы уже видим нечто похожее на eBay. Мы видим возрастающую роль количества сделок и рейтингов людей, продающих книги на Amazon. Как я писал в своем блоге:

«…Моя мать ни разу не жаловалась, что ей нужен более качественный клиент для Amazon. Вместо этого ее интересуют более удобные средства общения, более качественные списки книг, более простые средства их просмотра, более надежная информация от рецензентов, мнение библиотекарей (потому что она сама работает в библиотеке), и так далее»

Вот это действительно будет новым. А в сущности, уже есть. Хотите заглянуть в будущее? Не смотрите на Longhorn. Взгляните на Slashdot: 500 000 «нердов» ежедневно собираются вместе только для того, чтобы справиться с информационной перегрузкой. Взгляните на Bloglines14. Каким будет решение проблемы? Будет ли это Attention.XML15, как надеются Стив Гилмор (Steve Gillmor) и Дэйв Сиф-ри (Dave Sifry)? Или что-то менее формальное и более органичное? Неважно. Актуальность репутации и оценок станет ответом на проблему «трагедии общинных земель», и выход будет найден. Именно здесь будут происходить основные события. Будет совершенно неважно, знаете ли вы Avalon16 или Swing17. Важными будут самообучающиеся машины, методика логических построений и информационная проходка (data mining). Впервые с момента появления компьютеров искусственный интеллект находит массовое применение. Меня это явление в высшей степени радует. Оно означает, что в конечном итоге ценность кроется в нашей человеческой натуре, в нашем разнообразии и сложности, в нашем умении сотрудничать. Оно означает, что на первый план выходят человеческие, гибкие, органичные аспекты Web, в отличие от аспектов сухих, аналитических, таксономических.

Я чувствую глубокий оптимизм и надежду на то, что рост Web медленно повысит уровень и содержательность общения. Подобно порнографии, которая, как ни печально, стала одной из ведущих областей применения технологии, грубое и оскорбительное общение было взято за образец для подражания ее ранними последователями. Отрадно видеть, что начали появляться первые признаки самоорганизации, доверия и осмотрительности в общении.

Кто-то скажет, что все это утопия. Если называть «утопистом» человека, который не боится мечтать - так оно и есть. Такой же утопией было исходное представление Тима о всеобщем доступе к информации. Такой же утопией является цель Google. Лоуренс Аравийский писал в «Семи столпах мудрости»: «Все люди мечтают; но неодинаково. Те, кто мечтает по ночам в тайниках своей души, утром просыпаются и обнаруживают, что все это тщетно. Но те кто, мечтают днем, опасные люди, потому что они могут сделать свои мечты явью».

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

  1. Сокращение от «Keep it Simple, Stupid», то есть «Простота - залог успеха»
  2. Хорошо помню Improv; программа вышла как раз тогда, когда я работал над Excel, и обещала стать «будущим электронных таблиц». Вместо отображения удобной сетки с ячейками Improv требовала определять n-мерные гиперкубы для представления данных. Вместо введения формулы в любой ячейки разрешалось только определять новые строки и столбцы, значения которых вычислялись на основании существующих строк и столбцов. От гибкости традиционных электронных таблиц не осталось и следа. Подразумевалось, что электронные таблицы используются для обсчета математических моделей, с которыми имеют дело аспиранты. Небольшое маркетинговое исследование показало, что большинство пользователей применяет электронные таблицы для простого ведения списков, а реальный мир укладывается в n-мерные гиперкубы совсем не так хорошо, как казалось в Уортоие.
  3. IAYF («Information At Your Fingertips») - «предвидение», на реализацию которого Билл Гейтс направил Microsoft в начале 1990-х, до пришествия Интернета.
  4. Интерфейс для поиска в базе данных: пользователь заполняет новую запись, у которой одни ноля заполняются, а другие остаются пустыми. После нажатия кнопки ядро базы данных возвращает набор всех записей, удовлетворяющих поставленному критерию. Скажем, если ввести в поле возраста значение «<18», а в иоле штата - «NY», вы получите полный список всех жителей штата Нью-Йорк моложе 18 лет.
  5. Продукт Microsoft для заполнения форм; в сущности, приукрашенный редактор XML.
  6. Во всяком случае, некоторые. InfoPath стоит так дорого, что он не вышел за пределы корпораций, которые уже выплачивают крупные ежегодные отчисления Microsoft за полную версию Office. - Примеч. ред.
  7. Когда блоггер хочет создать ссылку на нечто, написанное сегодня другим блоггером, то вместо ссылки на его домашнюю страницу, которая завтра изменится, он использует «перманентную ссылку», по которой всегда отображается одно и то же содержание.
  8. Видимо, говоря о «раннем связывании», Адам имеет в виду, что написанный код предполагает, что формат всех сообщений известен заранее. Код компилируется для работы только с сообщениями именно этого формата, а если что-то вдруг изменится - происходит исключение, и программа перестает работать. - Примеч. ред.
  9. Digital Rights Management, то есть «Управление цифровыми правами»
  10. Бесплатный сервис Интернет-телефонии.
  11. Приложение Google для обмена графикой.
  12. Онлайновый музыкальный магазин Apple.
  13. Путеводитель по ресторанам, в котором отзывы предоставляются читателями
  14. Онлайновый объединитель блогов, в настоящее время принадлежащий InterActivecorp.
  15. Стандарт XML для отслеживания источников информации, заслуживающих внимания.
  16. Библиотека графического программирования для запланированной операционной системы Microsoft «Longhorn».
  17. Библиотека графического программирования для Java.
Интересное в интернете: ауди 80 ремонт