Тайны Microsoft. Смарт-теги и эволюция гипертекста

Тайны Microsoft | Смарт-теги и эволюция гипертекста

Поскольку читать пространные тексты многие уже отвыкли (даже если там изложена редкая информация, которую вы вряд ли где сможете найти), начну прямо с конца. Итак, кратко суть.

Ссылки... Web-ссылки… Для нас это стало привычным, повседневным. Текст на странице как-то выделяется её авторами. Затем мы просто подводим мышь, нажимаем и переходим по ссылке. Переход может вызывать какие-то медиа-объекты (файлы), онлайновые службы, быть просто переходом на другую страницу этого или иного сайта.

Всё понятно, просто и привычно.

Но технологически прорабатывались (да и были реализованы) куда более гибкие возможности. Сами ссылки могут формироваться не статически (авторами страницы), а динамически, на лету. Внешними средствами. Понятно, что за это формирование должен отвечать какой-то программный модуль-обработчик, интегрированный с браузером или с удалённым сервером. И формировать он их может по формализуемым шаблонам (номер паспорта, номер телефона, идентификатор объекта, персоналии, страны, города и т.п.).

На самом деле, в соцсетях уже давно стали обыденными хэштеги. Это один из примеров, частный случай динамических ссылок. Признаком шаблона здесь служит знак #. Хэштеги восходят к смарт-тегам, о которых и пойдёт речь в моей статье.

Смарт-теги — более общий и менее известный механизм, нежели хэштеги. Практически любое слово (если так настроен модуль-обработчик) может стать активным, стать потенциальной смарт-ссылкой.

Но и это ещё не всё. Когда к смарт-ссылке подводится мышь, пользователю может предоставляться выбор (через контекстное меню). А там могут быть разные пути исполнения. Прямо как в русских народных сказках. Как дороги у витязя на распутье.

Почему от этого в итоге отказалась корпорация Microsoft? Ведь она так активно в своё время ратовала за то, чтобы механизм смарт-ссылок был вообще штатным в Windows XP и пронизывал буквально все её офисные продукты. Пронизывал не только на уровне браузера и web-страниц. Причины как патентные, так и на уровне информационной безопасности. Были определённые проблемы и риски.

Кое-где смарт-теги в несколько ином виде сегодня используются. Об этом и пойдёт речь в этой статье.

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

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

Т.е. если вы в своём тексте дадите явное или неявное указание, где же искать (Youtube, Ozon, Google и т.п.) и укажете набор слов (это можно сделать и завуалированно, если требуется), то эта пара (источник-запрос) и определит обобщённую (косвенную) динамическую ссылку. Которая вручную имитирует механизм работы смарт-тегов.

Понятно, что такая обобщённая ссылка со временем может быстро утратить свою актуальность (в результатах запроса ранжирование может существенно меняться). Но тут уже многое зависит от вашего умения правильно подобрать слова, которые и выведут пользователя на искомый объект. И обеспечат некоторую стабильность ссылки во времени.

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

С выводами определились, теперь и сама статья. В Википедии вы этого точно не узнаете.

Cтатью я написал и опубликовал в 2002 г. в журнале «Мир ПК». Миновало почти 20 лет. Но актуальности она практически не утратила. Здесь приведу в сокращённой редакции. И с небольшими коррективами, с учётом некоторых изменений за эти прошедшие два десятилетия.

Люди любят необычные модные словечки. Так что по сути это даже не статья, а лонгрид.

———

«Я думал, произойдёт настоящая революция, а вижу полное предательство».
/ Теодор Нельсон, автор термина «гипертекст» /

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

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

== Что скрывается за термином «смарт-тег»

Корпорация Microsoft впервые стала публично применять термин «смарт-тег» (smart tag, в пер. с англ. — «интеллектуальная метка») в 2001 г. для обозначения специального механизма контекстно-зависимого исполнения действий на основе ассоциативной связи с текстовыми фрагментами.

Причём изначально данную концепцию, являющуюся своеобразным гибридом гипертекста и сопоставляемого с ним механизма меню, планировалось использовать в новом поколении двух ключевых продуктов Microsoft: в семействе операционных систем Microsoft Windows XP (преимущественно в рамках браузера Internet Explorer 6.0) и в пакете офисных приложений Microsoft Office XP (в Word 2002, Outlook 2002, Excel 2002 и PowerPoint 2002). Однако эти планы не были реализованы (из браузера данный механизм пришлось изъять). В итоге смарт-теги появились на рынке в весьма урезанном виде, да и то только в Office XP. В отечественной и зарубежной компьютерной прессе (тогда и сейчас) смарт-теги окутаны такой завесой таинственности, что разобраться в их сути и уж тем более в перспективах применения далеко не просто, хотя всё поясняется весьма простой формулой: «смарт-тег = гиперссылка + меню + сервис».

Смарт-теги действуют по вполне прозрачной схеме:
• распознавание фраз-лексем (далее — словокомплексы);
• отождествление словокомплексов с известными типами смарт-тегов (имена, компании, денежные единицы, термины, номера авиарейсов, договоров, накладных, артикулы товаров и т.п.), причём один и тот же словокомплекс может относиться сразу к нескольким типам смарт-тегов;
• отображение меню, ассоциированного с данным типом смарт-тега;
• исполнение действия, связанного с выбранным пунктом меню (причём действие параметризуется текстовым окружением распознанного словокомплекса вплоть до передачи всего абзаца).

Пытливый читатель наверняка сообразит, что подобный механизм даёт новую жизнь технологии гипертекста. Если в роли пунктов меню будут выступать альтернативные ссылки на разные web-страницы (источники информации), то получатся вариативные гиперссылки. Так, при появлении в тексте слова «погода» ему автоматически будут сопоставлены на выбор различные варианты (на основе информации местного бюро погоды, Росгидромета, Национальной службы погоды США, CNN и т.п.).

Обратите внимание на весьма существенную деталь: гиперссылки в случае смарт-тегов выделяются динамически. Переставите ли вы слова, измените ли падеж/число/спряжение, всё равно ссылка будет выделяться автоматически и корректно (в случае, разумеется, соответствующей реализации распознавателя смарт-тегов).

Ещё одно назначение смарт-тегов — исполнение служебных инструкций в форме письма/документа поступающих к пользователю в почтовом клиенте Microsoft Outlook и текстовом редакторе Microsoft Word. Если выбрать соответствующий пункт в тексте, то здесь можно инициировать бизнес-процессы, специфичные для конкретного предприятия в контексте полномочий и роли данного исполнителя.

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

== Патентные войны. Дела British Telecom и Microsoft

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

Вот и со смарт-тегами наблюдается довольно запутанная картина. Ещё накануне появления Microsoft Office XP (в 2001 г.) в прессе разгорелись страсти вокруг технологии смарт-тегов. На целом ряде сайтов публиковались сообщения, предупреждающие о том, что смарт-теги таят в себе угрозу. Разумеется, информационная кампания развёртывалась вокруг возможного нарушения интеллектуальных прав при применении этой технологии.

Что же так испугало противников смарт-тегов? Прежде всего, просмотр web-страниц сквозь призму смарт-тегов (мнимые «розовые очки»), когда возникала возможность динамической простановки ссылок там, где автор текста их не размещал, с перенаправлением на те источники информации, которые важны с точки зрения разработчика и пользователя смарт-тега, а не самого автора. И хотя в Microsoft были заранее предусмотрены возможности отключения данного механизма (в частности, в браузере IE 6.0 блокировалось распознавание HTML-страниц, помеченных метатегом MSSmartTagsPreventParsing), общественное мнение было столь взбудоражено, что во избежание возможных проблем корпорация Microsoft уже в июне 2001 г. официально объявила об изъятии механизма смарт-тегов из IE 6.0, входящего в состав Windows XP. В противном случае могли возникнуть серьёзные правовые препятствия для выпуска этой ОС, намеченного на 25 октября 2001 г.

О потенциальной возможности нарушения (при использовании смарт-тегов) закона об авторском праве и американских федеральных правил ведения бизнеса заявила, в частности, Робин Гросс, адвокат фонда Electronic Frontier Foundation. Тогда как по мнению ряда других юристов, автоматическая простановка динамических ссылок подпадает под принцип цитирования, что никак не нарушает положений закона. Как бы то ни было, данный вопрос требовал серьёзной юридической проработки, что, видимо, и стало главной причиной изъятия в последний момент механизма смарт-тегов из Internet Explorer и Windows XP.  И последующего их забвения.

Если говорить об официальной позиции самой Microsoft, то ещё в июне 2001 г. было заявлено, что изъятие механизма смарт-тегов носит временный характер и что обусловлено оно недостаточной готовностью компании к реализации данной технологии до октября 2001 г., т.е. до момента начала поставок Windows XP. Для полноты картины наряду с чисто правовыми вопросами и проблемами, связанными с не совсем корректной реализацией смарт-тегов (что и показывает опыт их разработки и использования в приложениях Office XP), необходимо сказать и о таких не менее важных задачах, как развёртывание наборов смарт-тегов в компаниях, обеспечение корпоративной безопасности и наличие на рынке практически ценных решений (для всего этого нужно выиграть время).

Несостоявшиеся иски против Microsoft по поводу смарт-тегов наталкивают на параллели с двумя другими нашумевшими делами: ставшим уже достоянием истории иском Apple к Microsoft, а также иском British Telecom к интернет-провайдеру Prodigy Communications.

Компания Apple подала 22 марта 1988 г. иск против Microsoft и Hewlett-Packard, в котором было выдвинуто обвинение в использовании интерфейса Macintosh в продуктах Microsoft Windows и HP NewWave. Одно из самых громких судебных разбирательств длилось около пяти лет (к его окончанию на рынке уже появилась ОС Windows 3.1). Как известно, и Microsoft и Apple заимствовали идеи из одного и того же источника — из Xerox PARC (проекты Alto и Star). Это было достаточным основанием (так называемый prior art) для того, чтобы в итоге отклонить иск Apple. Стоит заметить, что в 1991 г. Xerox выдвинула встречный иск к Apple, который суд тоже отклонил.

Что же касается иска British Telecom, то о нём стоит сказать подробнее, тем более что он имеет самое непосредственное отношение к смарт-тегам и затрагивает святая святых — технологию гипертекста, лежащую в основе современного Интернета и всей web-среды.

Когда в июне 2000 г. крупнейшая английская телекоммуникационная компания British Telecom обнаружила в своих архивах патент США No. 4873662 «Information Handling System and Terminal Apparatus Therefor», она обратилась к Prodigy и ещё 16 интернет-провайдерам (включая и прямого своего конкурента — America Online) с предложением выкупить лицензию на его использование (патент был принят в октябре 1989 г., а срок его действия истекал в 2006 г.). По мнению экспертов British Telecom, данный патент регулирует механизм доступа к территориально удалённой информации через механизм гиперссылок.

На самом же деле, если внимательно прочитать текст патента, несложно сделать вывод, что к самим гиперссылкам это имеет весьма отдалённое отношение, хотя и отрицать такую связь было бы неверно (вопрос, как обычно, упирается в терминологию и трактовку изложенных принципов). В самом патенте речь идёт о центральном компьютере и терминалах (что уже не соответствует структуре Интернета), о делении всей хранимой и передаваемой по линиям связи информации на блоки двух типов: (1) отображаемой на экране и (2) управляющей этим отображением. Как указано в документе, «второй тип блоков может включать информацию для обеспечения полного адреса другого блока, который может быть выбран с помощью действия определённой клавиши на клавиатуре». Данный патент, скорее, покрывает важную область таблиц стилей (правами на которые, кстати, обладает Microsoft). Интересно, что заявка на патент была подана ещё в июле 1976 г., т.е. за 13 лет до его выдачи.

Как известно, и в США, и в Великобритании, в отличие от континентальной Европы, действует прецедентное право, что ещё более усугубило ситуацию. Если дело против Prodigy выиграла бы British Telecom, то, несмотря на все заверения руководства этой компании о заведомом отказе от преследования мелких провайдеров, дальше наверняка покатилась бы волна автоматически выигрываемых исков к другим провайдерам. Кроме того, в такой ситуации многие компании вынуждены были бы всерьёз призадуматься об использовании web-решений, поскольку возникает риск возбуждения исков и против них. Мрачные картины можно рисовать и дальше, но допустить такое развитие событий было отнюдь не в интересах американского бизнеса.

Разумеется, корпорация Microsoft не могла не знать о таком грандиозном деле. Впрочем, в итоге суд удовлетворил ходатайство Prodigy об упрощённом судебном порядке и отклонил иски о нарушении патентных прав.

== Дуглас Энгельбарт. Демонстрация всех времён и народов

Иск British Telecom к Prodigy вновь привлёк внимание общественности к истории формирования технологий. Уж казалось бы, такая вдоль и поперёк изученная тема, как гипертекст, вряд ли может таить в себе что-то новое.

Действительно, воспринимается эта история стереотипно так: мы пользуемся теми гиперссылками, которые в начале 1990-х гг. ввёл Тим Бернерс-Ли, когда экспериментировал в Центре ядерных исследований (CERN) с языком SGML и создал на его основе язык HTML. Но идею придумал, разумеется, не он. Идеологами гипертекста признаны Ванневар Буш, Дуглас Энгельбарт и Теодор Нельсон.

Что же такое гипертекст в классическом понимании? Вот исходное определение, которое ему дал отец-основатель Теодор Нельсон: «Под гипертекстом я подразумеваю нелинейный документ — текст, который разветвляется и позволяет читателю делать выбор, документ, удобный для чтения на интерактивном экране. Как принято считать, это последовательность текстовых блоков, связанных ссылками, которые предлагают читателю различные маршруты».

К сожалению, со временем концепция гипертекста стала восприниматься многими через кривое зеркало его повсеместно доступной реализации в современных браузерах (HTML с протоколом HTTP). А ведь HTML-исполнение не только имеет массу вполне устранимых изъянов, но и искажает первоначальные замыслы авторов гипертекста (отсутствие двунаправленных ссылок, наглядной визуализации связей документов и т.п.). Достаточно вспомнить хотя бы слова Теодора Нельсона, взятые в качестве эпиграфа для настоящей статьи. Чтобы доказать миру свою правоту, он не один десяток лет трудился (в Японии) над созданием собственной системы Xanadu. Да и в настоящее время (2020) вовлечён в работы над XanaduSpace — системой работы со связанными параллельными документами.  Его скепсис в отношении HTML, XML и современных браузеров, надо сказать, более чем обоснован.

Достаточно полноценная реализация проекта Xanadu была представлена публично лишь в апреле 2014 г. Т.е. около полувека занял путь от замысла до реализации. Очевидно, что мир столько времени ждать не мог. И давно уже шагает своим путём. Более примитивным, более лобовым, зато массовым.

Тед Нельсон: «В 1980-х годах мы оплошали, упустили шанс стать всемирным гипертекстом (эту нишу занял Web). Однако мы всё ещё можем конкурировать с PDF, который имитирует бумагу, путём демонстрации текстовых связей».

Но всё это тема отдельного обстоятельного разговора. Здесь же я лишь вкратце приведу свою таблицу истории развития гипертекста в контексте обсуждения смарт-тегов.

1. Ванневар Буш (1945) — «As We May Think», воображаемая система Memex.
2. Дуглас Энгельбарт (1962) — «Augmenting Human Intellect: A Conceptual Framework», система H-LAM/T.
3. Теодор Нельсон (1965) — термин «гипертекст».
4. Дуглас Энгельбарт (1968) — система NLS/Augment (oN Line System), публичная демонстрация в Сан-Франциско.
5. Алан Кей (1973) — термин «персональный компьютер», идея компьютера Dynabook.
6. Чарльз Симони, Батлер Лэмпсон (1974) — система редактирования Bravo, WYSIWYG-режим, шрифты и стили.
7. Теодор Нельсон (1974) — «Dream Machines», гипертекстовая система XANADU.
8. Алан Кей (1974) — система Smalltalk.
9. Дэвид Лиддл (1981) — система автоматизации офиса Xerox Star.
10. Чарльз Симони (1981) — меню в Multiplan.
11. Дональд Кнут (1986) — термин «Web».
12. Никлаус Вирт, Юрг Гуткнехт (1988) — система Oberon: гипертекст, web-службы, команды-прототипы смарт-тегов, компонентное ПО, первые аплеты, прототип Java.
13. Microsoft (1990) — язык Visual Basic.
14. Тим Бернерс-Ли (1991) — язык HTML.
15. Марк Андриссен (1993) — браузер Mosaic.
16. Микаэль Франц (1994) — термин «аплет», JIT-компиляция.
17. Джеймс Гослинг (1995) — язык Java.
18. Microsoft (1996) — язык VBA 5.0 (интеграция всех приложений Microsoft Office).
19. W3C (1997) — XML.
20. Microsoft (2001) — смарт-теги в Office XP.

Среди важных вех минувших лет стоит выделить, пожалуй, труды трёх авторов: Дугласа Энгельбарта, Чарльза Симони и Никлауса Вирта, отстоящие друг от друга примерно на десять лет.

Итак, в декабре 1968 г. в Сан-Франциско открылась Единая осенняя компьютерная конференция (FJCC). Именно на ней произошло событие, впоследствии получившее название «Великая демонстрация всех времён и народов». Дуглас Энгельбарт, сотрудник Стенфордского исследовательского института (SRI, Stanford Research Institute) в Менло-Парк (что неподалёку от Купертино), вместе со своими коллегами представил прообраз персональных компьютеров и будущей web-среды.

Он появился на сцене с микрофоном и наушниками и уселся перед демонстрационным экраном за замысловатый рабочий стол, на котором были разложены клавиатура и какие-то непонятные инструменты. Энгельбарт показывал всем, что будет представлять собой повседневная работа в будущем. Он растягивал строчки текста до огромных размеров, а потом сжимал их обратно. Текст вверху экрана можно было «замораживать», а в нижней части — изменять. На разделённом на сектора экране дисплея представлялись текст, графика и видео. Документы имели сноски на другие документы. И по этим сноскам можно было перемещаться!

Всеми своими действиями Энгельбарт управлял с помощью придуманного им для NASA манипулятора с двумя потенциометрами, получившего название «мышь» (саму же мышь компания Xerox залицензировала в 1971 г.). Световое пятно (оно именовалось «клоп») вслед за перемещениями колесиков мыши двигалось по экрану. Энгельбарт мог щёлкнуть на слове, передвинуть его в документе и даже перенести в другой.

Затем наступил черёд демонстрации прообраза нынешних видеоконференций. Энгельбарт представил одного из членов своей команды, севшего за такой же рабочий стол, как у него, с микрофоном и наушниками. Перед этим участником тоже находилась телекамера. Энгельбарт и его коллега смогли на расстоянии разговаривать между собой, видеть друг друга и одновременно совершать манипуляции с общим документом.

Такая демонстрация предвосхитила многие открытия, сделанные в последующие годы: web-документы, экранные окна, мышь, видеоконференции, коллективную работу над документами.

Алан Кей, автор языка и системы Smalltalk, компьютера-мечты Dynabook, активный участник проекта Alto, так вспоминал о том времени: «Хотя я и знал заранее всё, что они собирались показать, для меня оказались величайшим открытием в жизни объём, широта и глубина проницательности Энгельбарта. Бурные овации свидетельствовали о мгновенном признании аудитории. Все поняли: произошло что-то значительное, и с этого момента мы не сможем оставаться такими, какими были раньше».

Однако в течение многих лет истинный вклад Энгельбарта так и не был оценён по достоинству. Тед Нельсон, познакомившийся с Энгельбартом весной 1967 г., с горечью прокомментировал ту ситуацию: «То, что этот компьютерный пророк не получил никакой благодарности, — истинная правда. Отсутствие признательности Дугу равнозначно ситуации, когда вы стоите рядом с Empire State Building и не знаете, какова его высота. Вам просто известно, что оно выше вас».

Спустя три десятилетия Дуглас Энгельбарт наконец-то удостоился заслуженных почестей — в 1997 г. он получил премию Лемельсона Массачусетского технологического института в размере 500 тыс. долл. Это было самое большое в мире денежное вознаграждение, назначаемое за американские изобретения и открытия.

Спустя пару лет после исторической демонстрации 1968 г. корпорация Xerox создала свой новый исследовательский центр в Пало-Альто (PARC, Palo Alto Research Center), куда перешли многие сотрудники Энгельбарта и его коллеги по Стенфордскому университету.

== Чарльз Симони. Тайный архитектор Microsoft

Долгие годы имя Чарльза Симони (Карой Шимоньи), одного из выдающихся программистов минувшего столетия, главного архитектора Microsoft, равно как и имя Энгельбарта, было покрыто завесой молчания. Когда я листал страницы архивных материалов, мне удалось найти в публикациях начала 1990-х гг. лишь едва заметный реверанс в сторону Симони в весьма обстоятельном интервью Билла Гейтса. Он дал его в 1993 г. Дэвиду Эллисону из Национального музея истории США по случаю своего награждения премией Computerworld Smithsonian Award.

«Microsoft Word, — вспоминает Гейтс, — хотя и являлся вторым приложением, с которым мы вышли на рынок после Multiplan, знаменовал собой важный этап... Мы взяли на работу Чарльза Симони из Xerox PARC. Мы знали, что графический интерфейс там уже был реализован и что лазерные принтеры получат большое распространение. Поэтому мы спроектировали нечто такое, чья структура была бы подготовлена для графического мира. И действительно, мы добились того, что текст можно было показывать курсивом и полужирным начертанием, что с ним можно было работать с помощью мыши, а это позволяло добиться огромной точности в композиции страниц... Пользовательский интерфейс был идентичен интерфейсу в Multiplan. Так появилось семейство продуктов, которое мы назвали Multi-Tool Family».

В реальности же роль Симони в становлении корпорации, именуемой Microsoft, неизмеримо выше. Обратимся к истории компьютеров и страницам его биографии.

В начале 1960-х гг. Симони на своей родине в Венгрии писал программы для советского компьютера «Урал-2». Именно тогда, работая в машинных кодах, он и приобрёл умение создавать максимально эффективные программы, функционировавшие в условиях крайне ограниченных машинных ресурсов. Привычка делать мнемонические обозначения вылилась у него в создание того стиля формирования идентификаторов, который теперь известен под названием «венгерская нотация».

Будучи аспирантом Стенфордского университета, Симони начал работать в Xerox PARC ещё в 1970 г., т.е. тогда, когда образовалась эта, пожалуй, самая знаменитая исследовательская лаборатория мира. Основным в те годы был проект Alto. Но компьютер Alto так и не стал промышленным ПК — было создано всего лишь около 2000 машин данного семейства. Их установили в Белом доме, Администрации президента и Национальном бюро стандартов, на них печатались отчёты и документы Конгресса США.

Чарльз Симони в рамках создания компьютера Alto отвечал за направления работ в области графического интерфейса (GUI), в частности за разработку текстового процессора Bravo. По его словам, это был первый в мире текстовый процессор, обеспечивающий режим WYSIWYG (What You See Is What You Get) — режим точного соответствия представленного на экране документа напечатанному на принтере (композиция страницы, гарнитуры, начертания, кегель, стили). Причём работать с таким представлением страницы можно было с помощью мыши. В 1976-1978 гг. он завершил разработку усовершенствованной версии BravoX, положенной в основу одного из самых технологически совершенных и одновременно коммерчески неудачных проектов — Xerox Star. (Спустя десятилетие идеи Xerox Star были взяты на вооружение и развиты Стивом Джобсом в рамках проекта NeXT.)

Проект Star (начавшийся в 1975 г.) в Xerox PARC вёл департамент системных разработок SDD (Software Development Department). В июле 1981 г. работа над ним вылилась в то, что Xerox представила настоящий персональный компьютер Xerox 820, получивший кодовое название Worm («червяк», приготовившийся, видимо, съесть яблоко — Apple). До выхода IBM PC оставался один месяц... Однако время (да и очень ценные кадры) было уже упущено. Билл Гейтс вспоминал: «Ребята из Xerox замахнулись слишком высоко, они пытались сделать невыполнимое, но не смогли найти возможностей, чтобы это осуществить. Когда наконец им это удалось, они чуть-чуть опоздали».

Не дождавшись завершения проекта Star, разочаровавшись и не надеясь увидеть когда-либо повсеместное использование плодов своего труда, из Xerox PARC стали уходить один за другим ведущие сотрудники. Чарльз Симони перешёл в Microsoft, Алан Кей — в Atari. Команду Bravo покинул не только её руководитель, но и другие участники (однако они направились к прямому конкуренту Microsoft — компании Apple). Так, в Apple попали Том Мэллой, написавший редактор LisaWrite, и Ларри Теслер — один из ведущих разработчиков ПО для будущего компьютера Apple Lisa. Что же касается Стива Джобса, то он не работал в Xerox PARC, но мысль о создании своего ПК зародилась у него в 1979 г. именно там, когда он воочию познакомился с исследованиями в этом центре. Вдохновлённый увиденным, Стив загорелся идеей использовать это при конструировании компьютера Lisa, а после того как его несколько отодвинули от проекта, перенацелился на новый ударный проект — Macintosh.

Но вернёмся к Симони. В конце 1980 г. Чарльз Симони собрался было уходить из Xerox PARC, и тут Роберт Меткалф (автор Ethernet) посоветовал ему переговорить с рядом лиц, причём первым в списке значился Билл Гейтс (остальные имена Симони по прошествии стольких лет вспомнить уже не мог). В ноябре Чарльз встретился с Гейтсом и Стивом Балмером, после чего согласился на предложенные условия (руководство новым ключевым подразделением — Application Software Group, создание на базе Electronic Paper нового процессора электронных таблиц, подготовка текстового редактора Word).

Симони поступил на работу в Microsoft 6 февраля 1981 г. и стал сотрудником номер 40. Важно заметить, что в империи Basic (как ещё называли Microsoft) именно Симони настоял на том, чтобы основным языком разработки стал язык Си. На Си был написан Multiplan — прообраз будущей Excel. Несмотря на относительную маркетинговую неудачу с Multiplan, в Microsoft сделали правильные выводы из своих ошибок, и в 1985 г. та же таблица вышла под новым флагом — Excel. С этого момента она начала неуклонно захватывать рынок.

Параллельно с Multiplan в 1981 г. были инициированы работы по созданию текстового редактора Multi-Tool Word. В острейшей конкуренции с WordStar и WordPerfect редактор Word корпорации Microsoft спустя несколько лет после своего официального появления в ноябре 1983 г. завоевал пальму первенства, а с выходом системы Windows стал доминирующим текстовым процессором. Как вспоминает Чарльз Опперман, бывший менеджер проектов в Microsoft, в начале 1982 г. Симони вместе с Биллом Гейтсом уже вынашивали идеи реализации графической версии MS-DOS, которая привела к появлению операционной системы Windows.

В 1991 г. Симони был переведён в Microsoft Research, где занимался разработкой концепций интенционального программирования (intentional programming). К 2002 г. он в качестве одного из 16 выдающихся инженеров Microsoft (Distinguished Engineers) входил в Business Applications Division.

Большая заслуга Симони состоит не только в непосредственном участии в создании трёх ведущих продуктов Microsoft — Word, Excel и Windows, но и в том, что механизм меню стал столь распространённым и популярным. Вот как в интервью, данном журналу PC World (ноябрь 1983 г.), Чарльз Симони пояснил идею меню. «Мне нравится явная аналогия с рестораном. Скажем, я захожу во французский ресторан и не умею говорить по-французски. Обстановка необычная, самочувствие неважное. Я боюсь сделать глупость и потому напряжён. Ко мне подходит очень внушительный на вид официант и заговаривает со мной по-французски. Я покрываюсь холодным потом. Наверное, те же самые чувства испытывает бухгалтер, садящийся к компьютеру... Какой же выход? А вот какой: я беру меню и указываю на что-нибудь пальцем. Я на правильном пути. Может быть, я не получу то, что мне нужно, может быть, мне придётся есть одних улиток, но я по крайней мере не буду чувствовать неловкость. Но представьте себе, что вы во французском ресторане, в котором нет меню, — это ведь кошмар. То же самое относится и к программе для компьютеров — вам нужно меню. Меню дружественны, поскольку люди знают, что означают их пункты, и поскольку они могут выбрать нужный, просто указав на него. Им не приходится разыскивать что-то такое, чего они не смогут найти, и вводить какие-то команды, в которых могут быть ошибки».

Справедливости ради надо заметить, что не Симони первым придумал механизм меню (он появился в конце 1960-х гг. ещё на первых терминалах IBM 3270 с прямым позиционированием курсора). Да и само название «меню» дали, скорее всего, именно в Apple сразу после выхода компьютера Lisa. Дэвид Лиддл, руководитель проекта Xerox Star, вспоминает: «Мы никогда не называли ни один из этих механизмов в Star термином «меню». Apple всегда именовала их меню, мы же не делали этого никогда».

== Команды в системе Oberon как прототип смарт-тегов

Система Oberon (Oberon System), созданная в Швейцарском федеральном технологическом институте (ETH, Цюрих) в 1988 г., сыграла приблизительно ту же роль, что и проекты Alto и Xerox Star в начале 1980-х гг. Для таких корпораций, как Microsoft, IBM и Sun Microsystems, она стала источником плодотворных идей, среди которых можно выделить документо-ориентированный интерфейс, языки разработки переносимого ПО (Java), машинно-независимый мобильный код, аплеты, компонентное ПО, динамическую компиляцию (JIT-компиляция), web-службы и конечно же смарт-теги.

Идеологами этой системы стали Никлаус Вирт и Юрг Гуткнехт, профессора ETH . Система Oberon и ориентированный на неё компьютер Ceres создавались не на пустом месте. За несколько лет до этого (1980-1981 гг.) Вирт вместе с группой своих коллег успешно завершил проект разработки 16-разрядного персонального компьютера Lilith с растровым дисплеем, WYSIWYG-интерфейсом, локальной сетью и лазерным принтером. Весь проект, включая операционную систему Medos, сервисные программы и компилятор системного языка, был реализован на преемнике Паскаля — языке Mодула-2.

Идея проекта Lilith возникла у Вирта (он, кстати, в своё время учился у Энгельбарта) в момент посещения им в 1976-1977 гг. всё того же Xerox PARC. Однако он обратил внимание не столько на компьютеры семейства Alto, сколько на менее известный проект Mesa (своеобразную системно-ориентированную разновидность Паскаля). Этот проект, на результаты которого опирался Star, вела лаборатория CSL (Computer Science Laboratory). Язык Mesa стал прототипом двух языков — Модулы-2 и Ады. Он использовался внутри корпорации Xerox для реализации не только Star, но и ПО DocuTech. Проект Cedar (преемник Mesa в Xerox PARC), направленный на создание языка для реализации системы DocuPrint, в определённой степени стал катализатором другого проекта Вирта — системы Oberon.

Наш интерес в свете данной статьи будет обращён прежде всего к прототипам смарт-тегов в системе Oberon — к так называемым командам Oberon (commands), играющим роль низкоуровневых обработчиков смарт-тегов. В основе Oberon лежит исповедуемая Виртом концепция расширяемых систем, предусматривающая возможность органичного расширения базовой системы в контексте объектно-ориентированного каркаса. Каждая экспортируемая процедура без параметров (соответствующий метод) в новом загружаемом модуле автоматически становится командой операционной системы. Параметры передаются команде через буфер обмена и области выделения. Чтобы её выполнить, достаточно в любом месте пользовательского интерфейса (даже в заголовке окна!) ввести (или выделить) текст, а затем просто подвести мышь к тексту и нажать её кнопку, например:
    Gadgets.Insert Clocks.NewClock ~

В данном примере команда Insert из модуля Gadgets считывает параметры вплоть до знака завершения (~) и выполняет соответствующий код данной процедуры (в нашем случае в то место, где стоит текстовый курсор, помещается аплет-часы, работающий до момента своего удаления из документа). Программисты в Oberon активно пользуются подобным механизмом, вставляя прямо в исходный текст своего рода инструкцию: команды запуска тестовых примеров.

В отличие от смарт-тегов Microsoft в системе Oberon по умолчанию нет визуального выделения смарт-ссылок, не появляется меню (его надо предусматривать при разработке процедуры). К тому же распознаватели выполняются по унифицированной и упрощённой схеме: текст смарт-тега должен в точности соответствовать формату представления команды (это не произвольный текст). В то же время такие а-ля смарт-теги в системе Oberon гораздо проще создавать и активизировать, да и распознаются смарт-ссылки практически в любой точке интерфейса, даже на Рабочем столе.

К сожалению, как и в случае проектов NLS и Alto, беда этой исследовательской системы заключается в том, что она на многие годы опередила своё время. К тому же, в отличие от старых добрых дней, теперь в коммерческих продуктах всё реже можно встретить хотя бы упоминание о тех источниках, из которых были позаимствованы идеи. Это максимально скрывают и вымарывают.

== Смарт-теги против макрокоманд

Казалось бы, зачем нужны смарт-теги, когда есть привычный гипертекст и отдельные программы? Ведь если надо что-то сделать, можно использовать соответствующее приложение. Ответ лежит на поверхности: опыт работы с web-страницами показывает, что чем глубже по навигации размещена информация (а также действия), тем реже она оказывается востребованной. В случае смарт-тегов множество разрозненных операций переводится в унифицированный интерфейс всплывающих меню, которые в нужный момент всегда оказываются под рукой. Причём с их помощью можно не только быстро выполнять соответствующие тексту поисковые запросы и в общем случае любые сколь угодно сложные SQL-запросы, но и выполнять обработку информации вплоть до решения отнюдь не простых задач.

Приведу пример одного фрагмента, который, будучи превращен в гипертекст (в нашем случае — текст со сноской), лишь незначительно помогает в решении конкретной ситуации. А вот с помощью смарт-тегов такая задача может быть вполне эффективно автоматизирована (с учётом, разумеется, использования несложного лингвистического процессора, обеспечивающего адекватное распознавание запроса на естественном языке).

В конце XIX в. знаменитый английский писатель Льюис Кэрролл в своей книге «История с узелками» приводит следующую историю-загадку: «Вот она, — сказала наконец тётушка. — Последняя запись относится к вчерашнему завтраку. Один стакан лимонада (Почему ты не можешь пить простую воду, как я?), три бутерброда (Горчицы, конечно, в них нет и в помине. Я прямо так и сказала девушке за прилавком, а она в ответ лишь вздёрнула подбородок. Удивительная дерзость!) и семь бисквитов. Итого 1 шиллинг и 2 пенса... — Постарайся вычислить, если не помнишь, — предложила тётушка. — Что ты заказывала на завтрак вчера, тебе известно. А вот запись о том, что ты заказывала позавчера — в первый день, когда мы отправились завтракать в кондитерскую: один стакан лимонада, четыре бутерброда, десять бисквитов. Итого 1 шиллинг и 5 пенсов.

С этими словами тётушка передала свои таблички Кларе. Сквозь слёзы Клара даже не разглядела, что держит таблички вверх ногами».

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

«Позвольте, но какая же тут революционность?» — словно вопрошает один из авторов тех критических статей по технологии смарт-тегов, которые появились в 2001 г. В самом деле, ведь если посмотреть на примеры применения смарт-тегов, то все они вроде бы могут быть довольно легко реализованы средствами уже имеющихся офисных приложений. По мнению другого автора, всё то, о чём говорилось выше, делается с помощью известных средств программирования офисных приложений. Подводите курсор к выбранному слову, открываете нажатием горячей клавиши макрокоманду в контекстном меню и делаете всё, что требуется. Оба автора, подробно излагая технические детали реализации смарт-тегов, словно сговорившись, недоумевают: зачем же нужен сам механизм?

Что ж, такое недопонимание простительно, и подобная точка зрения вполне имеет право на существование. Однако она игнорирует вполне очевидное преимущество технологии смарт-тегов по отношению к привычным макрокомандам офисных приложений (а ведь авторы вели речь именно о них). Как известно, макрокоманды опираются на простой принцип: сопоставление программного кода, написанного, как правило, на VBA, с конкретной комбинацией клавиш (горячие клавиши).

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

Самое интересное, что режим выделения распознанных словокомплексов можно отключать, и тогда чисто внешне работа смарт-тегов будет напоминать работу с макрокомандами. Кроме того, от большого числа горячих клавиш макрокоманд в принципе можно избавиться за счёт реализации обобщённых макрокоманд с применением меню (т.е. промоделировав эту особенность смарт-тегов). Теперь все характеристики конкурирующих технологий приведены к одному знаменателю. Остаётся, пожалуй, последняя, ключевая: распознавание в случае смарт-тегов производится автоматически, а в случае макрокоманд — вручную. Ну а тут уже споры могут возникнуть в отношении удобства использования (что лучше: мышь или клавиатура) и качества реализации распознавания (в общем случае оно сводится к обработке запросов на естественном языке). А при работе с мнемоническими обозначениями (как тут не вспомнить венгерскую нотацию Симони) «зацепиться» за текст распознавателю будет куда проще.

С системой Oberon я знаком около 30 лет. Практически с момента её появления. Команды в ней с точки зрения использования занимают промежуточное положение между смарт-тегами и макрокомандами. И надо сказать, что выполнять команды в Oberon без явного их выделения в тексте не совсем удобно. По сути, вы подобно сапёру должны шаг за шагом прощупывать комбинации слов, чтобы выяснить, какие из них в данном контексте будут исполняться. Это может быть вполне приемлемо для программиста, для профессионала-виртуоза в обработке текстов, но массовому пользователю не сулит ничего хорошего. Представьте себе на минуту, что было бы с нынешним Интернетом, если бы гиперссылки никогда не выделялись в тексте ни цветом, ни подчёркиванием. Даже когда подвели курсор. Кто нашёл, куда нажимать, тот и молодец!

Очевидно, что для успешной работы смарт-тегов требуется, чтобы движки  (engines), встроенные в соответствующие приложения (Word, Excel, Outlook, Internet Explorer, Acrobat и др.) и обеспечивающие управление обработчиками смарт-тегов, работали корректно. В принципе можно создавать и собственные движки, а не пользоваться штатными (если таковые для данного приложения имеются).

== Системы смарт-поиска

Забвение смарт-тегов произошло на фоне выдвижения особой их замены: систем смарт-поиска (selection-based search, mouse-based search), т.е. поиска на основе явного выделения текста мышью. Используется в Apple Spotlight, в Yahoo! Search, в Microsoft Internet Explorer 8 Accelerators и др.

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

Фактически тут две задачи: (1) категоризация выделенного текста (распознавание и соотнесение с определённой группой  объектов) и (2) выбор онлайн-служб, к которым относится распознанный запрос/команда.

Здесь соблюдается тот же важный принцип смарт-тегов: работа только мышью, без использования клавиатуры. Но, согласитесь, есть разница, когда выявление потенциальных смарт-ссылок производится автоматически и когда это делается вручную, по явному выделению текста запроса с помощью мыши. Компании, персоналии, страны, города и подобные объекты могут автоматически распознаваться на странице и превращаться в смарт-ссылки. А заставлять пользователя работать самому за блок распознавания — такая гибкость есть плата за отказ от автоматики (вспомним про безопасность и правовые риски). 

В системах смарт-поиска всю ответственность возлагают на пользователя. Именно он должен сам выделять нужные фрагменты текста и затем «скармливать» их онлайн-службам.

== Вместо заключения

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

Раскрою небольшой секрет. В этой статье не просто так приведено довольно много названий продуктов, систем, решений. Перед вами готовая смарт-площадка для дальнейшего поиска. Все необходимые ключевые слова и даты здесь собраны. Копайте и дерзайте. Разумеется, кому это важно, нужно и интересно.


• Фото: Сергей Видов (Донецк), 2021.


Рецензии