Прочитал статью-перевод «Если софт создаётся на общественные деньги, код должен быть открыт» которая вызвала двоякое чувство. С одной стороны идея кажется правильной, но в статье описано несколько принципиальных проблем, которые вольно или невольно оказывают читателям медвежью услугу.

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

Многовариативность смыслов


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

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

Например, если говорить об Open Source, то в этот термин можно вкладывать следующее:

  1. Наличие исходных кодов программного обеспечения. т. е. буквальное трактование термина.
  2. Соответствие лицензии программного обеспечения критериям Open Source Definition
    opensource.org/osd
  3. Доступность исходных кодов как обязательное свойство свободной лицензии на свободное программное обеспечение (Free Software).
  4. … можно придумать еще много вариантов использования термина Open Source, например что нибудь про истоки рек или открытые источники публикаций, использованные при подготовке рукописей или исторических исследований и т.д.

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

Contra


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

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

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

Более того, может быть для кого-то из сторонников свободного ПО покажется крамольной мысль, но использование программного обеспечения со свободными вирусными лицензиями (такими как GPL) при разработке подобных систем, не будет является нарушением лицензии.

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

Pro


Как я уже писал, мне самому очень близка идея открытого и свободного ПО, вот только я не сторонник политизации данного вопроса. Любые аргументы из разряда «общественные деньги» и «должны», это все популизм.

Я считаю, что открывать / не открывать исходники, это вопрос либо юридический, либо экономический.

Юридический — если в разрабатываемом ПО используются компоненты под свободными лицензиями и это необходимо каким то образом учитывать при распространении производного программного продукта.

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

P.S.


Это моя точка зрения, которая не претендует на абсолютную истину.

Комментарии (17)


  1. vassabi
    07.02.2019 10:48
    +1

    а что насчет компромиссного варианта: софт, написанный на общественные средства, должен быть открыт, но не весь одновременно, а спустя год — для обычного, спустя 5 лет — для специального (софт для мин.агропрома например), 10-20 лет — для военного\секретного и 30- верхняя планка для любого вида софта?

    При этом, в его стоимость (открытый — не бесплатный) должны входить расходы на аудит, чтобы там внутри не было утечек: типа захардкоженых паролей, логинов, телефонов, айпи адресов, хешей и т.д.


    1. Moskus
      07.02.2019 11:09

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


    1. rsashka Автор
      07.02.2019 12:17

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


      1. vassabi
        07.02.2019 12:41

        да, причем обратите внимание — важен не только минимальный лаг, но и максимальный.


  1. BiosUefi
    07.02.2019 11:00

    Государство выделило подрядчику, средства на автоматизацию библиотек, ведение каталогов, книжных фондов, баз данных и т.д…
    Вопрос, исходники подрядчик может не предоставлять заказчику? Или это зависит от глубины и юридической проработанности договора?
    Как смотрится желание иметь исходный код в свободном доступе, если даже заказчик (по собственной глупости?) его не имеет?


    1. MIKEk8
      07.02.2019 16:19

      Если какой-то мэр заказывает ремонт дороги у компании своей жены, и его не интересует будет ли она нормально отремонтирована или нет, то «Как смотрится желание общества иметь хорошую дорогу, если даже заказчик (по собственной глупости?) его не имеет?»


  1. MK_Ultra
    07.02.2019 11:02

    Я думаю что нужно разделять комерческий софт, который используется на общественные деньги, и софт который создавался внутри общественных организаций. Если штатные кодеры министерства Х написали ERP для внутренних нужд, то код должен быть открыт. А если ЗАО «Военные прибамбасы» по заказу министерства обороны пилит софт для противовоздушной обороны, то это комерческий софт, почему его должны открывать? Его еще много кому продать можно!
    BiosUefi
    опередил!


    1. vassabi
      07.02.2019 11:07

      о, а интересно — кому еще?
      Или расчет на продажу софта каждой дивизии ПВО по отдельности?


      1. MK_Ultra
        07.02.2019 11:11

        Ну, всем желающим. в случае РФ — Индия, Пакистан, Египет возможно Турция?
        Вроде как продали Турции комплексы С400, не на парУ же они работают.


  1. mikhailian
    07.02.2019 11:07
    +2

    С кодом системы противовоздушной обороны дoлжно поступать как с кодом Гугла:


    1. полезные для общества вещи возвращать обществу. Это guice, guava, kubernetes, chromium
    2. всё, что привязано к инфраструктуре ПВО — расшаривать со всеми разработчиками и подрядчиками системы. Точь в точь как делает Google со свей монорепкой. Этот код вне контекста использования бесполезен.
    3. Алгоритмы поиска алгоритмы систем наведения и параметры боевых систем надо хранить отдельно и ограничивать доступ к ним.


  1. Aingis
    07.02.2019 12:59
    +2

    С интересом представляю что будет, если на деньги налогоплательщиков разработали систему, например, противовоздушной обороны, которая включает в себя программную часть. И тут приходит такой активист и заявляет, что раз разработки велись на бюджетные, а значит общественные деньги, то и софт должен быть открыт!
    И тут мы сталкиваемся с той самой проблемой смыслов. А с чего вы взяли что софт не открыт? GPL требует, чтобы пользователь продукта имел доступ к исходным кодам. Так Минобороны его и имеет. Код открыт. Но засекречен. Сторонний человек прочитать не сможет.


    1. rsashka Автор
      07.02.2019 13:42

      А я так и написал, что:

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


      1. Sjam
        07.02.2019 21:04

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


        1. rsashka Автор
          07.02.2019 21:32

          Это не моя логика.
          Я привел в качестве примера свободную вирусную лицензию (GPL), и возможность получения доступа к исходникам у законных пользователей, это требование данной лицензии.
          Если бы на порталах, которыми пользуются население, использовалась бы лицензия AGPL, то тогда их исходный код действительно мог бы требовать любой из пользователей.
          Но обратите внимание, это условия лицензии, а не следование логики про публичные программные продукты или из-за их источников финансирования.


  1. i86com
    08.02.2019 00:24
    +1

    Тоже не совсем согласен с посылом статьи. Особенно применительно к РФ — лучше не надо таких требований. Никаких «код должен быть открыт», только «может».

    Иначе, например, начнут штрафовать школьных учителей, написавших что-нибудь полезное для себя и коллег, и вовремя не выложивших это в открытый доступ. Либо введут для бюджетников дополнительное звено бюрократии, когда любой свой макрос в ворде нужно будет дополнительно регистрировать в «гос. реестре бюджетного ПО». Кому это надо? А ведь они по-другому и не умеют работать.

    Да и огромная часть «бюджетного ПО» на деле не представляет из себя такой ценности, чтобы его в Open Source выкладывать. Обычные формочки для работы с БД, например.


  1. NickKolok
    08.02.2019 00:26

    Полагаю, речь идёт об открытии по AGPL. Лично я бы не отказался пофиксить кое-что в исходниках elibrary или госуслуг.