Почему так много конкурирующих проектов с открытым исходным кодом?

Причины, недостатки и преимущества

Это случалось со всеми нами: вы ищете программный пакет для решения проблемы и находите отличный проект с открытым исходным кодом. А потом еще один. И другой. Почему это происходит?

Есть несколько способов погладить кошку

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

Например, KDE Plasma и LXQt — это среды рабочего стола на основе Qt. Но Plasma разработана для более многофункционального использования, в то время как LXQt легковесен. Когда вышла версия 3 рабочего стола GNOME, некоторые люди предпочли стиль версии 2 и продолжили развивать его как рабочий стол MATE.

Apache HTTPD и NGINX — два наиболее широко используемых веб-сервера. Почему есть оба? Apache обеспечивает более гибкую настройку, что важно для некоторых случаев использования. Но архитектура NGINX требует меньше ресурсов. правильный выбор в конкретном случае зависит от того, что вам нужно.

Подумайте об этом так: большинство разработчиков знают несколько языков программирования и выбирают тот, который они используют, исходя из того, что им нужно. Когда мне нужно разобрать много текста, я использую Perl. Когда я соединяю несколько команд, на помощь приходит сценарий оболочки. Библиотека Python pandas — мой выбор для анализа данных об ошибках или результатов опросов.

Возьмите этот код и сделайте форк!

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

Форки могут быть дружественными. Дружественные форки создаются для расширения или экспериментирования с исходным проектом с целью внесения изменений в исходный поток. Одним из примеров дружественного форка является проект NeoOffice, который был создан для разработки родной для OS X версии популярного пакета OpenOffice. Пакеты программного обеспечения, предоставляемые дистрибутивом Linux, часто являются дружественными ответвлениями, поскольку они включают исправления для исправления ошибок или проблем сборки, которые еще не исправлены в исходной версии.

С другой стороны, вилки могут запутаться. LibreOffice отделился от OpenOffice после того, как Oracle приобрела Sun Microsystems (и, следовательно, OpenOffice). Сообщество не доверяло Oracle, поэтому они взяли код и начали новый проект под управлением фонда. Если разработчика попросят покинуть сообщество (или он сам решит это сделать), он может создать враждебное ответвление старого проекта.

Не здесь изобретено

Основатели проектов обычно не признаются в этом, но иногда причина, по которой они начинают конкурирующий проект, заключается в том, что они хотят, чтобы он принадлежал им. Эта причина не особенно убедительна, поэтому ее обычно прикрывают маской «в существующем проекте не хватает того, что мне действительно нужно». Я не посрамлю никого, назвав здесь имена. Я уверен, что вы можете найти свои собственные примеры.

Особый класс придуманных здесь проектов – это проекты для хобби или обучения, которым удается набрать обороты и стать крупными. Линус Торвальдс классно представил Linux как «хобби, [которое] не будет большим и профессиональным, как gnu». Сегодня, конечно, ядро ​​Linux работает на большем количестве устройств, чем любое другое.

Так это… хорошо?

С одной стороны, наличие конкурирующих проектов приводит к путанице. Новый пользователь не может просто установить Linux. Сначала им нужно выяснить, какой из десятков дистрибутивов установить. И если они выберут большой дистрибутив, такой как Ubuntu или Fedora, у них будет больше вариантов на выбор.

Эта фрагментация создает много проблем. Некоторые утверждают, что отсутствие стандартизации сдерживает массовое внедрение рабочего стола Linux.

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

Обязательно ознакомьтесь с книгой Бена Коттона на The Pragmatic Bookshelf. Вы можете сэкономить 35 % с промокодом open_source_2022 до 15 ноября 2022 года. Промокоды недействительны для предыдущих покупок.