Форк: как много в этом слове!
АрхивКомментарий дняЦентральная группа разработчиков оконной системы XFree86 изгнала одного из своих участников за попытку организовать параллельный проект. Между тем ничего противозаконного в проявленной изгнанником инициативе нет: параллельные ветви open source-проектов, т.н. форки, служат движущей силой всей индустрии открытого кода.
Идеология открытого кода, настоящей Open Source, в основание которой положена известная всем и каждому лицензия GNU GPL, замечательна во многих отношениях - ибо допускает существование таких вещей, которые в мире проприетарного софта существовать просто не могут. GPL разрешает каждому пользователю программы поступать с ней так, как ему того захочется, требуя взамен лишь одного: распространения вместе с переработанным вариантом программы самой лицензии, чтобы очередной пользователь получил те же самые права - и мог заняться модификацией самостоятельно. Этот принцип даёт начало и одному из самых неоднозначных явлений в Open Source - так называемым форкам. В переводе с английского fork означает "разветвление", что достаточно хорошо отражает суть происходящего: когда исходные коды, созданные в рамках одного проекта, ложатся в основу другого, преследующего те же самые или близкие цели, но создаваемого другими людьми, этот второй проект и называется fork. Фактически, форк - конкурент, имеющий возможность взять самое лучшее у своего прототипа и тем самым начать борьбу за потребителя уже не с нуля. Хорошо это или плохо? Вместо голословных рассуждений, давайте лучше рассмотрим пример, преподнесённый самой жизнью.
19 марта в организации XFree86 Project разразился скандал: центральная группа разработчиков, включающая менее двух десятков человек, объявила об исключении из своих рядов Кейта Паккарда (Keith Packard). Подробно объяснять что такое XFree86, наверное, не надо, но на случай, если вы не в курсе: это Open Source-вариант оконной системы X Window, работающий сегодня на множестве компьютерных платформ и используемый множеством операционных систем (в том числе и Linux). XFree86 - своеобразный посредник, помогающий наладить взаимодействие периферийных устройств (дисплей, мышь, клавиатура) с пользователем. Ключевая роль в создании этой системы отведена вышеупомянутой центральной группе разработчиков, которые частично опираются на помощь со стороны: как и в любом Open Source-проекте, полезные изменения и новшества в XFree86 вносят также энтузиасты-добровольцы. Но вернёмся к теме. Паккард, занимавшийся в XFree86, в частности, вопросами отображения шрифтов, был обвинён коллегами в попытке создания собственного, параллельного XFree86 проекта, причём - втайне от всех, за что и изгнан.
Самое же примечательное, что Кейт не отказывается от своих намерений. Он действительно собирает группу людей, которые (под его руководством) займутся развитием форка XFree86. Зачем это надо? По мнению Паккарда, процесс разработки XFree86 чересчур медлителен: учёт предложенных изменений и новых наработок (которые привносятся сторонними энтузиастами-разработчиками и производителями железа, поставляющими свои драйверы) отнимает слишком много времени, порой до одного года. Как результат - медленный прогресс всей оконной системы и тех операционных систем, которые XFree86 используют. Паккард надеется организовать более динамичный проект.
Так всё же, что дают форки софтверной индустрии? Мнений на этот счёт много. Сторонники полной свободы считают, что угроза появления форка заставляет участников исходного проекта действовать активней - и это непосредственно подтверждается тем, что можно увидеть сейчас на сайте XFree86: там, наконец, начат регулярный выпуск публичных бета-версий системы и налаживается упрощённое взаимодействие со сторонними разработчиками. Противники же утверждают, что появление форков распыляет силы: возвращаясь к XFree86, это означает появление двух конкурирующих групп, которые могли бы работать вместе. Истина, как и всегда, посередине. Комментируя решение XFree86, Алан Кокс (Alan Cox, второй по значимости человек в иерархии разработчиков Linux) сказал, что лучшим выходом могла бы стать организация экспериментального субпроекта Паккарда в рамках самого XFree86: Кейт получил бы определённую свободу действий, а все удачные наработки могли бы сразу учитываться в основной XFree86, наилучшим образом способствуя общему делу. Признаться, лично мне идея Кокса наиболее симпатична. А как считаете вы, каким был бы наилучший вариант развития событий? И чего в форках больше - хорошего или плохого? Подключайтесь к дискуссии!