Открытый исходный код — безопасно?


0 0

Бытует мнение, что программы с открытым исходным кодом надежнее и безопаснее, чем фирменные. Сторонники этого утверждения считают, что такую систему исследуют множество людей разными способами и тем самым выявляют все возможные погрешности. А самое главное, что ошибки исправляются своевременно, доступны для свободного скачивания и легки в установке.

Да, искать ошибки на уровне кода совместно с тестированием готового продукта намного проще и эффективнее, но результат далек от идеала. Несмотря на массовое тестирование, в Linux достаточно часто находят ляпсусы. Однако если посмотреть, какая армия пользователей обследовала последние версии Windows, то можно было бы подумать, что она станет безупречной. Тестирование — это одно, а применение в "боевых условиях" зачастую демонстрирует совершенно непредсказуемые результаты.

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

Открытость в отношении Linux имеет преимущество — отличное соотношение цены и качества. Возможность бесплатно установить ОС позволяет сэкономить большие деньги на установке, но увеличиваются затраты на поддержку, которая даже для Linux стоит достаточно дорого.

Те, кто пишут открытый код очень часто пишут его более аккуратно. Если программист напишет программу, исходный код которой никто и никогда не увидит, то он может смело говнокодить, лишь бы сэкономить время и не заморачиваться с архитектурой. В таких случаях не нужно писать код так, чтобы кто угодно мог сопровождать ваше творение. 

Если заведомо знать, что на код будут смотреть, и к тому же его увидят зажравшиеся очкарики-программисты, которым только дай потролить и поумничать, то чтобы не выглядеть уж совсем позорно приходится писать код аккуратнее. Никому не хочется получить клеймо – говнокодер. 

Даже в открытом коде часто бывают проблемы с аккуратностью, но в целом я все же соглашусь, что его пишут все же чище. Но значит ли это, что закрытый код не может быть таким? Совершенно нет.

Сейчас большое количество компаний практикует такое понятие как Dev Review. Один программист пишет код, другой проверяет, чтобы результат не был откровенной лажей и выглядел на пристойном уровне. В таких случаях программисты просто уверены, что их код точно кто-то увидит. Причем увидит коллега, который вас знает и в глазах которого не очень хочется выглядеть позорно. Но даже это ничего не гарантирует. 

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

Если уж при проверке кода проходит фуфло, в открытом коде тоже самое возможно. 

За всю мою карьеру мне приходилось видеть много исходных кодов. Бывало, и простой код выглядит хорошо, а бывает и нет. Когда говорят о качестве открытого кода, почему-то все в голове держат только Linux, качество которого действительно хорошее. Только это же не является гарантией, что абсолютно у всех будет та же судьба. Linux – это больше исключение из правил, потому что над этим проектом действительно работает огромное количество людей. Тут действительно код смотрят и тестирует большое количество энтузиастов. Можно предположить, что такая же тема произойдет и с компонентами Linux. 

Но будет ли такая же песня с программой типа RSS читалка? Много народу захочет посмотреть на нее? Опять же, как я говорил, все зависит ведь еще и от квалификации тех, кто смотрит на код. 

Даже если на код смотрят квалифицированные программисты и могут указать на ошибку или проблему с кодом, дальше многое зависит и от культуры и процессов, которые построены. В софтверных компаниях очень могут забоится о качестве кода и могут следить за тем, чтобы на любые замечания реагировали своевременно и исправляли косяки. Будут ли так поступать те, кто работают с кодом и выкладывает его в открытую, если им не платят деньги, и они работают на чистом энтузиазме. Если разработчики проекта с открытым кодом работают за зарплату – то тут все зависит от политики компании и конечно же процессы могут быть такими же, как и в коммерческой компании. 

А если это домашний энтузиаст? Ведь таких очень много. Как он будет работать? На сколько хорошо будет реагировать на критику? Как часто будет выпускать обновления? Да хер его знает. Сколько проектов с открытым кодом умерло, потому что их перестали сопровождать . . . 

Я всегда считал, что качество кода не зависит от того, открытый он или нет. 

Может показаться, что коммерческий софт лучше и их исходный код лучше открытого. Может показаться, что я говорю, что в открытом коде часто лажают, а в коммерческом все идеально, все проверяется, тестируется и исправляется. Да, такое бывает, но не всегда. 

Из личной практики я чаще всего лучший код видел там, где работают над своим проектом. Там компании знают, что им самим же придется сопровождать код и чтобы упростить себе жизнь в будущем думают о качестве. 

Хуже дела я видел в агенствах, которые пишут код для других. Тут самое главное написать код как можно быстрее, чтобы заработать больше денег, потому что время – деньги. На сопровождение могут забить и в таких случаях получается реальный говнокод. 

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


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне