Библиотека сайта rus-linux.net
Битва за Веснот
Глава 25 из 1 тома книги "Архитектура приложений с открытым исходным кодом".
Оригинал: Battle for Wesnoth, глава из книги "The Architecture of Open Source Applications" том 1.
Авторы: Richard Shimooka и David White
Перевод: Н.Ромоданов
25.5. Заключение
Нам кажется, что красота Battle for Wesnoth, как программы, состоит в том, насколько участие в ее развитии сделано доступным для широкого круга участников. Чтобы достичь этой цели, проект часто шел на компромиссы, из-за которых код выглядит совсем не элегантно. Важно заметить, что многие из более талантливых программистов проекта относятся к языку WML с неодобрением, из-за неэффективности его синтаксиса. Тем не менее, этот компромисс лежит в основе одного из самых больших достижений проекта. Сейчас Wesnoth может похвастаться сотнями игр с различными кампаниями и разнообразными эпохами, написанными пользователями, у которых до этого не было или почти не было опыта в программировании. Более того, это вдохновило многих, использовавших данный проект как средство обучения, выбрать своей профессией программирование. Всё это является вполне осязаемыми достижениями, с которыми могут сравниться лишь некоторые программы.
Одним из ключевых уроков, которые читателю стоит вынести из истории с Wesnoth, это учет тех проблем, с которыми сталкиваются менее опытные программисты. Необходимо осознавать, что именно препятствует участникам проекта действительно писать код и развивать свои навыки. Например, кто-то хотел бы помогать развиваться программе, но он не обладает какими-либо навыками в программировании. Специальные технологические текстовые редакторы, такие как \code{emacs} или \code{vim}, обладают значительной кривой обучения, которая может показаться для такого участника пугающей. Поэтому был разработан язык WML, файлы на котором можно открывать в обычном текстовом редакторе, что дает всем желающим возможность принять участие в проекте.
Однако, увеличение доступности кода не является легко достижимой целью. Нет простых и быстрых правил для улучшения доступности кода. Скорее всего для этого требуется баланс между различными факторами, которые могут иметь негативные последствия, о чем должно быть осведомлено сообщество проекта. Это становится очевидным, если посмотреть на то, как наша программа справлялась с зависимостями. В одних случаях зависимости могут повысить порог вхождения, а в других - они могут облегчить участие в проекте. Каждый такой случай нужно рассматривать отдельно.
Также нужно быть аккуратным с тем, чтобы не переоценить некоторые из успехов проекта Wesnoth. В проекте можно было воспользоваться некоторыми преимуществами, которые, скорее всего, не удастся воспроизвести в других программах. Доступность кода для более широкого круга участников является частично результатом того, что в программе есть возможности ее настройки. В этом плане в Wesnoth были некоторые преимущества, как у проекта с открытым исходным кодом. Юридически лицензия GNU позволяет любому открыть существующий файл, разобраться в том, как он работает, и внести изменения. В этой культуре поощряются экспериментирование, изучение и совместное использование знаний, что может оказаться неприемлемым для других программ. Не смотря ни на что, мы надеемся, что определенные элементы все-таки пригодятся всем разработчикам и помогут им в их попытках отыскать красоту в программировании.