WikiWikiWeb
WikiWikiWeb — это первая в мире вики-система, созданная программистом Уордом Каннингемом в 1994 году и запущенная 25 марта 1995 года. Она представляет собой веб-сайт, предназначенный для совместного написания и редактирования гипертекстовых документов, и является прародителем всех современных вики-движков, включая MediaWiki, на котором основана Википедия. Название происходит от гавайского слова «wiki-wiki» («быстрый»), что подчёркивает простоту и скорость редактирования страниц.
История
Предпосылки и создание
Идея WikiWikiWeb возникла у Уорда Каннингема в контексте развития гипертекстовых систем. В начале 1990-х годов Каннингем, работавший в компании Cunningham & Cunningham (C2), занимался разработкой архитектуры программного обеспечения. Он искал способ упростить коллективное создание документации и обмен идеями между разработчиками, избегая сложных процедур утверждения изменений, характерных для традиционных систем управления контентом.
Прототип системы был написан на языке Perl. Каннингем вдохновлялся концепцией гипертекста, предложенной Вэниваром Бушем и Теодором Нельсоном, а также практикой использования «картотек» (index cards) для организации идей. Первый экземпляр WikiWikiWeb был установлен на сервере компании C2 и получил адрес c2.com/cgi/wiki.
Запуск и раннее развитие
25 марта 1995 года Уорд Каннингем отправил письмо в рассылку программистов, где объявил о запуске «нового способа общения». Первоначально сайт назывался «Portland Pattern Repository» (Портлендский репозиторий шаблонов), так как его основной целью было документирование и обсуждение шаблонов проектирования программного обеспечения — концепции, популяризированной в книге «Банды четырёх» (GoF).
Ключевой особенностью WikiWikiWeb стала возможность для любого посетителя создавать и редактировать страницы прямо через веб-браузер, без необходимости регистрации или использования специальных инструментов. Это сделало систему крайне демократичной и открытой, что привлекло внимание сообщества разработчиков.
Рост и влияние
К концу 1990-х годов WikiWikiWeb стал крупнейшим в мире репозиторием знаний по шаблонам проектирования и методологиям разработки. На нём обсуждались такие темы, как экстремальное программирование (XP), рефакторинг, архитектура корпоративных приложений и многие другие. Сайт приобрёл статус «собора» (по аналогии с книгой Эрика Рэймонда «Собор и Базар»), где эксперты в области программирования обменивались опытом.
Однако популярность породила и проблемы: спам, вандализм и «войны правок» стали обычным явлением. Для борьбы с ними Каннингем ввёл механизмы блокировки IP-адресов и «защиты страниц», но это не всегда помогало. В 2003 году, после появления более современных вики-движков (например, MediaWiki), WikiWikiWeb начал постепенно терять статус главного источника знаний, но остался важным историческим артефактом.
Современное состояние
По состоянию на 2024 год WikiWikiWeb продолжает работать на сервере c2.com. Он поддерживается в режиме «только для чтения» для большинства страниц, хотя некоторые разделы по-прежнему доступны для редактирования. В 2014 году Уорд Каннингем объявил о создании «Федеративной вики» (Federated Wiki), которая стала духовным наследником WikiWikiWeb, но с децентрализованной архитектурой. Сайт содержит более 35 000 страниц, многие из которых являются историческими документами, отражающими эволюцию идей в области программирования.
Архитектура и принципы работы
Основные концепции
WikiWikiWeb базируется на нескольких фундаментальных принципах, которые стали стандартом для всех последующих вики-систем:
- Открытое редактирование: Любой посетитель может изменить содержимое любой страницы, используя простой текстовый редактор.
- Wiki-разметка: Для форматирования текста используется упрощённый язык разметки, отличный от HTML. Например, для создания ссылки на другую страницу достаточно написать слово в стиле CamelCase (например,
PatternRepository). - История версий: Все изменения сохраняются, и можно просмотреть предыдущие версии страницы, а также откатить правки.
- Ссылки на несуществующие страницы: Если ссылка ведёт на страницу, которая ещё не создана, она отображается особым образом (например, со знаком вопроса), что побуждает пользователей создать её.
Техническая реализация
Первая версия WikiWikiWeb была написана на Perl и использовала CGI-скрипты. Страницы хранились в виде обычных текстовых файлов в файловой системе сервера. Каждая страница представляла собой отдельный файл с именем, соответствующим её названию в CamelCase. Система не имела базы данных — вся логика работы была реализована через обработку текстовых файлов.
Позднее, в 2000-х годах, движок был переписан на Java (коммерческая версия), но базовая архитектура осталась прежней. Ключевым нововведением стала поддержка «вики-страниц с произвольными именами» (FreeLink), что позволило отказаться от строгого правила CamelCase.
Механизм CamelCase
CamelCase — это способ написания составных слов, где каждое слово начинается с заглавной буквы, а пробелы отсутствуют (например, «WikiWikiWeb», «PatternRepository»). В ранних версиях WikiWikiWeb любое слово, написанное в стиле CamelCase, автоматически становилось ссылкой на другую страницу. Это упрощало навигацию, но создавало неудобства: например, слово «PDF» (Portable Document Format) могло быть интерпретировано как ссылка, если оно было написано заглавными буквами.
Классификация и разновидности
Типы страниц
WikiWikiWeb содержит несколько типов страниц, которые различаются по назначению:
- Основные страницы (Topic Pages): содержат информацию по конкретной теме, например, «Singleton pattern» или «Extreme Programming».
- Страницы обсуждения (Discussion Pages): создаются автоматически для каждой основной страницы и предназначены для обсуждения её содержимого.
- Страницы-шаблоны (Template Pages): используются для создания новых страниц на основе заданного формата.
- Страницы-категории (Category Pages): группируют страницы по темам, например, «Category: Design Patterns».
Разновидности вики-движков
WikiWikiWeb стал прототипом для множества других вики-систем, которые можно разделить на несколько категорий:
- Традиционные вики (MediaWiki, DokuWiki, TikiWiki): наследуют базовые принципы WikiWikiWeb, но добавляют базы данных, расширенные права доступа и поддержку мультимедиа.
- Персональные вики (TiddlyWiki, Zim): предназначены для ведения личных заметок, часто работают локально.
- Федеративные вики (Federated Wiki): децентрализованные системы, где каждый пользователь может иметь свою копию вики, а страницы могут синхронизироваться между разными серверами.
Применение и значение
Роль в развитии программного обеспечения
WikiWikiWeb сыграл ключевую роль в популяризации шаблонов проектирования. Многие известные шаблоны, такие как «Model-View-Controller» (MVC), «Observer» и «Factory», были впервые подробно описаны именно на этом сайте. Кроме того, на WikiWikiWeb активно обсуждались методологии гибкой разработки (Agile), в частности экстремальное программирование (XP) и Scrum.
Влияние на Википедию
Концепция WikiWikiWeb напрямую вдохновила Джимми Уэйлса и Ларри Сэнгера на создание Википедии в 2001 году. Хотя Википедия использует другой движок (MediaWiki), её базовые принципы — открытое редактирование, история версий и нейтральная точка зрения — берут начало именно от WikiWikiWeb. Уорд Каннингем неоднократно подчёркивал, что его целью было создание инструмента для совместной работы, а не энциклопедии, но именно его идея легла в основу крупнейшего справочного ресурса в истории человечества.
Образовательное и культурное значение
WikiWikiWeb является важным историческим артефактом, демонстрирующим эволюцию веб-технологий и коллективного интеллекта. Он изучается в курсах по истории информатики, веб-дизайну и управлению знаниями. Сайт также служит примером того, как простая идея может привести к глобальным изменениям в способах создания и распространения информации.
Критика и ограничения
Проблемы с модерацией
Из-за полной открытости WikiWikiWeb стал жертвой спама и вандализма. В первые годы существования сайта не было эффективных механизмов борьбы с ними, что приводило к загрязнению контента. В отличие от современных вики, где используются капчи, блокировки по IP и автоматические фильтры, WikiWikiWeb полагался на добросовестность пользователей, что оказалось недостаточным.
Технические ограничения
- Отсутствие базы данных: Хранение страниц в виде текстовых файлов приводило к проблемам с производительностью при большом объёме данных.
- Ограниченная разметка: Wiki-разметка была крайне простой и не поддерживала таблицы, изображения и сложное форматирование без использования HTML-тегов.
- CamelCase как обязательное правило: Это создавало неудобства для пользователей, не знакомых с этим стилем написания, и приводило к случайным ссылкам.
Устаревание
С появлением более мощных и удобных вики-движков, таких как MediaWiki и DokuWiki, WikiWikiWeb перестал быть актуальным для создания новых проектов. Его интерфейс, не менявшийся десятилетиями, выглядит архаично, а отсутствие поддержки современного веба (например, адаптивного дизайна) делает его неудобным для использования на мобильных устройствах.
Интересные факты
- Происхождение названия: Уорд Каннингем придумал название «WikiWikiWeb» после того, как в аэропорту Гонолулу увидел автобусы с надписью «Wiki Wiki». Гавайское слово «wiki» означает «быстрый».
- Первая страница: Первой страницей WikiWikiWeb была «WelcomeVisitors», которая приветствовала новых пользователей и объясняла принципы работы системы.
- Сохранение наследия: В 2015 году, к 20-летию WikiWikiWeb, Уорд Каннингем запустил проект «WikiWikiWeb: The Archive», который сохраняет оригинальные страницы в неизменном виде.
- Влияние на культуру: Термин «вики» стал нарицательным и используется не только для обозначения веб-сайтов, но и для любых систем, основанных на принципе коллективного редактирования (например, «вики-учебники», «вики-словари»).
Источники
- Уорд Каннингем, «The Wiki Way: Quick Collaboration on the Web» (2001)
- Бо Лейф, «Wiki: Web Collaboration» (2005)
- Архив сайта c2.com (1995–2024)
- Статья «WikiWikiWeb» в английской Википедии (версия от 10 января 2024)
- Интервью Уорда Каннингема журналу «Dr. Dobb's Journal» (2003)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →