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

Picture 1


Итак, всё началось со статьи: Как использовать PVS-Studio бесплатно.

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

Теперь мы решили понаблюдать, как будет распространяться бесплатная версия PVS-Studio среди GitHub-сообщества. Для этого мы обратились к разработчикам с GitHub, которые уже используют бесплатную версию нашего анализатора. Возможно, почитав несколько отзывов, некоторые разработчики также захотят начать использовать анализатор при разработке своих проектов.

Picture 3



Как видно на картинке, пока на GitHub не так много людей, использующих PVS-Studio. Но постепенно их количество растёт. Давайте послушаем мнения некоторых из этих пользователей.

Что про нас говорят


Ниже будут приведены некоторые отзывы разработчиков с GitHub, которые используют бесплатную версию PVS-Studio.

Evgenii Lepikhin (проект TrafficProcessor):

Я на c++ пишу достаточно мало и ещё меньше использую анализаторы кода (под Linux с ними вообще тяжело). Ваш по сравнению с lint легко взлетел, без особых проблем был прикручен к IDE. По качеству работы самого анализатора мало что могу сказать, опыта мало. Но он работает, не глючит, а больше вроде бы ничего и не надо.

Alexey Schadin (проект NppKate):

В целом я доволен от работы статического анализатора, большое спасибо команде PVS-Studio за их работу. Но к сожалению мой проект очень маленький, да и до этого я использовал анализ, который делает MS Visual Stiduo 2015 CE, поэтому список потенциально проблематичных мест был очень короткий (менее 10 позиций). Интерфейс мне понравился, по описанию предупреждения сразу понятно, как исправить проблему. Спасибо, что позволяете сделать OpenSource продукты лучше! В других OpenSource проектах я тоже буду использовать ваш анализатор, если политика компании не изменится.

Здесь мы можем уверить Алексея и остальных разработчиков, что политика компании в ближайшее время не изменится. Бесплатная версия PVS-Studio — это долгосрочный проект.

Сергей Жейгуров (проект ToolsGenGkode):

Я очень доволен вашей программой, особенно возможностью пользоваться без необходимости покупки, т.к. программирование на C# это лишь хобби, то и покупка вашей программы не целесообразна, но возможность найти ошибки при моей недостаточной опытности в C#, мне очень полезна. Мне очень приятно, что ваша компания смогла предоставить возможность пользоваться вашим программным продуктом! :-)

Alibek Omarov (проект cs16-client):

Давно слежу за PVS-Studio, участвовал в вашем бета-тесте анализатора под Linux. «Доволен, как слон». Инструмент свою работу в виде поиска каких-то контекстных ошибок и опечаток выполняет на отлично. Бесплатная лицензия очень спасла меня, поскольку я индивидуальный разработчик и более того, пока что любитель.

Алексей Лесовский (проект pgcenter):

Да, я использую PVS-Studio у себя в проекте, поскольку я не профессиональный разработчик, а больше системный администратор, поэтому в программировании я склонен допускать очень много неявных ошибок. PVS-Studio в этом плане указывает мне на них, и я стараюсь их исправлять, опять же с помощью рекомендаций, которые размещены на вашем сайте. Мое мнение, что PVS-Studio очень полезный продукт, который позволяет устранять ошибки в коде и способствует развитию самого разработчика. Пользоваться PVS-Studio просто, настройка, анализ и «расшифровка» сообщений об ошибках не составляет сложности.

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

Григорьев Виталий — Специалист по безопасности сетевых приложений пишет:

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

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

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

Еще из минусов — это то, что с Вашей стороны вы никак не сможете проверить, что проект является open-source и т.д.

А также, раз Вы хотите популяризировать Ваш анализатор среди программистов, то как Вы будете привлекать иностранных программистов, если для них вся «реклама» скрыта внутри кода? Вам необходимо продвигать Ваш анализатор среди крупных проектов на Git и т.д., но крупные проекты, даже если они абсолютно свободные — они не будут вставлять что-то лишнее в свои файлы...

Советую Вам обратить внимание на то, как это делает Coverity Scan, где у них есть свой сайт для бесплатного пользования и полная интеграция с различными репозиториями… Интеграция с Travis-CI и т.д. А вдобавок к этому еще и «реклама» в виде тега в README, который видят все. Такой подход исключен всех выше перечисленных недостатков. Поэтому Covery используется почти в каждом втором проекте на Git. Хотя, я думаю, Вы уже рассматривали такой вариант, то из каких-то соображений не стали его делать. Наверно, либо из-за того, что Ваша акция — временная, либо из-за издержек на разработку нового сайта...

Еще из минусов, хочу отметить то, что Вы пишете слишком длинные и не полные мануалы по какой-либо настройке (например, интеграция в сборочную систему Cmake в Linux и т.д.). В них очень мало use-кейсов и практической составляющей. Количество различных проектов велико и все они собираются по-разному, а примеры даны буквально на 1-2 самых легких case'ов...

Если бы Вы сделали свое расширение для CLion, а не через иные подходы, это было бы очень полезно. Почти все компании, которые разрабатывают под Linux — перешли на CLion, а количество людей, которые используют «Vim и аналоги», сейчас резко сокращается… Вообще рекомендую присмотреться к продуктам JetBrains, а точнее к TeamCity и YouTrack. Эти продукты используют почти ВСЕ крупные и средние компании, и интеграция туда PVS-Studio — это очень правильная Business-модель.

Спасибо большое Виталию за такой развернутый отзыв, но все-таки некоторые моменты здесь стоит прокомментировать:

  1. Бесплатная версия PVS-Studio — это не временная акция, а вполне себе постоянная. Мы рады, что можем помочь разработчикам-энтузиастам использовать коммерческий продукт бесплатно.
  2. С Coverity мы стараемся брать пример во многом. Эта компания является для нас авторитетом. Однако, в вопросе бесплатной лицензии мы пошли несколько иным путем: дело в том, что мы хотим сделать лицензию бесплатной не только для Open-Source проектов, и в этом есть некоторое преимущество для разработчиков. Да, мы не сможем проверить разработчика на честность, но уважающие себя компании вряд ли будут использовать обманные методы, а те, кто будет — точно не наши клиенты.
  3. Что касается CLion. PVS-Studio для Linux появился совсем недавно, и мы сделали интеграцию анализатора через проектный файл CMake (вот как это выглядит и настраивается http://www.viva64.com/ru/m/0036/). Возможность выпуска расширения для IDE сейчас изучается.

Заключение


Хотелось бы сказать спасибо всем разработчикам, которые откликнулись и оставили нам свои отзывы. Было приятно пообщаться и получить заряд позитива от них.

В целом, мы остались довольны полученными отзывами. Несмотря на немного отрицательную реакцию в начале, разработчики прониклись идеей использования бесплатной версии PVS-Studio. Мы считаем, что это и есть начало нашей дружбы с GitHub-сообществом. Присоединяйтесь к нам. Приглашаем всех скачать и попробовать PVS-Studio на своем проекте бесплатно. Давайте дружить!

Если у Вас возникнут вопросы по установке, интеграции и использованию PVS-Studio, Вы можете связаться с нами. Мы всегда стараемся помочь разработчикам в борьбе с багами!



Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sofya Fateeva. PVS-Studio and GitHub community: let the friendship begin

Прочитали статью и есть вопрос?
Часто к нашим статьям задают одни и те же вопросы. Ответы на них мы собрали здесь: Ответы на вопросы читателей статей про PVS-Studio, версия 2015. Пожалуйста, ознакомьтесь со списком.
Поделиться с друзьями
-->

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


  1. kekekeks
    10.02.2017 14:36
    +18

    Вы вообще прикольные и очень нескромные. Обычно требуют повесить плашку на главной странице (aka README.md) об использовании такого-то продукта на безвозмездной основе. А вам вставку рекламы во все исходники подавай. Потому и "пока на GitHub не так много людей, использующих PVS-Studio".


    1. Andrey2008
      10.02.2017 14:41
      -5

      1. withkittens
        10.02.2017 15:39
        +5

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


    1. lastmac
      10.02.2017 21:54
      +10

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

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


    1. Am0ralist
      10.02.2017 23:49
      +3

      Ага, совсем офигели, выставляют какие-то условия при раздаче продукта бесплатно!
      Нет, чтоб доплачивать за использование! [/sarcazm_off]

      А если серьезно, то в чем проблема?
      Проект проверили, ошибки нашли и исправили, при разработке помогает? Почему бы не отблагодарить разрабов, которые дали возможность его бесплатно использовать?
      Плюс тому, кто будет смотреть — будет сразу понятно, как и чем код проверялся. Без плашек.

      Ах да, и вас же никто не заставляет грызть кактус? Не хотите рекламу — купите полную версию. Или не используйте. Я дула пистолета около вас не увидел.


      1. grossws
        11.02.2017 04:30
        +6

        У разных компаний разный подход. Кто-то просит их упоминать в индивидуальном порядке (в блогах/твиттере), кто-то хочет плашку (что может быть уже неприемлемо для некоторых организаций курирующих open source проекты типа ASF, Eclipse).


        PVS-Studio вот хочет комментарий до информации о лицензии (в первых двух строках), да и ещё с довольно странным текстом. Ну и условия использования таковы, что для большинства не-хобби open source проектов это будет blocker'ом.


        1. DjPhoeniX
          11.02.2017 16:02
          +4

          Вот про «до информации о лицензии» согласен. Было бы условие вида «до первой строки кода» и/или «в первых 20-30 строках» — было бы разумнее. В общем, на этом этапе я от идеи интеграции в свой проект отказался — не готов сдвигать информацию о лицензии.


          1. Mingun
            11.02.2017 17:11
            +3

            Т.е пихать в каждый файл малополезный, даже более того, засоряющий, текст лицензии вы готовы (и почему не устраивает отдельный файл с лицензией в репозитории?), а полезный маркер — нет? А не объясните, чем так мегаполезны эти 20-30 строк в каждом файле, что за них удавиться готовы (а ведь их еще каждый год обновлять нужно, ведь как же так, а вдруг новый год, а у нас лицензия на него не распространяется? А вдруг украдут?!!)?


            1. grossws
              11.02.2017 17:48
              +2

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

              На разные файлы может быть разная лицензия, у них могут разные авторы и истории. И явное указание лицензии в файле (причем в случае, скажем, Apache License v2.0 и GPLv3 там только ссылка на лицензию) позволяет другим проектам делать производную работу не по всему проекту, а по его подмножеству.


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

              Там указывается inception year, а не current year. И это год (или диапазон) от которого считается срок действия имущественным прав на код. Как минимум, в US это так. Disclaimer: IANAL.


              1. Mingun
                11.02.2017 18:59

                На разные файлы может быть разная лицензия,

                Это как-то мешает указать "См. текст лицензии в файле LICENSE.mit" или "LICENSE.lgpl" и т.п.? Зачем весь текст именно в каждый файл писать?


                Там указывается inception year, а не current year.

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


                1. grossws
                  11.02.2017 19:11
                  +2

                  Это как-то мешает указать "См. текст лицензии в файле LICENSE.mit" или "LICENSE.lgpl" и т.п.? Зачем весь текст именно в каждый файл писать?

                  Примерно это там и указывается во всех нормальных лицензиях. Совсем мелкие (2/3-clause BSD, MIT, ISC и тому подобные) здесь скорее исключение.


                  Это как-то мешает указать "См. текст лицензии в файле LICENSE.mit" или "LICENSE.lgpl" и т.п.? Зачем весь текст именно в каждый файл писать?

                  Вы вообще читали, что я написал? От указанного диапазона отсчитываются 70/90/120 лет на которые распространяется copyright. Многие там указывают только один год (когда код написан), этого вполне достаточно. Изменять после этого его не нужно, это не год последней модификации. Если были существенные изменения, то могут указывать диапазон, в котором начало не меняется (год когда код написан), а конец соответствует текущему году, когда эта тяжелая модификация была сделана.


                  1. Mingun
                    11.02.2017 19:35

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


                    1. grossws
                      11.02.2017 23:43

                      Я бы сказал, что во многих случаях это просто карго-культ, в значительной части случаев — американский и европейский рынок. У нас ещё настолько не устроились, определение свободных лицензий-то в ч. 4 ГК РФ относительно недавно.


        1. Am0ralist
          11.02.2017 19:53
          +1

          PVS-Studio вот хочет комментарий до информации о лицензии (в первых двух строках), да и ещё с довольно странным текстом. Ну и условия использования таковы, что для большинства не-хобби open source проектов это будет blocker'ом.

          Если честно, пока это единственный комментарий, который не вызвал у меня ответного «так в чем же проблема?».


      1. kekekeks
        11.02.2017 13:30
        +5

        Объясняю. Для получения какой-то пользы от статического анализатора, его надо гонять чуть ли не на каждый билд на CI-сервере. Соотвветственно, эти комментарии в коде необходимо держать на постоянной основе. Выдавать им индексируемую гуглом рекламу в 2300 исходных файлов на проекте на гитхабе с 190 форками и 2000 звёздочек я лично не собираюсь, это превышает пользу, которую проект может потенциально извлечь из их чудо-анализатора. Соответственно, когда будет стоять выбор "какой анализатор использовать", я выберу их конкурента, которому достаточно плашки.


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


        Как-то вот так.


        1. Am0ralist
          11.02.2017 14:58
          -2

          это превышает пользу, которую проект может потенциально извлечь из их чудо-анализатора

          Почему? Проект сдает данное место под платную рекламу? Ну ок, сдайте место, получите бабло, купите полную версию.
          в 2300 исходных файлов на проекте на гитхабе с 190 форками и 2000 звёздочек

          И вы реально проверяли, что пользы не будет?
          К тому же, смотрим обратное: все работающие с этим проектом люди смогут с данным проектом на постоянке использовать PVS-studio без лишних телодвижений, а не только один-два разработчика, которому выдадут ключи.
          Я объясняю причины, по которым не буду использовать их продукт по этой «бесплатной» программе.

          Вы — один решаете за весь проект, я правильно понял?


          1. lastmac
            11.02.2017 16:51
            +6

            Напишите, пожалуйста, есть ли у вас большие открытые проекты которыми пользуются люди и в который вы вставили эти строки, комментари в каждый файл?

            К чему это я?, а к тому, чтобы понять вы пишете предметно или о «своей» теории.

            У меня есть проект которым пользуются люди и который я развиваю, продвигаю проект написанием статей и прочим. Конкретно ко мне приходили в почту люди от указанной выше фирмы и предлагали вставить комментарии в каждый файл в проекте, в 200+ файлов. Грубо говоря, посланы они были вежливо ровно так же как описывает kekekeks
            Выгода от вставки этих комментариев не покрывает нанесенный ущерб репутации проекта, дискредитации проекта.

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

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

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


            1. Am0ralist
              11.02.2017 16:59
              +2

              Я пытаюсь понять в чем именно заключается:
              «нанесенный ущерб репутации проекта, дискредитации проекта»?
              Реальный.

              В том, что все будут знать, что его проверяют статическим анализатором?


              1. lastmac
                11.02.2017 17:23
                +2

                На вопросы вы не отвечаете, но ждёте чтобы на ваши ответили. Ну ладно, один раз это прокатит.

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

                При этом, комментарий настолько дебильный и рекламный, именно дебильный и рекламный, что не в какие ворота не лезит. Более нагло было бы написать ещё: Теперь проект принадлежит компании… Выглядит это как вмешательство в проект.

                Я не уверен, но если бы это была последняя строчка комментария в файле, вроде:
                /* Checked with PVS Studio (link) */, но и то, и то разместить такое не каждый сможет.

                Когда весит плашка, где-то в реадми то люди с гордостью говорят: а этот проект проверяется Х софтиной, отлично. Но PVS Studio не имеет такого «авторитета», как скажем, Coverity.

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


                1. Am0ralist
                  11.02.2017 18:18
                  +6

                  На вопросы вы не отвечаете

                  На аргумент «сперва добейся»? А что помешает двинуть ворота дальше независимо от ответа?

                  Именно последнее я наблюдаю на протяжении всех лет публикаций в этом блоге:
                  — Дорого, сделайте дешевым для мелких разрабов!
                  Ок, сделали отдельный инструмент за 300$
                  — Дорого, надо баксов по 30,20,15,10, 5 (в зависимости от произносившего)!
                  Ок, сделали вообще бесплатный вариант для опенсурс вариантов.
                  — Да вы офигели, требуете комменты какие-то вставлять?

                  Да даже если сделают плашку, такое ощущение, найдутся те, кто начнут требовать за нее оплату. Реклама же!

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

                  И тут бац, они оказывается используют проф.инструменты, дабы написать более корректный и безопасный код. Какая дискредитация и урон имиджу проекта!

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

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

                  Вот этого аргумента в изначальной «наезде» нет. Там наезд на то, что вообще требуется комментарий. О чем и говорилось выше — постоянно в сообществе возникает движение с отодвиганием ворот требований. Каждый раз на смену требующих одно, приходят другие, которые будут требовать другое.

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

                  А изначальный наезд — нет. Как и вашу нераскрытую позицию, что же конкретно наносит «ущерб репутации проект», а что занимается его «дискредитацией»

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

                  Ах да:
                  Более нагло было бы написать ещё: Теперь проект принадлежит компании…

                  Вот это было явное передергивание, некорректная аналогия (которая вас очень хорошо характеризует) и вообще непрофессиональное поведение.


                  1. lastmac
                    11.02.2017 18:46
                    +2

                    Во-первых, я пишу лично от себя, как я это вижу имея какой-то проект. Не в теории.
                    Меня кажется, вы не понимаете, что опенсорс денег выедает не мало, это такой же бизнес, там свои законы и свои методы заработка. Я не перехожу на личности и не пытаюсь оценивать вас или кого либо из разработчиков. Я высказываю почему это плохо для меня, более того и для многих разработчиков которых я знаю, но тут я могу писать только за себя.
                    Тут не действует метод «назло бабушке уши отморожу», тут конкретно речь о том что создатели хотят пиарится за счёт открытых проектов. Создателям софта говорят, что мы тоже тратим деньги/время и их просьба должна быть соизмерима. Но вы и прочие уверены, что если опенсорс, то там все бесплатно и вообще, должны ещё спасибо вам говорить. Нет, мир там немного сложнее.


                    1. grossws
                      11.02.2017 19:23
                      +1

                      Не считая того, что их предложение не для open-source, а для некоммерческих проектов. Т.е. Linux, Apache HTTP server, nginx, openssl, xorg, libreoffice и безумное количество других не подходят под из предложение (даже не из-за положения или текста комментария, а т.к. они не являются некоммерческими). А в их проверке есть польза всем.


                    1. Am0ralist
                      11.02.2017 19:29
                      +7

                      Итого, я не вижу никакого подтверждения слов:

                      не покрывает нанесенный ущерб репутации проекта, дискредитации проекта.

                      Слова — громкие, но в чем суть-то?
                      Создателям софта говорят, что мы тоже тратим деньги/время и их просьба должна быть соизмерима

                      Соизмеримо чему? И в чем она не соизмерима? Кому-то может казаться, что соизмеримо будет доплачивать ему деньги, и? Что выступает чашами весов для сравнения?
                      И вообще, кто решает?
                      Мне вот казалось, что опенсорс отдает вопрос, как именно можно использовать софт на откуп разработчиков ПО. (Пара слов для примера: «вирусная» GPL.)

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

                      Где я это писал? Конкретную цитату можно? Не имею таких иллюзий.

                      Я лишь уверен, что использование PVS-Studio — бесплатно при выполнении ряда условий. Невыполнимого в требованиях я не вижу.
                      Ну, может кроме неприподъемного ЭГО каких-либо разработчиков, которые столько сил потратили, а на их детище собираются грязным образом пиариться злобные капиталисты (да, я утрирую опять, как можно интерпретировать некоторые сообщения и словосочетания).

                      Но вы бы могли мне указать конкретику и факты, а не рассуждений в духе «я разработчик, я так вижу».
                      Нет, мир там немного сложнее.

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


                      1. lastmac
                        11.02.2017 19:52
                        +1

                        Ещё раз, я не теоретик, я практик. Даю обратку ребятам разрабатывающим нужный/правильный софт. Они мне сами написали, не я к ним лез. Я рассказал почему оно не для меня. Если им интересно только положительное мнение то что же, но вот реальный проект который хотел бы использовать их продукт, но условия дикие. Вы, теории можете разводить тут сколько вам угодно, я же пишу предметно.


                        1. Am0ralist
                          11.02.2017 20:00

                          я же пишу предметно.

                          Нет, единственный «предметный» ответ мне поступил выше от grossws.

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

                          Но я вас понял, поэтому раскланиваюсь и остаюсь в отношении ваших утверждений при своем мнении.


              1. 0xd34df00d
                12.02.2017 00:15
                +11

                Я не хочу писать в комментариях к своему опенсорс-проекту, который мне помогает почти в каждом моём трудоустройстве, что-то в тоне «Dear PVS-Studio…». Ну, примерно по тем же причинам, по которым я не прихожу на собеседование в футболках с подобным метал-артом.


                Кстати, давайте ещё в каждом коммите писать «Dear github, please host this commit». И ещё в хедер добавим — «Dear Apple, please let me build this file with clang. Dear Stallman, please disregard that I use non-GNU software for this project and please give me the moral rights to also use gcc.». И тогда заживём. Ну а почему нет?


                1. Am0ralist
                  12.02.2017 00:39
                  -6

                  Я уже выше отписал:

                  Что текст самого комментария можно сделать более нейтральным… — эту аргументацию я понимаю.

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


                  1. 0xd34df00d
                    12.02.2017 00:45
                    +7

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


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


                    Тут, конечно, можно начать говорить о разных политиках распространения продукта, о этаком мягком vendor lock-in, о приучении потенциальных разработчиков к твоему инструменту чуть ли не с грудного молока, но это всё уже обсасывалось столько раз, что я не уверен, что стоит об этом начинать снова.


                    1. Am0ralist
                      12.02.2017 01:26
                      -4

                      Ну, просто через какое-то время таких блужданий обсуждения ты сидишь такой и:
                      — Ээээ… Ребят? Да я ж об этом не спорю. Я ж того. Ну там, раньше. (здесь должен был быть растерянный смайлик, но тут не место для них)


                1. worldxaker
                  12.02.2017 01:31
                  -3

                  но дело в том что github изначально бесплатный продукт, gcc вообще свободный, тут-же чисто комерческий продукт, можно даже сказать что b2b, и тут за две гребаные строки в твоих сорсах они дают возможность юзать сей продукт совершенно бесплатно


                  1. 0xd34df00d
                    12.02.2017 02:08
                    +6

                    github не очень бесплатный (ближе к концу страницы там). Микрософтовский компилятор тоже чисто коммерческий продукт. Coverity тоже чисто коммерческий продукт. Интеловские библиотеки и инструменты тоже вполне себе коммерческие.


                    1. worldxaker
                      12.02.2017 02:52
                      -3

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


                      1. 0xd34df00d
                        12.02.2017 02:55
                        +2

                        Так о том и речь. Для вас как студента вообще куча инструментов доступны бесплатно.


                1. Mingun
                  12.02.2017 11:24
                  -1

                  Ну так не пишите, никто же не заставляет. Захотите воспользоваться без написания этих строчек — купите лицензию. Тем более, если он так вам помогает, что прям никуда без него.


            1. Mingun
              11.02.2017 17:18
              +4

              То есть, они ничего не использовали для анализа кода, но вот почему-то взяли и ушли к конкурентам.

              Т.е. ЧСВ настолько хлещет через край, что будь PVS-Studio даже в несколько раз лучше конкурентов, использовать мы ее не будет, лишь бы не дай баг не дать кому-то рекламу бесплатно (более того, вы серьезно думаете, что подобная реклама хоть на кого-то повлияет в выборе анализатора для проекта на сотни тысяч строк? Или все же на качество анализа смотреть будут?).


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


              1. lastmac
                11.02.2017 17:32
                +3

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


                1. Mingun
                  11.02.2017 19:15
                  +2

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


                  Нежелание в первом случае раскрывать свое ноу-хау и/или многолетный опыт вполне понятно.


                  Нежелание во втором улучшать общий код из-за кому-то из манагеров показавшимся унизительными пары строчек как раз и говорит о крайне раздутом ЧСВ. Прям так и слышится "Вы никто, а мы (та-дам!!!) open source(!!!) проект, целуйте нас в попу)". В конце концов, если вам это не надо, то проходите мимо, незачем испражняться по пути.


                  1. mva
                    12.02.2017 00:21
                    +7

                    1) Ну так ведь и проходили мимо, пока "какие-то манагеры" из сабжевой компании не начали плакаться что "ой, мало юзеров используют".
                    На что был дан ответ почему именно мало используют.
                    На этот ответ вы пишете "не нравится — проходите мимо".
                    Ну так и проходим ведь.
                    Но ведь плачутся что мало юзеров :)


                    2) не знаю как остальные "нытики", а вот если бы была плашка вместо комментария такой унизительной формулировки, да ещё и до лицензии, я бы вполне добавил. Проверять ещё одним дополнительным анализатором лишним не будет. Если он не требует запредельного :)
                    А если требует, то да, даже если бы (если бы!) он был на голову выше конкурентов, я бы тридцать раз подумал стоит ли такой текст комментария в каждом файле проекта этой вот разницы с конкурентами, или я лучше сам навелосипежу аналог, зато буду ментально здоров.


                    3)


                    раскрывать ноу-хау
                    многолетний опыт

                    а) и в чём же, интересно, может быть ноу-хау в статическом анализе? В умении читать стандарт и писать правильные регэкспы (в пункте "б" напишу почему регэкспы)?


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


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


                    И вот он как-то ещё несколько лет назад (ну, тогда это не С++17 был, конечно, а тогдашний свежевышедший стандарт) натравливал триальную версию сабжевого продукта на свой проект...


                    И, судя по выхлопу, было очень похоже на то, что сабж тупо проверяет по списку регэкспов. И если регэксп сфейлился — выдаёт какашку. В то время, как ни компилятор не возмущается (да-да, в них тоже есть анализ некоторых из вещей, на которые может ругаться сабж, и эти какшки были как раз из таких), ни статический анализатор в том же "шланге", ничего. А сабж — да. Потому что не интерпретировал, а парсил.


                    Так что повторю вопрос ещё раз? Многолетний опыт написания регэкспов? Так он и у меня немаленький! Правильный регэксп = ноу-хау? Тогда знаете сколько их у меня? Может мне тоже начать продавать их?


                    // с такой же "офигенной" политикой лицензирования, как у сабжевой компании, ага :)


                    1. 0xd34df00d
                      12.02.2017 00:30

                      И вот он как-то ещё несколько лет назад (ну, тогда это не С++17 был, конечно, а тогдашний свежевышедший стандарт) натравливал триальную версию сабжевого продукта на свой проект...

                      Это не я, это чувак из g@cgr был, если что. Мне было трудно натравливать в виду отсутствия у меня настроенного рабочего окружения с Windows.


                      И, судя по выхлопу, было очень похоже на то, что сабж тупо проверяет по списку регэкспов. И если регэксп сфейлился — выдаёт какашку.

                      Надо отдать должное, с тех пор они существенно улучшились. Впрочем, я уже два месяца как почти дописал статью про это дело, всё будет.


                    1. SvyatoslavMC
                      12.02.2017 00:41

                      Столько букв… а «регэкспы» то и не используются :D Уже столько раз писали об используемых технологиях.


                      1. mva
                        12.02.2017 01:00
                        +4

                        про регэкспы в этих буквах написано довольно мало.
                        И, не смотря на то, что про используемые технологии "уже столько раз писали":


                        0) а разве "столько букв" (информативное расписывание каждого пункта со всеми доводами) — это недостаток?


                        1) на заборе тоже можно написать, а без возможности посмотреть за этот забор приходится только верить автору надписи на слово.


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


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


                        1. SvyatoslavMC
                          12.02.2017 01:21
                          -4

                          почему же так сабж практически никому из потенциальных клиентов не интересен

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

                          По разработке ПО вообще много книг и методик. Они совсем не о том, «как писать на C++ и что появилось в C++17», поэтому не всегда интересны рядовому программисту, а зря.


                    1. Andrey2008
                      12.02.2017 10:38
                      +4

                      — А это правда, что Иван Иванович выиграл машину в лотерею? — Правда. Только не машину, а тысячу рублей. И не в лотерею, а в преферанс, и не выиграл, а проиграл…

                      1. Мы не раз писали, что на регэкспах невозможно выполнять хоть сколько-то серьезный статический анализ кода. Наиболее полно этот момент изложен в статье ещё аж 2010 года: "Статический анализ и регулярные выражения".
                      Обзорно про внутреннее устройство анализатора недавно была статья "Как PVS-Studio ищет ошибки: методики и технологии". Где опять-таки говорится, что регулярные выражения не используются. Вместо этого перечислены более серьёзные технологии, позволяющие находить сложные ошибки. Статический анализ только на первый взгляд кажется просто программкой, которую можно написать за месяц. На самом деле этот айсберг, над поверхностью воды от которого торчит только малая часть, от чего и возникают всякие заблуждения. Подробнее про это мы попробуем рассказать на C++ Russia 2017. Приглашаю на доклад «Как потратить 10 лет на разработку анализатора кода».

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

                      3. По поводу как всё плохо. У меня вызывает сомнения качество эксперимента. Уже не раз было, что как доходит до дела, то выясняется не низкий уровень анализатора, а низкий уровень того, кто его использует. Классическая случай на эту тему: "Народ против PVS-Studio: дубль первый". См. мой комментарий.


                    1. Mingun
                      12.02.2017 11:56
                      -1

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

                      Может и плакались, что в опенсорсе мало используют (и это логично — потому что нельзя было использовать бесплатно и не все готовы ради хобби проекта покупать дорогущий продукт). Пошли навстречу, сделали бесплатно. Но вы же понимаете, тут не благотворительность, поставили условия, чтобы отсечь тех, кому и денег жалко, и ЧСВ чешится. Я считаю, вполне правильно сделали — от таких личностей только проблемы будут, вечное нытье и распальцовка "вы мне должны". Да ну нафиг, лучше спать спокойно.


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

                      Ага-ага, навелосипедите. Потом год отлаживать будите, еще пару лет всякие фичи дополнительные вставлять, да граничные случаи отлавливать, там и новый стандарт уже, еще 5 лет на его поддержку (не забываем про параллельную правку багов). Боюсь, своим проектом заниматься некогда будет. Ну или поймете, что это ваше, через 10 лет сравним с PVS-Studio и Coverity ;)


                      И сабжевая компания ему даже предлагала год (или типа того) лицензии на свой продукт за обещание (!) написать положительный (!) отзыв

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


                      Так что повторю вопрос ещё раз?

                      Тут вы сами выдумали, какие технологии используются под капотом на основе информации от ведомства ОБС многолетней давности и просите прокомментировать. Извините, не буду :)


                      1. grossws
                        12.02.2017 20:26
                        +4

                        опенсорсе мало используют (и это логично — потому что нельзя было использовать бесплатно и не все готовы ради хобби проекта покупать дорогущий продукт)

                        Вы понимаете разницу между хобби-проектом, non-commercial open-source software и free/libre open-source software?


                  1. 0xd34df00d
                    12.02.2017 00:27
                    +5

                    Нежелание во втором улучшать общий код из-за кому-то из манагеров показавшимся унизительными пары строчек как раз и говорит о крайне раздутом ЧСВ. Прям так и слышится «Вы никто, а мы (та-дам!!!) open source(!!!) проект, целуйте нас в попу)».

                    Нет, просто есть некоторая опенсорс-этика. Гитхаб не требует упоминать их в каждом коммите, clang не требует наличия особой строчки в каждом файле, и так далее.


                    Так вот, когда появляются какие-то идеи, с этой этикой плохо совместимые, начинается некоторый когнитивный диссонанс.


                    1. Mingun
                      12.02.2017 11:39
                      -4

                      Давайте заглянем хотя бы в википедию:


                      Э?тика (греч. ??????, от др.-греч. ???? — этос, «нрав, обычай») — философская дисциплина, предметами исследования которой являются мораль и нравственность[1]

                      Что аморального или безнравственого в шутливой просьбе, дающей легальное право пользоваться анализатором?


                      Гитхаб сам по себе упоминается каждый раз, когда вы пишите git clone или даете ссылку на репозиторий. clang — проект с открытым кодом, странно, чего бы он это стал что-то требовать.


                      1. grossws
                        12.02.2017 20:30
                        +3

                        Гитхаб сам по себе упоминается каждый раз, когда вы пишите git clone

                        git clone https://git-wip-us.apache.org/..., где упоминание github'а?


                        clang — проект с открытым кодом, странно, чего бы он это стал что-то требовать.

                        А вообще он что-то требует, если вы, конечно, читали лицензию, с которой согласились при его использовании.


                      1. 0xd34df00d
                        12.02.2017 21:31
                        +4

                        Что аморального или безнравственого в шутливой просьбе, дающей легальное право пользоваться анализатором?

                        В просьбе — ничего. Но вы процитированную вами статью-то почитайте чуть далее первой фразы: «Термин «этика» иногда употребляется также для обозначения системы моральных и нравственных норм определённой социальной группы.»


                        clang — проект с открытым кодом, странно, чего бы он это стал что-то требовать.

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


            1. Andrey2008
              11.02.2017 21:02
              +2

              Если я правильно понял, речь идёт о проекте Modest. Маленький, качественны проект, в добавок, проверяемый Coverity. Анализатору PVS-Studio развернуться здесь негде, и я готов согласиться, что он не обязателен проекту.

              Однако я не понимаю, что вызывает такое отторжение вообще и от наших комментариев в частности. Программа SourceMonitor говорит, что код на 18 процентов состоит из комментариев. На первый взгляд, мне кажется, что комментарии-заголовки занимают 15% от всего проекта. Так чем-же не угадили ещё 2 строчки. Неужели Вы так сильно переживаете, что PVS-Studio потеснит Ваше имя с первых двух строчек… :)

              Заголовок
              /*
               Copyright (C) 2016 Alexander Borisov
               
               This library is free software; you can redistribute it and/or
               modify it under the terms of the GNU Lesser General Public
               License as published by the Free Software Foundation; either
               version 2.1 of the License, or (at your option) any later version.
               
               This library is distributed in the hope that it will be useful,
               but WITHOUT ANY WARRANTY; without even the implied warranty of
               MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
               Lesser General Public License for more details.
               
               You should have received a copy of the GNU Lesser General Public
               License along with this library; if not, write to the Free Software
               Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
               
               Author: lex.borisov@gmail.com (Alexander Borisov)
              */


              1. skobkin
                11.02.2017 22:51
                +5

                Ну лично мне, например, не нравится идея плодить кучу комментариев в проекте вместо одного упоминания вашего проекта на самом видном месте: в README.{md,txt,rst}, который отображается на главной странице репозитория. Я и лицензию-то в каждый файл не буду вставлять, если это не будет строго необходимо (частичное лицензирование). При этом я никакого негатива к PVS не испытываю. Но вот плашечку на главной (и на сайте бонусом) я бы с благодарностью повесил, а сорцы все править не стал бы.
                Кстати, в своих проектах (не C++) я использую сервисы типа CodeShip и Scrutinizer. Их плашки у меня установлены (хотя они этого не требуют). Но если бы они хотели от меня модификации исходников, я бы от них отказался.


                1. Am0ralist
                  12.02.2017 01:57
                  -4

                  А мне вот не нравится, что за последние несколько лет (порядка 5) в среднем я раз в день сталкиваюсь с ошибкой какой-нибудь программы:
                  — Опенофис, падающий во время работы из-за того, что история изменений съела гига полтора? Легко.
                  — Рейд-контроллер, который полностью потерял инфу о сконфигурированном SAS рейде при подключении к выключенному серверу Sata диска? Пффф…
                  — Один альтернативный продукт для работы с офисными файлами, который выжрал 1,5 гига и тоже упал при попытке открыть мой ods? Ха-ха-ха. Не смешно.
                  — Программа для 3D проектирования, у которой некоторые «умные» функции определения сторон начинали глючить в виде «прямоугольная изометрия»? Да, я извращенец и мне нравится проектировать именно так!
                  — Программа, которая не отображает данные, если во время их загрузки и выводе на экран была не в фокусе? А программист точно в c++ умеет окошки писать?

                  Вот куда мне жаловаться на то, что мне нифига этот подход разработчиков не нравится?
                  Подскажете?


                  1. SvyatoslavMC
                    12.02.2017 02:08
                    -4

                    Отличные доводы. Присоединяйтесь к обсуждению.


                  1. 0xd34df00d
                    12.02.2017 02:16
                    +4

                    Я, конечно, не разработчик OpenOffice и программ для 3D-проектирования, и вообще мой опыт исключительно нишевый, субъективен и всё такое, но опыт же подсказывает, что статический анализ находит весьма малую часть проблем, приводящих к такому. Значительная часть проблем возникает из-за изначально криво придуманного алгоритма, кривых инвариантов и тому подобных вещей, которые статический анализ в обозримом будущем едва ли научится находить. Поможет формальная верификация, построение формальных же моделей и прочие подобные вещи.


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


                    1. SvyatoslavMC
                      12.02.2017 02:30
                      +1

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

                      Критичность находимых багов статическими анализаторами сильно занижена. АЭС не взорвётся, конечно (надеюсь), но пользователей тысяч разных программ они выводят из себя. Опыта одного человека недостаточно, чтобы сделать подобный вывод.

                      На днях буду писать статью о проверке одного крутого проекта и буду делать это с особым пристрастием. Там будет видна эта «весьма малая часть проблем» и как она потенциально сказывается на работе продукта.


                      1. 0xd34df00d
                        12.02.2017 02:34
                        +4

                        Ну, я сразу сказал, что мой опыт весьма специфический.


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


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


                        1. SvyatoslavMC
                          12.02.2017 02:44

                          Тут вы привели весьма малую часть возможностей статического анализа.

                          А сколько боли принесёт ошибка в матанном алгоритме с приоритетом операций или использование одноимённых переменных из-за опечатки в одной букве? Это по-прежнему малая часть возможностей, но хотя бы речь идёт о серьёзных проблемах.


                          1. 0xd34df00d
                            12.02.2017 02:53
                            +3

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


                            Против опечаток в одной букве на удивление хорошо помогает семантическая раскраска, кстати. Против кривых операторов сравнения или равенства — финт со сравнением через std::tie.


                            Веселее бывает, когда вы хотите сигмоиду, например, взять от скалярного произведения вектора признаков на вектор весов, а объект попался сильно нетипичный, скалярное произведение равно, скажем, минус сто. Ну вы и делаете std::exp(100) по факту, получаете бесконечность, которая после ещё пары преобразований превращается в NaN, и оно начинает расползаться по данным. И даже это поймать (и не пустить в продакшен) достаточно легко, но найти, где именно случается лажа, очень сложно. А ведь это тоже весьма, как бы это сказать, локальная и низкоуровневая ошибка.


                            В конце концов, я же не говорю, что статический анализ бесполезен, отнюдь. Просто он в каноническом виде внешних по отношению к языку инструментов (будь то PVS, Coverity, что хотите) очень далёк от серебряной пули от всего.


                            1. SvyatoslavMC
                              12.02.2017 03:05

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

                              выявляются мелкими тестами

                              Не удержался. Что я вспоминаю при упоминании мелких тестов и их покрытии кодовой базы:

                              unsigned int count = GetCount();
                              
                              assert(count >= 0)
                              

                              Как говорится, «основано на реальных событиях»


                              1. 0xd34df00d
                                12.02.2017 03:20
                                +2

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


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


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


                                1. SvyatoslavMC
                                  12.02.2017 11:13

                                  clang-3.9.1/include -std=gnu++1z

                                  К сожалению, современные компиляторы не так оперативно внедряются на практике.


                                  1. 0xd34df00d
                                    12.02.2017 21:32

                                    Выбрал там clang 3.1 и gcc 4.4.7, они оба тоже ругаются. Младше версий там нет, к сожалению.


                                    1. SvyatoslavMC
                                      13.02.2017 09:34

                                      А теперь пособирайте открытые проекты и посчитайте, сколько сотен мест там найдётся. Я даже в статьи такие места не добавляю, ибо очевидно, но никто не думает исправлять.


                                  1. 4144
                                    13.02.2017 10:38

                                    современный, думаю имеется в виду, которому меньше 10 или 20 лет после релиза. На пример вот gcc 4.4 http://melpon.org/wandbox/permlink/UHC7Ee0wWxncUxOx находит проблему


                  1. skobkin
                    12.02.2017 12:32
                    +4

                    Опенофис, падающий во время работы из-за того, что история изменений съела гига полтора? Легко.

                    Казалось бы, при чём тут ошибки в Open/LibreOffice? А, это, наверное, потому, что они до сих пор PVS-Studio не пользуются.
                    Ну так это, кстати, ещё вопрос: какой из сторон выгоднее сделать для PVS интеграцию плашечкой вместо правки сорцев, если в результате в проекте класса LibreOffice на главной репозитория появится плашечка PVS-Studio. По-моему, это выгоднее всем: реклама производителям анализатора и повышение качества кода в проекте. Но разработчики PVS искуственно ограничивают потенциальную аудиторию несмотря на то, что они (аудитория) всё равно в большинстве, вероятнее всего, не стали бы покупать такой продукт.
                    Остальные части вашего комментария к сути проблемы имеют мало отношения, поэтому я опущу ответ на них.


                    1. Am0ralist
                      12.02.2017 16:44
                      -6

                      Казалось бы, при чём тут ошибки в Open/LibreOffice?

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

                      С учетом, что вы вообще отвечали не на мой комментарий, а на свои какие-то имеющие мало отношение к нему проекции, то я опущу ответ на них. Тем более что уже отвечал на это в других комментариях, которые вы проигнорили.

                      Ах да, ну и на хабре может быть мнение только ваше и не верное. Особенно, если у вас кармы хватает снижать ее тем, кто так не может.


                      1. Andrey2008
                        12.02.2017 16:58

                        Кстати, регулярные проверки LibreOffice пошли бы ему на пользу. Там много интересного.


                        1. Am0ralist
                          12.02.2017 18:11

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

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


                      1. skobkin
                        12.02.2017 18:40
                        +1

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

                        А я, вроде, и не сравнивал. Впрочем, если честно, мне вообще трудно распарсить, что именно вы пытались сказать в вашем комментарии. А оправдание тем, что пользователь важнее — это замечательно. Так можно ведь (утрируя) и требование отдать почку в обмен на бесплатную лицензию оправдать тем, что почка-то одна, а пользователей — миллионы.
                        Ах да, ну и на хабре может быть мнение только ваше и не верное.

                        [sarcasm]Вы уловили суть![/sarcasm]
                        Особенно, если у вас кармы хватает снижать ее тем, кто так не может.

                        Пресвятой Торвальдс, мы уже о Карме! Если вам будет интересно, я не трогал карму ни одного из комментаторов в этом треде. Для меня вообще изменение кармы должно сопровождаться чем-то серьёзным, а не глупым срачиком на тему правки сорцев.

                        Я свою позицию по этому вопросу уже выразил. Мне такие требования кажутся странными и я, если буду писать проект на C++ обойду PVS стороной и выберу конкурента, которому добровольно (Coverity, вроде, не требуют плашек) сделаю такую же рекламу, но без мусора в исходниках. Не потому, что мне не нравится PVS, а потому, что я считаю такое требование странным и завышенным.
                        В итоге, все останутся довольны: у меня будет статический анализатор, у Coverity появится потенциальный платный клиент, а PVS будут рады, что проект, разработчик которого счёл их требования завышенными, не использует их продукт. Секунду, или последнее звучит странно? А нет, тут уже несколько раз написали, что так и задумано.


              1. 3aicheg
                13.02.2017 04:34

                угадили

                Хорошая опечатка :)


          1. 0xd34df00d
            12.02.2017 00:09

            И вы реально проверяли, что пользы не будет?

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


            Всё никак статью про этот опыт не закончу. Да что ж такое-то, а?


            1. Andrey2008
              12.02.2017 00:18

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


              1. 0xd34df00d
                12.02.2017 00:25
                +1

                Есть проекты, где ошибки критичны, а где нет.

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


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

                Но, что самое любопытное, я-то тоже прихожу! Начиная от clang'овского static-analyzer и clang-tidy и того же Coverity (они, наконец, починили анализ в моей конфигурации, уау) и заканчивая рантайм-анализом через clang'овские же санитайзеры.


                1. Andrey2008
                  12.02.2017 10:43

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

                  Я думаю таких немало. Что Вы думаете о багах в таком проекте как Trans-Proteomic Pipeline? Две статьи о проверке: 1, 2.


              1. mva
                12.02.2017 00:29
                +4

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


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


                ====


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


                Поэтому правильным было бы сказать не


                Я не могу серьезно воспринимать комментарии, где плата в виде «комментария» объявляется слишком большой.

                а


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


                1. SvyatoslavMC
                  12.02.2017 01:09

                  А вот в остальных проектах, где ошибки некритичны, разработчики имеют право воротить нос

                  Здесь уже несколько раз поднимался вопрос этики при работе с open-source. А разве этично так относиться к остальному софту, что не оборонка, опасное производство и т.п.?


                  1. mva
                    12.02.2017 01:22

                    Если вы хотите получить ответ на этот комментарий, сначала скажите что приняли к сведению высказанные мысли о том, что:
                    1) формулировка комментария для разблокировки триала — слишком унизительная и подлежит пересмотру
                    2) требование помещать его выше лицензии — имеет смысл так же пересмотреть
                    3) имеет смысл подумать о "плашках" в README* вместо комментариев.


                    и что обещаете обсудить внутри компании и рассказать о своём решении по этим вопросам.


                    Тогда мы поймём что вы настроены на серьёзное общение (а не на "огрызание"), и будем так же рады продолжить дискуссию


                    1. SvyatoslavMC
                      12.02.2017 01:50
                      +1

                      На страницах своего блога я серьёзен как никогда.

                      Ответ по всем пунктам: всё так и задумывалось.

                      Объясняю:

                      1) коммерческие open-source обходят стороной
                      2) индивидуальные разработчики радуются
                      3) разработчики open-source радуются
                      4) комментаторы негодуют

                      Мой вопрос: почему же к пользовательскому софту надо относиться хуже критичного?


                      1. 0xd34df00d
                        12.02.2017 02:11
                        +3

                        Мой вопрос: почему же к пользовательскому софту надо относиться хуже критичного?

                        Потому что вечерний опенсорс — он just for fun. А фана в мольбах мало.


                        1. SvyatoslavMC
                          12.02.2017 02:16

                          Just for fun тут не причём. Такие люди более, чем довольны нашей акцией.

                          Что вы скажете о «не критичных» багах в этих проектах?


                          1. 0xd34df00d
                            12.02.2017 02:19
                            +3

                            Just for fun тут не причём. Такие люди более, чем довольны нашей акции.

                            Какие — такие? Я могу вам продемонстрировать как минимум одного недовольного, например.


                            Что вы скажете о «не критичных» багах в этих проектах?

                            Баги это плохо. Не делайте баги.


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


                            Глупо предъявлять к офисному пакету те же требования по качеству и методологиям разработки софта, что используются в медицинских или космических железках.


                            1. SvyatoslavMC
                              12.02.2017 02:38

                              Вести параллельную разработку и получать кучу сертификатов, наверное, глупо. А вот воспользоваться статическим анализатором можно было бы. Даже бесплатные аналоги простаивают.


                              1. 0xd34df00d
                                12.02.2017 02:42

                                Конечно. Но тогда давайте определимся, какой именно тезис выдвигается для обсуждения:


                                1. Надо по возможности пользоваться статическими анализаторами даже для некритического софта, или
                                2. Надо пользоваться PVS в любом случае.


                                1. SvyatoslavMC
                                  12.02.2017 02:52
                                  -1

                                  Почему в любом случае то. Хоть как-то внедряйте методологию статического анализа.

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


                                  1. 0xd34df00d
                                    12.02.2017 02:54
                                    +1

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


                                    Хотя иногда им бы хотя бы с -Wall начать собираться, да.


                      1. grossws
                        12.02.2017 04:55
                        +2

                        разработчики open-source радуются

                        А тут вы неправы, о чём вам здесь (и в предыдущих тредах) многократно писали.


                        1. Andrey2008
                          12.02.2017 10:49
                          +1

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


                          1. skobkin
                            12.02.2017 12:49
                            +3

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

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


                          1. grossws
                            12.02.2017 20:18
                            +3

                            Ложная дихотомия. Кроме тех кто доволен и использует, недоволен/комментирует и не использует есть ещё куча категорий: начиная от тех кому просто пофиг на ваш продукт, заканчивая теми кто недоволен, но не имеет достаточной мотивации, чтобы писать на хабр.


                            Ну и количество благодарностей нерелевантно оспаривоемому тезису, если, конечно это не благодарности от серьезных FOSS проектов, т.к. в нашем подлунном мире под open-source по умолчанию понимают free/libre open-source software, а не non-commercial open-source software.


                            Не считая того, что вы или ваш коллега в предыдущем посте явно говорили что F(L)OSS — не ваша аудитория. И после этого заявлять, что «разработчики open-source радуются» — это какое-то двоемыслие. Проблема крестика и трусов.


                        1. SvyatoslavMC
                          12.02.2017 11:15
                          -3

                          4) комментаторы негодуют

                          Никто не забыт.


                          1. skobkin
                            12.02.2017 12:51
                            +1

                            В чём это выражается?


                            1. SvyatoslavMC
                              12.02.2017 12:56
                              -2

                              Выделили в отдельную категорию. Очевидно же.


                              1. grossws
                                12.02.2017 20:19
                                +5

                                Хамство — это ваша корпоративная или личная черта?


                      1. skobkin
                        12.02.2017 12:43
                        +2

                        1) коммерческие open-source обходят стороной

                        А могли бы вас рекламировать. Всё равно ведь не покупают.
                        2) индивидуальные разработчики радуются

                        а) Во-первых, не все. В комментариях явные примеры разработчиков, которые радовались бы, но не радуются.
                        б) Если речь о частных — могли бы и покупать, либо открыть код и рекламировать вас плашкой со ссылкой на главной.
                        3) разработчики open-source радуются

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


                      1. skobkin
                        12.02.2017 12:47
                        +3

                        Ответ по всем пунктам: всё так и задумывалось.

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


                1. Andrey2008
                  12.02.2017 10:47

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

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

                  А маленькие проекты могут использовать, а могут не использовать. Мы дали возможность, а решать им. На наш взгляд плата в виде комментария для них несущественна.


                  1. 0xd34df00d
                    12.02.2017 21:38

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

                    Почему вы так считаете?


      1. 0xd34df00d
        11.02.2017 23:35

        Надо от PVS-Studio в ответ потребовать упомянуть список проверенных проектов первой строчкой у них на сайте на каждой странице. Вот тогда будет честно!


        1. Andrey2008
          12.02.2017 00:02

          Я рад, что мы наконец-то хоть что-то правильно сделали.
          image


          1. 0xd34df00d
            12.02.2017 00:07

            Вас бы, чувствую, не устроила ссылка на описание списка статических анализаторов, которым проверяется проект, в комментарии после лицензии и всего такого.


            1. SvyatoslavMC
              12.02.2017 00:57
              -2

              В статьях всегда указываются используемые анализаторы. Это же круто исправить ещё больше багов после других инструментов.

              Не круто вешать плашки, а анализатором не пользоваться. Было множество случаев: разработчикам присылаешь статью с 40 багами, а они "… мы уже используем Coverity Scan...". Ну сорян, «пользуйтесь» дальше.


              1. mva
                12.02.2017 01:17
                +6

                Разработчикам нужно присылать не "статью с 40 багами" (особенно, учитывая её текст "вот тут, наверное, может быть, скорее всего, по-моему, мне кажется, я думаю, надо было написать вот так вот, а не вот так, а тут разработчик, наверное имел в виду вот это", а так же зачастую дерзкий и отталкивающий заголовок), а письмо (если нет багтрекера), или баг на багтрекер (если есть) вида (не дословно, но по сути):
                "мы, компания PVS-Studio, пишем очень мощный и удобный статический анализатор, который называется PVS-Studio.
                Мы нашли в вашем проекте 40 потенциальных багов, которые ваш текущий анализатор, скорее всего, не нашёл. Посмотрите, пожалуйста на список ниже, и, если что-то из этого окажется ложно-положительным срабатыванием, отправьте нам, пожалуйста, фидбек на e-mail такой-то.
                <список замечаний и комментарии к ним>
                С наилучшими пожеланиями,
                команда PVS-Studio
                "


                Вот тогда вас бы уважали и не отвечали "мы уже используем YYY, отвалите" даже не вчитываясь в ваше письмо.


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


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


                Так зачем же слушать каких-то шавокопенсорс-программистов и менять свой подход? Тратить силы и ресурсы на это… Фи, придумают тоже! Итак бабло неплохо течёт.


                1. SvyatoslavMC
                  12.02.2017 01:40
                  -2

                  Спасибо за пример. Надесь вы не решили, что мы пишем что-то вроде этого: «Hello my friend. Your code is shit!» :D

                  Я привёл пример из жизни, после которого плашками можно не меряться.

                  баг на багтрекер (если есть) вида (не дословно, но по сути):

                  Дословно и по сути? Когда мы работали с Unreal Engine 4, некоторые баги неделями разбирали разные команды своих разработчиков, чтобы исправить.


        1. Am0ralist
          12.02.2017 00:29

          Легко!
          Открываете любой свободный проект.
          Находите лицензию распространения его кода.
          Читаете строчку:

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

          После чего заставляете разработчиков выполнять условие соглашения.


          1. 0xd34df00d
            12.02.2017 00:32
            +4

            Не, если серьёзно, это противоречит что permissive-лицензиям, что копилефтным.


            А вообще идея моего комментария была в том, что это обоюдовыгодное сотрудничество, и не надо в другую сторону предъявлять те условия, мотивация которых мне, тем более, не очень понятна (вы всегда читаете комментарии в шапке опенсорс-проектов, которые берёте? я лично их глазами пропускаю почти всегда), которые в одну сторону не работают и никому в голову их предъявлять не придёт.


            1. Am0ralist
              12.02.2017 01:14
              +3

              вы всегда читаете комментарии в шапке опенсорс-проектов, которые берёте? я лично их глазами пропускаю почти всегда

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

              Однако, с другой стороны наличие комментария — это реально самый простой способ решить вопрос представления бесплатной лицензии: есть коммент — проверяй все, нет коммента и ключа — делай триал. Не надо давать ключи никому, не надо беспокоиться, что скоро их будут знать все (ну да, J3QQ4-H7H2V… не перебьют, но все же) или что кто-то заодно будет свой коммерческий проект пилить попутно (и не потому, что не будут, ибо будут, как ранее ломанную юзали).
              Я б туда еще обновлял инфу, какой именно версией последний раз проверялось.

              Так что само решение, с точки зрения логики — вполне понятное. А этические споры мне, как логику и сухарю, понятны слабо. Примерно как закон про нарушение чувства верующих…

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


              1. 0xd34df00d
                12.02.2017 02:28
                +1

                Я, почему-то, подозреваю примерно это же: в реальной жизни эти комментарии хорошо если кто заметит, вдвойне хорошо, если заметят те, кто вообще до этого не знали заранее про данную тему, а уж вообще отлично будет, если кто после подобного комментария пойдет искать «зачем» и узнает что-то новое.

                Да. Поэтому чего маркетологи PVS хотят добиться таким образом, мне не очень понятно. Манагеры-закупщики всё равно в комментариях этого не увидят, нечестные пользователи всё равно дальше будут нечестно пользоваться (см. ниже).


                Поэтому негодования мне и не понятны в большинстве своем.

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


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

                Это решается скриптом уровня


                find ./ -iname "*.cpp" -or -iname "*.h" -exec echo "Dear PVS, whatever" >> '{}'.new; cat '{}' >> '{}'.new; mv '{}'.new '{}' \;

                перед каждым билдом. Хоть коммерческим, хоть каким хотите. (Я скрипты писать не умею, так, мимо пробегал, но смысл понятен, надеюсь)


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

                Встречают по одёжке, к сожалению. Я где-то в соседнем треде писал, что уверен, что мне оффер сделали процентов на 10-15 выше только потому, что я пришёл в пиджаке и всём таком. Но там и фирма весьма крупная и официальная, впрочем.


                1. kekekeks
                  12.02.2017 12:40
                  +3

                  Если бы меня попросили, не знаю, сделать фотографию с листочком бумаги с аналогичной просьбой PVS в обмен на ключик

                  С вантузом в известном месте в известном наряде. И ведь некоторые фотографировались же.


                  1. skobkin
                    12.02.2017 12:58
                    +5

                    Ну вот и в сорцах мусорить желающие нашлись.


  1. maaGames
    10.02.2017 14:47
    +2

    Я правильно понял, что если сделать эти комментарии, то можно переходить к коду из списка ошибок без потери «триала» через 50 переходов? Т.е. получается полноценная полная версия за счёт двух строчек в каждом файле реализации?


    1. Andrey2008
      10.02.2017 14:48

      Да.


      1. Goodkat
        10.02.2017 15:48

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


        1. Andrey2008
          10.02.2017 15:51
          +3

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


  1. yurror
    10.02.2017 15:26
    +6

    use case, же, а не пользователь-чемодан


    1. sonya_fateeva
      10.02.2017 15:26
      -2

      Спасибо, поправили


  1. FractalizeR
    10.02.2017 15:43
    +18

    Когда я увидел заголовок статьи, я подумал, что PVS-Studio интегрируется с GitHub и предоставляет сервис вроде travis_ci ;)


    1. eugenebabichenko
      10.02.2017 23:43
      +2

      А ведь можно было бы и интегрироваться с Travis, Coverity там завезли.


  1. isotoxin
    10.02.2017 18:44
    +10

    А лично мне формулировка фразы не нравится. Что это за «Dear PVS-Studio, please check it»? PVS-Studio не человек, чтобы его еще уговаривать. С удовольствием бы вставил более формальный текст, типа: «PVS-Studio проверяет этот файл бесплатно, т.к. этот файл является частью независимого проекта индивидуального разработчика. [вторая строчка вашего текста меня устраивает]»


    1. Mingun
      10.02.2017 21:22
      -1

      C юмором вы, похоже, не знакомы...


      1. skobkin
        12.02.2017 12:59
        +2

        Надо добавить тогда хорошее чувство юмора в требования к бесплатному использованию продукта.


        1. SvyatoslavMC
          12.02.2017 13:09
          -1

          Уточните, пожалуйста, несколько моментов. Оно должно распространятся на всю команду, лидера или среднее по команде? Только open-source или индивидуальным разработчиком тоже надо соответствовать? А то сделаем, да не так опять.


          1. skobkin
            12.02.2017 13:23
            +1

            Давайте сразу от души — всей команде. А то ходят там угрюмые, пишут свой код, на пользователей огрызаются.


    1. EvgeniyRyzhkov
      10.02.2017 22:35
      -4

      Уверен, что если бы авторы PVS-Studio раздавали по 10 000 рублей за бесплатное использование, то появилось бы куча негативных комментариев в стиле «совсем охренели! за эти копейки еще напрягаться. вот если бы по 20 000...»


  1. leotsarev
    10.02.2017 19:29
    +2

    Вообще конечно «а для публичных репозиториев ГитХаба бесплатна» — сейчас выглядит как стандарт на этом рынке. Посмотрим, как у вас пойдет, интересно.


  1. interprise
    10.02.2017 23:42
    +1

    Я думаю, что логичней было бы сделать требование разместить упоминание о вас на странице гитхаба, я думаю многие бы согласились. Ну и как говорилось выше, возможно добавить сервис «проверить ваш репозитарий», что автоматически означает, что проект open-source


    1. aikixd
      11.02.2017 11:52
      +2

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


      1. interprise
        11.02.2017 11:57
        +1

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


        1. aikixd
          11.02.2017 19:41
          +4

          Думаю дело не в пиаре, а в том что-бы отсечь большие фирмы от этой акции наименьшими усилиями. Они могли бы попросить написать любой коментарий в принципе. Дело не в том, что кто-то будет его читать, а в том, что кто-то не будет его писать.


          1. Andrey2008
            11.02.2017 19:55
            +1

            Совершенно верно.


            1. gimntut
              12.02.2017 10:09
              +1

              Мне кажется, что какой-нибудь онлайн-сервис проверяющий проекты по ссылке на github, был бы не плохой альтернативой для тех, чей проект хобби.
              Естественно с ограничениями. Например, лимит на количество кода в проекте, символические $5 (или $1) за проверку, не чаще двух проверок в месяц.
              Так отсекаем большие проекты, лишние мусорные запросы на проверку, которые могут положить онлайн сервис, и делаем себе рекламу, выдавая плашку о хорошем качестве кода для README при второй проверке.
              Это только в качестве примера, который я придумал (но не продумывал) за 2 минуты. Правильный вариант может быть совсем иным.


              1. 0xd34df00d
                12.02.2017 10:42
                +4

                Так, собственно, Coverity делает, только без всяких ограничений.


          1. grossws
            12.02.2017 00:15
            +1

            А также, похоже, чтобы отвадить все well established open-source projects, которые разрабатываются под эгидой любых (в том числе некоммерческих) организаций, как то Free Software Foundation, Apache Software Foundation, Eclipse Foundation, Mozilla Foundation и подобных. Т. к. софт, который производят люди в рамках курируемых проектов, полезен не полутора землекопам, а куда более широкой аудитории, включая коммерческие фирмы.


            Какой-нибудь YourKit даже никакой плашки не требует за право использовать из профайлер, чем вызывают уважение. Как JetBrains — хз, т.к. у меня all products pack и бесплатную версию у них не запрашивал.


            1. kekekeks
              12.02.2017 01:40
              +5

              JetBrains ничего не требуют кроме соответствия проекта критериям опенсорса.


            1. SvyatoslavMC
              12.02.2017 02:03
              -1

              все well established open-source projects, которые разрабатываются под эгидой любых (в том числе некоммерческих) организаций, как то Free Software Foundation, Apache Software Foundation, Eclipse Foundation, Mozilla Foundation и подобных.

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


              1. grossws
                12.02.2017 04:40
                +2

                ASF, например, имеет мизерное количество сотрудников (наёмные админы), все разработчики более 400 проектов — волонтеры и выступают с позиции индивидуальных разработчиков. Но сказать, что, например, Hadoop — non-commercial software язык не повернется, хотя ASF на нём (как и на остальных проектах) деньги не зарабатывает.


  1. akzhan
    11.02.2017 00:01
    +1

    1. Реально, интеграция типа Coverity гораздо удобнее.
    2. А что делать компаниям (мелким, но), выпускающим Open Source? Хоть и выпускающим эти продукты часто от частного лица, но вот у меня большая часть больших проектов (open source, часто автор давно ушел, а я maintainer) принадлежат организациям.


  1. alexeyknyshev
    11.02.2017 00:29
    +2

    > Почти все компании, которые разрабатывают под Linux — перешли на CLion, а количество людей, которые используют «Vim и аналоги», сейчас резко сокращается… Вообще рекомендую присмотреться к продуктам JetBrains, а точнее к TeamCity и YouTrack. Эти продукты используют почти ВСЕ крупные и средние компании, и интеграция туда PVS-Studio — это очень правильная Business-модель.

    Эдык его накрыло, такого понаписал, аж волосы на голове зашевелились


  1. tyderh
    11.02.2017 02:16
    +7

    Это стыд и позор, на самом деле: PVS-Studio нарушает GPL. Процитирую, что еще о вас говорят, короче:

    Этого недостаточно ? необходимо указывать, что используется продукт под GPL (you must show them these terms so they know their rights), а также привести либо объектные файлы рядом с дистрибутивом, либо указание на то, что объектные файлы необходимо запрашивать по почте (If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place).


    Сейчас проверил еще раз —
    $ grep -ri GPL pvs-studio-6.13.20904.1-x86_64 | wc -l
    0


    (1) If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.

    6. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place

    And you must show them these terms so they know their rights.


    Dear PVS-Studio, please do not violate GPL.


    1. Andrey2008
      12.02.2017 14:16
      +1

      Наш продукт включает в себя библиотеку glibc, распространяемую под лицензией LGPL. В соответствии с лицензией LGPL, по запросу третьего лица, мы готовы предоставить объектные файлы, которые позволят перекомпоновать наш продукт с использованием другой версии glibc. Мы гарантируем работоспособность нашего продукта только с официальной версией glibc 2.23. Запросы на получение объектных файлов можно отправлять через форму обратной связи.


      1. tyderh
        12.02.2017 14:44
        -6

        Пожалуйста, читайте внимательнее. Я процитировал ответ на эту же вашу стандартную отписку. Если вы не понимаете по-английски, приведу вам цитаты из перевода лицензии.

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

        d) если распространение экземпляра произведения осуществляется путем предоставления доступа для копирования его из определенного места, такое распространение должно сопровождаться предложением равноценного доступа для копирования из этого же места материалов, указанных в подпункте «а» пункта 6;


        1. Andrey2008
          12.02.2017 14:58
          -2

          1. tyderh
            12.02.2017 16:01

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

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


            Использует ли PVS-Studio библиотеку под LGPL? — да.

            Выполняет ли оно один из последующих пунктов a-e? — нет.

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

            Нет, я серьёзно не понимаю, почему opensource-проектам нужно вставлять в себя для проверки унизительные комментарии, а вам — так сложно выполнить два ужасно простых требования лицензии? У вас от этого убавится?


  1. leremin
    11.02.2017 10:45
    +3

    А я вот для себя пропатчил вашу программу для расстановки комментариев:

    1. Она проставляла комментерии во все файлы, включая AssemblyInfo.cs и *.Designer.cs, хотя анализатор не ругается, если их там нет — я это убрал
    2. Не добавляла пустую строку после себя — пришлось добавить


  1. 3aicheg
    13.02.2017 05:52
    +4

    Надо вам дочернюю пиарастическую компанию от себя отпочковать, для канализации ненависти. Типа PRS-Studio назвать, пусть занимаются продвижением ваших сомнительных маркетинговых инициатив. В любой критиканский тред можно будет смело впрыгивать с криком «да не поверишь, братан, сами давно мечтаем всё раздать под zlib-лицензией, но вот эти пиарасы не дают!»