Открыть сервис

Уорд Каннингем

Уорд Каннингем (англ. Ward Cunningham, полное имя — Говард Джин Каннингем; род. 26 мая 1949, Мичиган-Сити, Индиана, США) — американский программист, изобретатель технологии «вики» (wiki). Наиболее известен как создатель первой в мире вики-системы — WikiWikiWeb, запущенной в 1995 году. Каннингем ввёл в обиход термин «вики» и заложил концептуальные и архитектурные принципы, на которых основаны все современные вики-проекты, включая «Википедию». Он также является одним из авторов манифеста «Экстремальное программирование» (Extreme Programming) и разработчиком паттернов проектирования программного обеспечения.

Биография

Ранние годы и образование

Уорд Каннингем родился в городе Мичиган-Сити (штат Индиана). Его отец работал инженером-электриком, что повлияло на ранний интерес сына к технике. В юности Каннингем увлекался конструированием радиоприёмников и сборкой простых электронных устройств.

В 1972 году он получил степень бакалавра по специальности «междисциплинарная инженерия» (interdisciplinary engineering) в Университете Пердью (Purdue University). В 1978 году там же получил степень магистра в области компьютерных наук (computer science).

Карьера

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

В 1992 году Каннингем перешёл в компанию Tektronix, где начал работу над инструментом для совместной работы над документацией. Именно в этот период он задумался о создании системы, которая позволила бы быстро редактировать и связывать веб-страницы.

В 2003 году Каннингем основал собственную компанию Cunningham & Cunningham (C2), занимающуюся консалтингом в области разработки программного обеспечения.

С 2005 по 2008 год он работал в компании Microsoft, где занимался разработкой инструментов для совместной работы.

В 2009 году Каннингем присоединился к компании Eclipse Foundation, где участвовал в развитии платформы для разработки.

В 2011 году он стал техническим директором (CTO) компании AboutUs, занимавшейся веб-каталогами.

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

Создание вики

Предпосылки

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

WikiWikiWeb

В 1994 году Каннингем начал разработку программного обеспечения, которое позволило бы редактировать веб-страницы через браузер. Он назвал его «WikiWikiWeb», использовав гавайское слово «wiki-wiki» (быстрый), подчёркивая скорость и простоту редактирования.

Первая версия системы была запущена 25 марта 1995 года на сайте c2.com. Она представляла собой набор скриптов на языке Perl, которые позволяли любому посетителю создавать и редактировать страницы. Ключевой особенностью была возможность автоматически создавать ссылки на другие страницы, используя «CamelCase» — написание слов с заглавными буквами (например, «WikiWikiWeb»).

WikiWikiWeb быстро приобрёл популярность среди программистов и стал площадкой для обсуждения паттернов проектирования. К 2000 году он содержал десятки тысяч страниц.

Влияние

Идея Каннингема легла в основу всех последующих вики-двигателей. В 2001 году Джимми Уэйлс и Ларри Сэнгер, вдохновлённые WikiWikiWeb, запустили проект «Википедия», который стал крупнейшей энциклопедией в истории. Сам Каннингем не участвовал в создании «Википедии», но одобрительно относился к её развитию.

В 2004 году Каннингем был удостоен премии «Легенда года» (Legend Award) от журнала InfoWorld за вклад в развитие интернет-технологий.

Вклад в разработку программного обеспечения

Паттерны проектирования

В 1980-х годах Каннингем стал одним из первых, кто начал систематизировать «паттерны проектирования» — повторяющиеся архитектурные решения в объектно-ориентированном программировании. Он работал в тесном сотрудничестве с Кентом Беком (Kent Beck), и вместе они разработали ряд паттернов, которые позже вошли в знаменитую книгу «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» (Gang of Four, 1994).

Каннингем создал один из первых репозиториев паттернов — Portland Pattern Repository, который изначально размещался на WikiWikiWeb. Этот репозиторий стал основой для обмена опытом среди программистов.

Экстремальное программирование (XP)

Вместе с Кентом Беком Каннингем участвовал в развитии методологии «Экстремальное программирование» (Extreme Programming, XP). XP — это гибкая методология разработки, ориентированная на частую смену требований и высокое качество кода. Каннингем внёс вклад в такие практики, как «парное программирование» (pair programming) и «разработка через тестирование» (test-driven development).

В 2001 году он стал одним из подписантов «Манифеста гибкой разработки программного обеспечения» (Agile Manifesto), который определил принципы гибкой разработки.

Технические принципы вики

Простота редактирования

Главным принципом вики, заложенным Каннингемом, была максимальная простота редактирования. Пользователь не должен был знать HTML или другие языки разметки. Вместо этого использовался упрощённый синтаксис (вики-разметка), который позволял форматировать текст, создавать ссылки и списки.

Открытость

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

Связность

Каннингем считал, что информация должна быть максимально связанной. Ссылки между страницами создавались автоматически при написании слов в CamelCase. Это способствовало формированию сети знаний, где каждый термин мог быть связан с соответствующей статьёй.

История изменений

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

Критика и ограничения

Проблема вандализма

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

Отсутствие контроля качества

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

Технические ограничения

Первая версия WikiWikiWeb была написана на Perl и работала на одном сервере. Она не поддерживала базы данных, что ограничивало масштабируемость. Позже были созданы более производительные вики-двигатели, такие как MediaWiki.

Наследие

Влияние на интернет

Уорд Каннингем считается одним из отцов-основателей современного интернета. Его идея вики-системы стала основой для тысяч проектов, от корпоративных баз знаний до крупнейших энциклопедий. Принципы вики (простота, открытость, связность) легли в основу концепции «социального веб» (Web 2.0).

Признание

В 2012 году Каннингем был удостоен премии ACM Software System Award за создание вики-технологии. В 2013 году он был включён в Зал славы интернета (Internet Hall of Fame) за вклад в развитие веб-технологий.

Современная деятельность

Каннингем продолжает заниматься разработкой и консалтингом. В 2014 году он запустил проект «Federated Wiki» — децентрализованную вики-систему, которая позволяет объединять контент с разных серверов. Он также активно участвует в обсуждениях будущего веба и совместной работы.

Интересные факты

  • Название «вики» происходит от гавайского слова «wiki-wiki», что означает «быстрый». Каннингем выбрал его, чтобы подчеркнуть скорость редактирования.
  • Первый пост в WikiWikiWeb был сделан самим Каннингемом и содержал описание паттернов проектирования.
  • Каннингем является автором термина «мета-паттерн» (meta-pattern), обозначающего паттерн, описывающий другие паттерны.
  • В 2005 году он был удостоен награды «Пионер» (Pioneer Award) от консорциума World Wide Web Consortium (W3C).

Источники

  • Cunningham, W. (1995). WikiWikiWeb: A Collaborative Hypertext System. Portland Pattern Repository.
  • Leuf, B., & Cunningham, W. (2001). The Wiki Way: Quick Collaboration on the Web. Addison-Wesley.
  • Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison-Wesley.
  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
  • Интервью Уорда Каннингема для журнала «Dr. Dobb's Journal» (2003).
  • Материалы конференции «WikiSym» (2005–2015).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →