НовостиОбзорыСобытияIT@WorkРеклама
Open Source:

Блог

Зачем нужна передача потребителю исходных кодов программ

Для начала я должен отметить, что на вопрос, обозначенном в заголовке предыдущего поста по теме – "Как использовать идеи СПО для разработческого бизнеса?" – от знатоков СПО-бизнеса я не получил (как я это считаю). Да, одно дело – говорить о достоинствах бизнес-модели на уровне общих идей ("свобода, равенство, братство!"), а другое – применять модель на практике. Кстати, это хорошо было видно, в том числе на ряде известных исторических примеров (Французская революция, Великая Октябрьская…).

Но обсуждение того поста довольно естественным образом вышло на тему – передавал ли я тогда покупателями исходные коды программ или нет? И почем я это делал (или не делал).
Сначала коротко отвечу, а потом продолжу размышления.
[spoiler]
У меня в те времена (1988-1997) было два набора продуктов: прикладные программы (расчетные и управление банками фактографических данных) и инструментальные средства для QB-программистов. Первые я передавал с текстами всегда. Вторые – тексты за дополнительную плату.
Почему "первые всегда"? Потому что эти тексты на самом деле никому не нужны были. Я ничем не рисковал. А покупателю было спокойней на душе. Не более того.

Для чего вообще разработчик передает потребителю исходный код?
(Я использую тут слово "потребитель", который обычно имеет два основный статус – покупателя продукта "как есть", как это решил продавец, и заказчика, который определяет требования к условиям покупки сам. Разница есть, но на самом деле – не такая большая.)

В комментарии на прошлый пост igor сформулировал такой тезис:

Поэтому просматриваются следующие цели, почему заказчику могут понадобиться исходные коды проекта:
Возможность перекомпиляции исходных кодов для другой целевой платформы.
2. Возможность использования заимствованных алгоритмических решений в иных проектах.
3. Проверка правильности алгоритмов.
Теоретически – да, конечно. На практике – очень редко. В моем случае "научных задач начала 1990-х"  - "нет" почти на 100%.

Вот что написал отвечая igor'ю

Так вот, я могу сказать на 99.999%, что ни одна из перечисленных вами задач не была актуальной для заказчика. Более того, вполне вероятно, что этому (первому) конкретному заказчику эта программа вообще не нужна была и он ее ни разу не запускал.

До 1995 года у меня было продано (сейчас точно не помню, надо лезть в свои архивы) 20-30 копий разным заказчикам. Большинство из них работали с ней, некоторые - активно. НИКТО из них эти задачи (перечисленные вами) не решал.
Они просто использовали программу как расчетный инструмент.
И все же: зачем заказчик тогда очень хотел получить исходный код? На 99% - чтобы просто сделать вид, что он все делает правильно (в том числе сделать вид для самого себя, и уж тем более – для начальства, если у него оно есть). Это была такая игра типа "они делают вид, что платят нам деньги, а мы делаем вид, что работаем.

А зачем разработчик передавал (и передает сейчас) исходный код, причем даже тогда, когда его не требует заказчик в явном виде?

Однозначного ответа на это вопрос нет, тут может быть много вариантов. Все это можно обсуждать. Но, смею утверждать, в 50% случаев (величина, конечно, ориентировочная, условная) – открытие кодов является неявным (или явным) признанием низкого качества программного продукта. Именно "программного продукта", которые включает не только саму программу, но и документацию на нее.

1. Передавая исходный код, разработчик, как бы, автоматически снимает с себя ответственность за свой код (исправление ошибок, доработка, развитие) и перекладывает ее на потребителя
2. Он снимает с себя ответственность за качество документации: "Какая вам еще документация нужна! Я же вам передал ВСЕ! Исходный код…."

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

Сертификация - это одно из решений, оно используется. Другое дело, что она никогда не даст 100% гарантии и нужна далеко не всегда.

Будет ли такое возможно в ближайшем будущем?
Уверен, что это невозможно (и не нужно) и в отдаленном будущем

Примерно, также как государство не будет возмещать ущерб от плохого воспитания вами своих собственных детей.

На эту темы много публикаций, обсуждений.
Вот посмотрите. например:
http://www.pcweek.ru/ecm/article/detail.php?ID=135713
СергейК
... как государство не будет возмещать ущерб ...
При чем тут государство?
Возмещать ущерб будет производитель.
Строители, изготовители устройств возмещают же ущерб за не качественный товар!?
Колесов Андрей
При чем тут государство?
Извините, сразу не понял.

Возмещать ущерб будет производитель.

Не будет.
Это все тоже уже давно (еще в середине 1990-х) обсужалось. Почему - было показано на теоретических выкладках, многолетних опыт подтверждает их правильность.