НовостиСобытияКонференцииФорумыIT@Work
Open Source:

Блог

О пользе открытого кода

Сергей Голубев
29.03.2012 10:31:25
Теги: СПО

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

Было это давно. То ли в конце 80-х, то ли в начале 90-х. Машины тогда были большими, а программы свободными (разумеется, при наличии у сотрудника достаточного допуска). Что, разумеется, не гарантировало отсутствие в них всевозможных ошибок.

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

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

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

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

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

Комментариев: 14

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Владимир Рубанов
29.03.2012 11:02:30

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

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

Андрей Губанов
29.03.2012 13:10:17

Такое понятие есть, как утрата технологий. Если сходный код СПО хранится в сотнях мест, равномерно размещенных по поверхности планеты, то как обстоит дело с проприетарными продуктами? Что будет с тем или иным продуктом, если на центр разработки компании, скажем, упадет метеорит или самолет, или умрет ведущий разработчик? Последняя ситуация, на первый взгляд самая невероятная, имела место в моей практике.

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

Сергей Жемойтель
29.03.2012 19:24:37

Атаковать Редмонд? smile:)... А если серьезно, то далеко ходить не надо за примером. Из моей практики много раз разработчик заказной софтинки на Delphi исчезал вместе с исходниками в неизвестном направлении. Код закрыт, разраба нет, исходников нет... Заказчик в жопе...

29.03.2012 21:09:43

А кто виноват в том, что "разработчик заказной софтины исчезал с исходниками" кроме самого заказчика?

С таким же успехом можно говорить, что нанимать строителей нельзя: ты ему деньги заплатил (до работы), а он убежал...
Вы еще про цыган-гадалок тут расскажите...

30.03.2012 07:15:15

Да, собственно, разработчик виноват, это обычная практика: организовать на пару лет фирму, силами студентов налабать какую-нибудь поделку (или даже несколько), получить деньги, закрыться. Студенты разбегутся, сам организатор может вообще за границу уехать или сменить род деятельности радикально.

30.03.2012 09:13:48

А для меня совершенно очевидно, что виноват сам заказчик. И хочет на кого-то другого свалить собственную безалаберность или хуже того...

30.03.2012 09:23:24

Безусловно, заказчик виноват - это даже обсуждать нелепо. Но есть нюанс.
Если заказчик - частная компания, то это дело хозяйское. А если госконтора?

30.03.2012 09:34:01

Президент!
И это - не шутка!

Он же сам стоил "вертикаль власти" под лозунгом "чтобы все знали, кто отвечает за всю страну.

30.03.2012 09:48:45

Снова согласен.
Но тут получаем заколдованный круг. Президент тут же скажет, что он кругом виноватый, но лучше его на данный момент все равно никого нет (что и показали выборы, ставшие позором оппозиции).
Поэтому выбор СПО - не от хорошей жизни. Увы, но финансово-копирайтный центр мира находится не в России. И на этом поле мы заведомо проиграем. Сравни динамику - наше отставание не сокращается, а растет.
Не факт, что тотальный переход на СПО как-то изменит ситуацию. Но других вариантов все равно никто не предлагает.

30.03.2012 09:54:42

Другой вариант есть изначально. Тот, который существует уже почти 20 лет. Вопрос стоит о смене этого варианта, а не о начале жизни с нуля.

30.03.2012 09:58:20

И где результат этого варианта? Как изменился с середины 80-х ИТ-счет Россия:Запад?

30.03.2012 10:00:08

Это - совершенно другая тема.

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

Сергей Жемойтель
30.03.2012 14:17:30

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

Не мешайте мух с котлетами, коли не разбираетесь в сути проблемы.

30.03.2012 14:33:27

В советские времена очень весомым аргументом в споре был еще такой - "А еще шляпу надел!"

Я на таком уровне аргументов вести разговор не хочу и не буду.
Пока.

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии