Открытое программное обеспечение в последние несколько лет захватило умы очень многих людей и создало вокруг себя шумиху совершенно несоизмеримую своей значимости. Почему не стоит впадать в транс услышав мантру "open source", написано далее.

Фанатики (именно фанатики) открытых исходников постулируют следующие идеи:

1. Любой может залезть в исходники и исправить ошибку.
2. Открытые программы более надежны в силу пункта 1.
3. Любой может доработать программу и поработать таким образом на все open source сообщество.
4. В программах с открытыми исходниками не может быть «закладок» и «черных ходов».

Разберемся последовательно со всеми пунктами.

1. Любой может залезть в исходники и исправить ошибку.
Да. Теоретически это так. Проблема в том что в реальности это практически никогда не происходит. Дело в том что всех пользователей можно разделить на 2 группы — те, которые о программировании слыхом ничего не слыхивали, и те, которые о программировании имеют то или иное представление. Пользователи из первой группы по очевидным причинам в исходники никогда не полезут. Пользователей же из второй группы можно разделить ещё на две части — люди профессионально занимающиеся программированием и восторженные новички, прочитавшие что-нибудь из серии «... для чайников». Первые в чужие исходники в трезвом уме никогда не полезут так как очень хорошо знают что такое чужие сорцы. Так же они очень хорошо осведомлены, что даже в своем коде через несколько месяцев разобраться очень проблематично, не то что в чужом. Поэтому в кишки программе лезут именно восторженные новички и с упоением, с полным ощущением собственной непогрешимости улучшают код. Точнее это они думают что улучшают код. На самом деле они лепят горбатого, понятно как влияющего на программу.

2. Открытые программы более надежны в силу пункта 1.
Бородато-пузатые дядьки-программисты ратующие за свободные исходники не знают, или не хотят знать, или скрывают, что знают о существовании дисциплины под названием «Управление IT-проектами». Эта дисциплина вводит такую характеристику качества программного кода как количество ошибок на 1000 строчек кода. Данная характеристика вводится почти во всех учебниках по IT-менеджменту. Но ни в одном таком учебнике не делается разделение на величину этой характеристики для программ с открытыми исходниками и с закрытыми. Да ребята, примите этот факт. Количество ошибок одинаково.

3. Любой может доработать программу и поработать таким образом на все open source сообщество.
Есть такая хорошая фраза - «Кто как хочет так и дрОчит». Именно потому что «кто как хочет» рождаются абсолютно нелогичные и уродливые интерфейсы, которые абсолютно не согласованы друг с другом. Например в рамках одной программы для обозначения одного и того же действия могут использоваться разные термины. Отдельно стоит упомянуть локализацию и ошибки локализации. Помню в восьмой Убунте во время установки выбрал язык системы — русский. Открываю Файрфокс — английский. «Так я и думал. Именно так я и предполагал.» © Именно из-за этих проблем создатели всех более-менее успешных программных проектов с открытыми исходниками рано или поздно сбиваются во всякие Foundation'ы и Group'пы. И по своей организации очень сильно начинают напоминать любую другую компанию по созданию софта. Хотя это и не афишируется особо.

4. В программах с открытыми исходниками не может быть «закладок».
Брехня. Может. Помню получил как-то заказ на доработку одного движка интернет-магазина. Редкостное говно кстати. Так вот, на официальном сайте этого говно-движка прям на главной странице пишется, что за такой-то месяц в наших магазинах куплено товаров на X рублей. Моя задача состояла в том чтобы убрать код, который отправляет автору этого скрипта информацию о совершаемых покупках. Прелесть правда? Кто там подумал про privacy?

Как видно из приведенных доводов open source это в большинстве случаев мистификация, фикция, пустой звук, пиар в конце концов. Эта утопия создана программистами для программистов. Проблема в том что создание ПО это не только программирование. Это ещё и анализ требований, это проектирование, это тестирование, это написание документации, это техническая поддержка после релиза. Все это очень важные вехи в развитии программного продукта. Для одного только тестирования я могу назвать более семи различных этапов. Open source касается только программирования, а что делать с другими этапами создания софта идеология open source ответа не дает. И не сможет никогда дать.