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

Введение


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

Думаю, что наш провал с CppCat был предопределён. Мир диктует свои законы, и, например, тот же Coverity ориентирован на корпоративные лицензии. Однако, это не значит, что нужно исключать другие варианты взаимодействия с миром.

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

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

Размышления


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

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

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

Решение было найдено интуитивно. Что отличает корпоративные проекты от проектов энтузиастов? В корпоративных проектах меньше свободы и больше бюрократии. Вряд ли руководство компании Microsoft будет радо, если разработчик в коде Microsoft Office напишет, что это его персональный проект. Этим надо воспользоваться и предлагать вносить в код правки, в которых упоминается PVS-Studio. Заодно код открытых проектов будет рекламировать PVS-Studio.

Бесплатная лицензия PVS-Studio


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

Шаг 1.


Если вы используете PVS-Studio как плагин к Visual Studio, то введите следующий лицензионный ключ:

Name: PVS-Studio Free

Key: FREE-FREE-FREE-FREE

Если Вы используете PVS-Studio for Linux, то сразу переходите ко второму шагу, файл с лицензией вам не понадобится.

Шаг 2.


Внесите правки во все компилируемые файлы вашего проекта. Имеются в виду файлы с расширениями c, cc, cpp, cs и так далее. Заголовочные h-файлы менять не требуется.

Вы должны вписать в начало каждого файла две строки с комментарием. Мы предоставляем на выбор несколько вариантов. Это своего рода плата за возможность бесплатного использования анализатора PVS-Studio.

Комментарии для студентов (академическая лицензия):

// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

Комментарии для открытых бесплатных проектов:

// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

Комментарии для индивидуальных разработчиков:

// This is an independent project of an individual developer. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

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

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

Автоматизация


Если в вашем проекте много файлов, то вы можете воспользоваться вспомогательной утилитой. Вы должны будете указать ей какой комментарий вставлять и каталог с кодом. Затем утилита рекурсивно обойдет все файлы в папке и вложенных папках, добавляя в файлы с исходным кодом соответствующие комментарии. Скачать утилиту (вместе с исходным кодом) можно здесь: how-to-use-pvs-studio-free.

Заключение


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

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

Надеемся наше предложение и позиция понятны. Если у вас остаются вопросы, то просим написать нам.

Чтобы убедить ваших коллег начать использовать анализатор кода PVS-Studio, предлагаем познакомить их со следующими разделами нашего сайта:


Спасибо за внимание. Давайте вместе сделаем программы надежнее и безопаснее.

Update


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

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

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

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

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


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Andrey Karpov. How to use PVS-Studio for free.
Поделиться с друзьями
-->

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


  1. DeXPeriX
    30.11.2016 09:07
    +14

    Отлично! Супер! Единственная просьба — разрешить не только С++ комментарии, но и Си (/* */). Проект в релиз собирается по стандарту С90, там комментарии "//" не даст вставить компилятор


    1. EvgeniyRyzhkov
      30.11.2016 09:15

      Расскажите, пожалуйста, что за проект? C90 сейчас все-таки экзотика.


      1. DeXPeriX
        30.11.2016 09:25
        +3

        Если честно, Си вообще в принципе почти экзотика для энтерпрайза)
        Подозреваю, что примерно про мой проект в статье и написано: Winter Novel. Подробнее о реализации тут
        С90 и остальные "зверские" опции компилятора сейчас использую почти вместо PVS-Studio — они заставляют писать чище, потом меньше времени на отладку.


      1. PTM
        30.11.2016 11:39
        +6

        например, в микроконтроллерах распространен.


      1. aknew
        30.11.2016 15:20
        +1

        Я сталкивался с подобным наследством в медицинской области, где некоторые файлы были еще старше (там был сильнозапущеный принцип "работает — не трожь", помноженый на медицинскую специфику что любой код или либа по умолчанию считаются опасной и глючной). И проблем там была куча из-за этого, тот же кланг вообще не смог проанализировать или собрать проект из-за отсутствия -fpermissive и присутсвия в коде кнострукций void a(){ return 1;}


    1. Andrey2008
      30.11.2016 09:37
      +10

      Да, такая возможность есть. Вы можете написать:

      /* This is an open source non-commercial project. Dear PVS-Studio, please check it.
       * PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
       */
      

      Замечу, утилита для вставки комментариев так не умеет. Поэтому надо либо вставить комментарии вручную, либо доработать утилиту (на github доступен её исходный код).


  1. Tiendil
    30.11.2016 09:25
    +13

    Отличная новость и интересная реализация, надеюсь она принесёт вам профит.


  1. alexyr
    30.11.2016 09:25
    +22

    Однозначно разумный и честный подход! Моё глубокое вам уважение!


  1. mezastel
    30.11.2016 09:29
    +3

    Попытки редактировать поля Registration и Serial в настройках PVS Studio намертво убивают Visual Studio :( (Upd: оказывается не намертво, но где-то полминуты Студия висела.)


    1. EvgeniyRyzhkov
      30.11.2016 09:36
      +1

      Профайлер плагинов в VS2017 покажет кто где не прав! :-)


      1. mezastel
        30.11.2016 10:02
        +1

        Боюсь что к тому времени выйдет Rider, и Студия будет постепенно уходить в забвение.


        1. EvgeniyRyzhkov
          30.11.2016 10:03
          +1

          Придется сделать нам плагинчик для Rider.


          1. poxu
            30.11.2016 10:45
            +1

            А что такое Rider?


            1. gudvinr
              30.11.2016 10:54
              +6

              Подозреваю, что ReSharper внутри IntelliJ

              https://www.jetbrains.com/rider/


        1. kxl
          30.11.2016 14:12

          Боюсь, что Rider для enterprise — это далекое будущее… А значит студия еще поживет…


  1. redQueen_66
    30.11.2016 09:41
    +10

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


    1. EvgeniyRyzhkov
      30.11.2016 09:56
      -16

      Казалось бы, возьми да напиши на support@viva64.com и не надо ждать удобного случая.


      1. 3aicheg
        30.11.2016 10:13
        +53

        Казалось бы, возьми да повесь прайс прямо на сайте, и не надо никакие письма писать…


        1. khim
          30.11.2016 13:08
          +2

          Сколько можно пережевывать одно и то же. Корпоративные продукты и их внедрение имеют свою специфику и «прайс по запросу» — одна из них.

          Это, собственно, очень хороший первичный тест: если ваше начальство не знает о том, что «прайс по запросу» — это типичный способ продажи корпоративного софта и его практикуют, в частности, такие «мелкие китайские лавочки» как IBM или SAP, а также и конкуренты обсуждаемого здесь продукта, то, в общем, вам стоит сначала об этом с начальством поговорить, а не учить весь мир — как ему следует жить?


          1. evocatus
            30.11.2016 15:31
            +6

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


            1. dartraiden
              30.11.2016 17:07
              +8

              Я не понимаю зачем так делать? Чтобы каждому клиенту разные ценники выставлять?
              Именно. Я читал, что такое практикуется в Китае в ресторанчиках, куда захаживает, как местное население, так и туристы. Фиксированной цены в меню нет. Цена зависит от прикидки «на глазок» платежеспособности клиента. Более «продвинутые» китайцы делают два меню:
              Некоторые рестораны (особенно часто мы это наблюдали в городе Санья, остров Хайнань) имеют меню на русском или английском языках. Такое меню ориентировано на иностранных гостей, но цены в нем завышены. Причем иногда в два раза. Заметив такое «кидалово», мой супруг, прищурившись, смотрит на официанта и просит «другое» меню.


            1. Gray_Wolf
              30.11.2016 17:11
              +9

              Чтобы каждому клиенту разные ценники выставлять?

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


              1. EvgeniyRyzhkov
                30.11.2016 17:17

                Спасибо за адекватный комментарий.


          1. 3aicheg
            01.12.2016 03:58
            +7

            Да знаем, хлебали этого говна. Начинаешь изучать, какие продукты на нужную тему вообще есть на рынке. Находишь три варианта, цена от компании X и от компании Y отличается в разы, а у компании Z на сайте цены вообще нет, один только маркетинговый буллшит и вот это вот «возьмите да напишите». При этом ни о какой кастомизации и аццкой интеграции вопрос не стоит. Вообще не стоит, не может стоять, в силу специфики продукта. Вот нахуа?? Зачастую «возьмите да напишите» означает совершенно антигуманные цены, но и это не всегда. Пишу, высылают прайс, явно стандартный какой-то. Всё то же самое, как если бы просто цену на сайте указали, только ещё дополнительно надо прыгнуть через горящее кольцо и подождать ответа от нескольких часов до нескольких дней. По-приколу люблю таким писать с личного мусорного гмайл-аккаунта, всё равно отвечают, высылают тот же самый прайс :)


            1. vlivyur
              01.12.2016 09:16
              +1

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


              1. nikolaynnov
                01.12.2016 13:58

                Главное, чтобы как Интел не сделали, чтобы анкету надо было заполнять только чтобы скачать триалку новой версии.
                Или как постоянные посетители бара «Голубая устрица» компания Оракл — чтобы скачать что-то надо сперва зарегистрироваться на сайте, при попытке регистрации должно сперва письмо придти для окончания регистрации, а письмо-то и не приходит…


                1. 3aicheg
                  01.12.2016 14:20
                  +7

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


    1. Keroro
      30.11.2016 10:18
      +3

      Странно, на самом деле. Сплошь и рядом такое (к сожалению), и не только в России. Недавно 2 недели MaximIntegrated мурижил, чтоб выставили счёт на одну отладочную платку, ну никак не хотели продавать.

      зы: хочу PVC studio для эмбеда (БЕЗ Visual Studio)


      1. Andrey2008
        30.11.2016 10:35
        -4

        Это нормальная стандартная практика.

        P.S. PVS-Studio без VS уже давно есть :)


        1. Ogi
          30.11.2016 11:54
          +10

          Когда ты видишь, что SpaceX запросто указывает цены на свои ракеты-носители, понимаешь, насколько смехотворна эта «нормальная стандартная практика».


          1. SvyatoslavMC
            30.11.2016 12:06
            +6

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


            1. webkumo
              30.11.2016 13:52
              +9

              Так в чём проблема продумать и построить схему ценообразования такой, что её не придётся прятать? Думаете JetBrains добился бы распространения своей IDE, если бы прятал ценник?


              1. poxu
                30.11.2016 14:22

                Стоит дополнительно заметить, что ещё у JetBrains есть бесплатная версия с открытым исходным кодом. Первая доза — бесплатно. А ещё — студенческие лицензии. Подсадить их смолоду!


                1. Rivus
                  01.12.2016 21:09

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

                  Вот уж действительно, подсадили на иглу смолоду.


              1. navion
                30.11.2016 20:39
                +1

                И тоже дают с неё скидку при покупке через sales@jetbrains.com или реселлеров.


          1. crea7or
            30.11.2016 17:07
            +1

            Только это ничего не значит. NASA, например, платит в два раза больше им. Недавно вон пуск за $120млн. купили.


            1. 640509-040147
              30.11.2016 19:02
              +3

              Потому что NASA, если сильно упростить, покупает примерно так:
              — Хотим вот эту позицию (тычет пальцем в прайс), плюс вот это, это и это. И чтобы ещё всё застраховано было по максимальному тарифу. Ах да, и ещё хотим контролировать каждый ваш чих в момент предоставления услуги.
              — Не вопрос. Тогда цена будет вот такая.
              — По рукам.


              1. knstqq
                30.11.2016 19:29
                +1

                NASA не страхует пуски как государственная компания. Она вкладывает дополнительные деньги в дополнительные проверки.


          1. DaleMartinWatson
            06.12.2016 16:30
            +1

            А где кнопочка «Заказать»?


        1. gaelpa
          04.12.2016 17:25
          +1

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


          1. Andrey2008
            04.12.2016 17:29

            Я ничего не понял. Прошу сформулировтаь предложение как-то иначе.


            1. gaelpa
              04.12.2016 20:52

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


              1. EvgeniyRyzhkov
                04.12.2016 21:28

                В день когда на viva64.com появится прайс, миллионы россиян вздохнут спокойно… А собственно почему? Вот лично Вам какое дело до наличия цен на сайте?

                Если у Вас есть интерес к PVS-Studio, то напишите с корпоративной почты и узнаете цены, секрета в них нет. А если интереса нет, то какая разница, указаны они на сайте или нет.


  1. Armleo
    30.11.2016 09:52
    +2

    Прочитал статью на сайте обрадовался! Попытаюсь с ней разобраться. Спасибо за замечательный инструмент.


  1. 3aicheg
    30.11.2016 10:08
    +1

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


    1. pehat
      30.11.2016 10:28
      +5

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


      1. 3aicheg
        30.11.2016 10:41
        +1

        Возможно. Но зачем тогда требовать какой-то дополнительный комментарий в начале каждого файла?


        1. khim
          30.11.2016 13:12
          +3

          Очевидно чтобы они работали как реклама? Да, какой-то «Злобный Буратино» может настроить в своём личном проекте всё так, как вы сказали — ну так он и без того платить не будет.

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


    1. Andrey2008
      30.11.2016 10:37
      +19

      Ничто не помешает. А раз Ваше рабочее время стоит так дешево, чтобы заниматься на работе фигнёй, то значит компания где Вы работаете не является нашим потенциальным клиентом. :)


      1. 3aicheg
        30.11.2016 10:51
        +3

        Вот я и думаю: по-замыслу, вроде как, вы пытаетесь создать мне достаточно неудобств, чтобы побудить не заниматься на работе фигнёй и купить уже лицензию. А по-факту, скрипт, который добавляет-удаляет всё, что нужно, я сваяю левой ногой минут за пять, а потом повешу pre-commit hook-ом (или как там оно называется), и мне даже хоткей никакой нажимать не придётся. Уж всяко меньше я с таким подходом потрачу времени на «фигню», чем пытаясь пробить покупку вашего софта по корпоративным каналам (это даже без учёта времени на написание вам письма и ожидание ответа :)


        1. Andrey2008
          30.11.2016 11:03
          +13

          Делайте. Я же поставлю свечку, чтобы однажды скрипт сглючил и комментарии попали в систему контроля версий. За что кого-то накажут. :)

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


          1. sborisov
            30.11.2016 12:48

            Делайте. Я же поставлю свечку, чтобы однажды скрипт сглючил и комментарии попали в систему контроля версий. За что кого-то накажут. :)


            Какой вы злой и мстительный… :)


          1. asm0dey
            30.11.2016 21:17
            +6

            Не накажут. Бог дал нам гит и возможность переписать историю :).


        1. Varim
          30.11.2016 11:08
          +3

          3aicheg, для приличия хоть, добавить бы, сослагательное наклонение


          1. 3aicheg
            30.11.2016 11:35

            *для приличия делает вид, что понял комментарий*


            1. mwambanatanga
              01.12.2016 10:35

              Имеется в виду замена явного намерения

              всё, что нужно, я сваяю левой ногой минут за пять

              на что-то гипотетическое, типа
              всё, что нужно, я сваял бы левой ногой минут за пять

              для смягчения эффекта.


        1. sborisov
          30.11.2016 12:50

          А по-факту, скрипт, который добавляет-удаляет всё, что нужно, я сваяю левой ногой минут за пять, а потом повешу pre-commit hook-ом (или как там оно называется), и мне даже хоткей никакой нажимать не придётся.

          Не забудьте на гитхаб выложить и опубликовать ссылку! :)


      1. Steed
        30.11.2016 11:06
        +2

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


        1. maniacscientist
          30.11.2016 21:02

          >Знаете, написать приложеньку для такого трюка стоит по времени гораздо дешевле, чем стоимость годовой лицензии на человека

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


          1. Steed
            01.12.2016 10:52

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


            1. 3aicheg
              01.12.2016 14:26

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


              1. Steed
                01.12.2016 15:11
                +2

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


      1. TheDaemon
        30.11.2016 16:08

        Очень правильная философия. Искренне желаю вашему проекту расти и процветать.


      1. asm0dey
        30.11.2016 21:16
        +1

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


        1. 3aicheg
          01.12.2016 06:36

          Для мелких компаний — возможно, а в особом мире корпоративного маразма дело не в деньгах, и эффективные менеджеры вряд ли одобрят подобную экономию, а ещё меньше того её одобрит юридический отдел. Зачастую вообще боятся бесплатного ПО (да, именно бесплатного, безо всяких ограничений) из соображений «а вот как бы чего не вышло», типа у них на душе неспокойно, пока за него денег кому-то не занесли (чтобы недалеко ходить за примерами, вспомним хоть российский маразм несколько лет назад, когда приходит проверка лицензионности ПО и требует предъявить платёжки за Линукс). Так что с этой стороны как раз идея нормальная… ну или, как минимум, прикольная.

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


          1. asm0dey
            01.12.2016 07:27

            Я работаю в мире большого корпоративного софта, я всякое видел :) И я знаю что когда я тимлид — у меня есть возможность в своём отделе сделать так как мне хочется мимо всякого начальства на худой конец ))


            1. 3aicheg
              01.12.2016 10:12


          1. ggo
            01.12.2016 21:10

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


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

            Кстати, в связи с этим и процветают конторы типа Red Hat и т.д.


            1. 3aicheg
              02.12.2016 03:17

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


              1. SvyatoslavMC
                02.12.2016 09:36

                Популяризация методологии статического анализа.


              1. ggo
                02.12.2016 11:39

                Вы рассуждаете, как типичный ИТ-шник, что нормально.
                К счастью, или к сожалению, за операционные риски отвечает чувак, как правило, далекий от ИТ. Этот умный чувак пишет правила. Задача всех прочих, в том числе ИТ-шников, эти правила соблюдать. Написали: все ПО должно быть с поддержкой, это значит все (все) ПО должны быть с поддержкой.

                Авторы PVS пробуют еще один канал продажи. Больше каналов хороших и полезных!


              1. khim
                02.12.2016 20:28

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

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

                Есть другой отдел — он отвечает за закупки. И старается закупать, разумеется, подешевше (а как иначе?). Может и бесплатную версию за'approve'ить, если фирма уже первым отделом одобрена.

                А у PVS'ников задача — пройти их все и получить денег, однако…


  1. khrisanfov
    30.11.2016 10:28
    +2

    Всё так сделали, спасибо! Успехов вашему проекту.


  1. rusbaron
    30.11.2016 10:38
    +1

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


    1. Andrey2008
      30.11.2016 10:39
      +1

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


      1. alex_zzzz
        01.12.2016 06:14
        +1

        Unity требует покупки Pro лицензий, если годовой доход организации превышает $200k. Не знаю, как они проверяют и проверяют ли вообще, но смысл в том, что им не важно, чем занимается контора.


        Контора может


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

        Вообще не важно, откуда берутся деньги, но если откуда-то всё-таки берутся, изволь купить лицензии.


  1. Whiteha
    30.11.2016 10:39
    +6

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


  1. ktod
    30.11.2016 10:40
    +4

    Отличная идея.
    Меня, как независимого разработчика под лин, это устраивает почти на 100%.
    А с заказчиками по поводу «лишних строк в начале файла» договориться не сложно: внести допусловие в стандартный договори и/или озвучить цену того, чтоб этих строк не было. :)

    Единственная просьба, разрешите, чтоб эти сроки были не первые в файле, просто в пределах «шапки», в пределах ~20 строк, например. Все же, информация о разработчике и владельце прав на код важнее, имхо.


    1. Andrey2008
      30.11.2016 10:40
      +3

      Если информация о разработчике и владельце прав на код важнее, то предлагаем рассмотреть вариант приобретения платной лицензии. А так, извините, нет.


      1. ktod
        30.11.2016 11:30

        Воля Ваша.
        Тогда давайте проясним один момент. Допустимо ли, с Вашей точки зрения, удаление «шапки» после окончания разработки?


        1. EvgeniyRyzhkov
          30.11.2016 11:31
          +3

          Я вот кстати не знаю, что такое «окончание разработки». А вы?


          1. ktod
            30.11.2016 11:35

            Это случай, когда продукт на 100% соответствует требованиям технического задания.
            Еще одним примером является момент запуска продукта в серию.


            1. EvgeniyRyzhkov
              30.11.2016 11:37
              +1

              Ну а потом его все, сразу на кладбище?

              Вот у PVS-Studio окончание разработки — это когда продукт на кладбище окажется, как мне кажется. А у вас как?


              1. 3aicheg
                30.11.2016 11:58
                +3

                Вот, допустим, человек разрабатывал-разрабатывал код, честно ставил в начале каждого файла ваш комментарий. Заказчик видит, говорит: «Убери.» Должен ли он сказать в ответ твёрдое и решительное «Нетъ!», или же допустимо убрать комментарий, но перестать пользоваться бесплатной версией PVS-Studio для этого проекта? А когда интенсивная фаза разработки, в целом, закончена, и код выкинут на кладбище передан заказчику, который вообще не слышал ни о каком PVS-Studio — этот заказчик имеет право убрать комментарий? А если заказчик что-то ещё сам дописал и хочет от изначального разработчика неких доработок — должен ли тот добавить комментарий обратно?


                1. SvyatoslavMC
                  30.11.2016 12:10
                  +4

                  Ответ прост: если возникают сложности с бесплатной лицензией, значит лицензия не подходит для данного проекта.


                  1. LoadRunner
                    30.11.2016 12:49
                    +1

                    Стоит ли это понимать, как:
                    «Пользуетесь PVS-Studio — вставляйте комментарии. Перестали пользоваться — можно удалить.»?


                    1. SvyatoslavMC
                      30.11.2016 12:51
                      +2

                      Это стоит понимать как сложности :D


                      1. LoadRunner
                        30.11.2016 13:15
                        -2

                        То есть это как продажа души — один раз и на всю жизнь?


                  1. 3aicheg
                    30.11.2016 16:22
                    +4

                    Вообще не ответ, а вольные фантазии в духе гоголевской Коробочки:

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

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


                    1. Jigglypuff
                      30.11.2016 17:23
                      +4

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


                      1. 0xd34df00d
                        30.11.2016 21:31
                        +4

                        А можно сравнить с Coverity, которые этого не требуют, например.


                      1. 3aicheg
                        01.12.2016 03:39
                        +2

                        А продукт Боженька разрабатывает, что даже спросить ничего нельзя, а можно только «славатебегосподи»?


                1. EvgeniyRyzhkov
                  30.11.2016 13:39

                  Не вижу смысла обсуждать абстрактные «а что если». Но Святослав рядом правильно написал.


              1. ktod
                30.11.2016 12:01

                Конечно. На кладбище. Кладбище ПО — т.е. в архив.
                Проекты они разные бывают. Бывают, внезапно, и со статическим и полным ТЗ. ТЗ выполнил — работа окончена, код изменениям более не подвергается.


  1. GennPen
    30.11.2016 10:41

    Замечательная новость!
    Еще бы ребята из JetBrains ввели подобную практику. =)


    1. Whiteha
      30.11.2016 11:03
      +4

      Если бы у ребят из JetBrains пичарм не тормозил на топовом железе на файлах с всего 800+ строками…


      1. grossws
        30.11.2016 15:34

        На далеко не топовом i5-2520m с -Xmx750m (на ssd, ессно) и существенно большими файлами не тормозит. Исключение — первичное индексирования sdk/большого проекта (при добавлении sdk или обновлении самого pycharm), но это не сильно долгий процесс.


        Вы в багтрекер писали, результаты профилирования отправляли?


        1. Whiteha
          30.11.2016 16:07

          При далеко не полной загрузке процессора, дисков, памяти, на i7 3820 3.6GHz, 12 Гб DDR3 1333 MHz, отдельный SSD для ОС и программ, отдельный SSD для исходников, пичарм 2016.3 CE (точный билд пичарма указывать смысла нет, на всех предыдущих было примерно одинаково) были микрофризы, мелкие подвисания, не часто, но периодически, иногда при разворачивании из фона он капитально подвисал, при скроллинге файлов до тысячи строк — микрофризы.
          В багтрекер не писал тк пользуюсь не часто. Почти убежден что это не баг а фича джава движка и лучше вряд ли кто на нем сделает и что выход тут один — переписать это дело на C++ Qt.


          1. grossws
            30.11.2016 16:24
            +1

            Это может сильно зависеть от используемой версии xorg, используемого видеодрайвера, композитора и версии самой jdk (например, много проблем было на openjdk, которые отсутствовали на oracle jdk). Если у вас win, то может ощутимо влиять резидентный антивирус. Факторов выше крыши.


            На C++ никто в здравом уме продукт такого объема переписывать не будет, тем более, что у меня по комментариям на хабре и на форумах складывается впечатление, что продукты jetbrains лагают у очень небольшого процента пользователей (но такие пользователи, естественно более заметны, чем те, у кого всё работает). По наблюдению за некоторыми проектами, которые пытались просто портировать готовое решение на java на c++ — обычно сильно не успевают за темпом разработки при попытке иметь сходный уровень качества, а часто и уровень качества проседает настолько, что оно становится просто не нужно.


            1. ZaMaZaN4iK
              30.11.2016 16:44
              +1

              Скажу от себя, как активный пользователь Clion(это от JetBrains IDE для C++). Конфигурация системы: i7-3630QM, 12 Gib RAM, SSD; ОС Kubuntu 16.10, пробовал на Интеле и Нвидия со свободными дровами и блобом.

              1) Жрёт память оно довольно сильно. Сжирает первый гиг быстро. Но! Я импортировал проект ReactOS, и он после индексации сожрал 2.7 Gib RAM. Так что с IDE от JetBrains не так всё плохо. Но конкретно в Clion много чего не хватает, очень много.


              1. grossws
                30.11.2016 18:06

                Clion сыроват на мой взгляд, правда после 1.0 его не пробовал. Экспериментировал с ним начиная с private EAP.


                А проекты на C и C++ и будут более прожорливы, чем, например, на java, где с анализом и индексами существенно попроще. У clion и xmx по умолчанию 2g. Меня не сильно парит прожорливость по памяти, если она обменивается на нормальную навигацию, автодополнение и рефакторинги. И в этом месте clion'у ещё стоит дать времени на развитие.


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


                1. ZaMaZaN4iK
                  01.12.2016 11:36

                  На самом деле он стал много лучше со времени своего первого релиза. Но да, продукту ещё стоит развиваться дальше. Я думаю, что в конце-концов они сделают достойного конкурента Visual Studio.


                1. 0xd34df00d
                  01.12.2016 19:29
                  +1

                  Очень зря не пробовали. После 1.0 я плевался, после 2016.2 я его купил и переехал на него с kdevelop.


                  1. grossws
                    02.12.2016 00:40

                    Запилят нужные куски — попробую ещё раз. Так-то у меня all products pack и clion 2016.3 даже, кажется, установлен =)


    1. grossws
      30.11.2016 15:46

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


      1. GennPen
        30.11.2016 17:50

        Для обычных домашних пользователей у них $89..149/год


        1. grossws
          30.11.2016 17:58
          +1

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


          Плюс IDEA CE и PyCharm CE, которые не просто бесплатные, но и свободные, но функционала связанного со всякими web-dev и enterprise фичами там не будет.


          1. dion
            30.11.2016 19:42
            +1

            Мне больше всего нравится что Jetbrains разрешает купить IDE себе для индивидуального использования и притащить на работу. (Например, если не получается выбить бабло на корпоративные лицензии, а пользоваться хочется).


            1. grossws
              30.11.2016 19:46

              Это и имел ввиду под "не ограничивают область применения".


              Я лично перешел на индивидуальные лицензии пока контора закупала 5 лицензий в течении полугода. И купили минимальную, без возможности upgrade'а на следующую. Естественно к тому моменту вышла новая major версия =)


    1. 0xd34df00d
      30.11.2016 21:33
      +1

      У них персональные лицензии такие дешёвые, что проще их купить, чем доказывать живость опенсорса, имхо.


      1. grossws
        30.11.2016 22:54

        Ну, для чего-нибудь well establised живость доказать просто: статистика активности mailing list'а, форума и т. п.


        По сути, этим вариантом закрывается кейс, когда разработчик на работе пользуется корпоративной лицензией, а дома ему idea/rm/ws/pc/whatever нужна для работы только над open source проектом.


        1. 0xd34df00d
          01.12.2016 19:30
          +2

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


          :(


    1. worldxaker
      02.12.2016 09:36

      так они студентам полную бесплатную лицензию раздают


      1. GennPen
        02.12.2016 10:49

        Дело в том, что не все студенты.


  1. Plesser
    30.11.2016 10:43
    +1

    а с Java нет планов научить работать PVS-Studio?


    1. Andrey2008
      30.11.2016 11:05
      +2

      Чисто теоретически это направление нам интересно. Но в планы пока ничего такого не вписано.


      1. vsb
        30.11.2016 12:01
        +1

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

        https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html


  1. Torvald3d
    30.11.2016 10:55
    +3

    Как быть, если в проекте используется 3rd party код со своими копирайтами и комментариями в начале файлов исходников? Другими словами, что, если не все исходники будут помечены этим комментарием?


    1. SvyatoslavMC
      30.11.2016 11:03
      +2

      3rd party можно исключить из анализа. Часто это и нужно делать, т.к. чужой код не рискуют править, а тратить процессорное время на анализ ненужных файлов нет смысла.


  1. Varim
    30.11.2016 11:07

    Есть где то бинарник утилиты? Не хочется устанавливать с++ на 4 Гб, что бы скомпилить, у меня только c# в студии



  1. MikelSV
    30.11.2016 13:20
    +2

    Так вот зачем я пишу код в .h файлах!

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


  1. astudent
    30.11.2016 13:24
    -1

    Предлагаю вам пойти дальше и сделать автоматический анализ проектов на github / bitbucket / ….
    Как это может работать:

    1) Разработчики добавляют файл в проект с рекламной информацией и, возможно, своими контактами. Запушивают его в публичный репозиторий.
    2) Ваш web crawler находит такие проекты и запускает их анализ на ваших серверах.
    3) Результат анализа отправляется разработчикам через возможности самих github / bitbucket / … или по указанным контактам разработчикам.
    4) Profit!


    1. EvgeniyRyzhkov
      30.11.2016 13:44
      -2

      Нету профита. Это мусорный спам будет.


      1. astudent
        30.11.2016 14:13
        -1

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


        1. EvgeniyRyzhkov
          30.11.2016 14:15
          +4

          Мусорный спам — это не реклама.


          1. astudent
            30.11.2016 14:24
            +2

            В каком месте вы узрели «спам»?


          1. astudent
            30.11.2016 15:22
            -8

            Я правильно понял, что генеральный директор компании, производящей PVS-Studio, признает отчеты, генерируемые этим инструментом, спамом?


      1. Kot_Dymok
        30.11.2016 15:11
        -4

        Простите, вы сами считаете, что «результат анализа» вашего инструмента является «мусорным спамом»? =)
        Или я что-то неправильно понял?


        1. khim
          30.11.2016 18:51
          +7

          Так же, как и сырой «результат анализа» clang'а, gcc и тому подобных с дефолтными найстройками. Соберите какой-нибудь проект постарше с -Wall -Wextra -W... и посмотрите на результат. Большая часть сообщений — будет из-за того, что проект некоторые «рекомендации лучших собаководов» не соблюдает. Например не обрабатывает все варианты enum в switch. Что вовсе не значит что подобные сообщения отлавливать не нужно — для тех проектов, у кого в style guide подобные вещи прописаны эта диагностика, разумеется — очень полезна.

          P.S. Кстати -Wall и в clang и в gcc включает в себя далеко не все сообщения обшибках — именно поэтому.


  1. mwizard
    30.11.2016 13:47
    +2

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

    И да, раз вы сделали версию и под Linux — можно ли ждать консольную версию для macOS?


    1. SvyatoslavMC
      30.11.2016 13:59

      Как уже сказал мой коллега:

      Чисто теоретически это направление нам интересно. Но в планы пока ничего такого не вписано.


  1. AlaXiZ
    30.11.2016 14:40

    Спасибо, попробую использовать на своем open-source проекте


  1. Amr
    30.11.2016 14:40

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


    1. Andrey2008
      30.11.2016 14:41
      +1

      Уже проходили: неудачная история CppCat.


      1. Amr
        30.11.2016 14:58
        +2

        Насколько понимаю CppCat урезанная версия PVS-Studio, соответственно другая ветка кода, дополнительная команда, тестирование и т.д. А если продавать тот же PVS-Studio, но для индивидуальных разработчиков?


        1. Andrey2008
          30.11.2016 15:10
          +1

          На данный момент мы позиционируем себя как B2B и пока нет поводов пересматривать эту позицию.


          1. Amr
            30.11.2016 15:14

            Успел увидеть ваш первый комментарий, спасибо :)


            1. webkumo
              30.11.2016 17:24
              +2

              А что там было?


              1. Adamantium
                30.11.2016 22:38

                Видимо, имелась ввиду ссылка на комментарий несколькими ветками выше, где уже было написано про модель B2B. Так что не «а что там было», а «про какой конкретно первый комментарий».


  1. quzor
    30.11.2016 14:41
    +4

    Я ожидал, что будут подвохи с Вашей бесплатной лицензией.
    Простите, но зачем правило на комментарии? Да еще и в таком стиле?
    >Dear PVS-Studio, please check it
    Складывается впечатление о каком-то высокомерии.
    Насколько урезанной выглядит эта ваша бесплатная версия?


    1. Andrey2008
      30.11.2016 14:43
      +6

      • Мне кажется, в статье дан ответ, на вопрос «зачем правило на комментарии?»
      • Они не урезанная. Это полноценная версия. Комментарий — плата за неё.


      1. quzor
        30.11.2016 16:03
        -9

        Сами же себе палки в колеса ставите.
        Мне кажется, вы живете в своем идеальном мире.
        Поиграться, народ поиграет в вашу подделку, а после забудет.
        Никто не будет в своем разуме засорять код нелепыми комментариями (да еще и в каждом файле!).
        Это бред.
        «Нельзя так просто взять и выпустить бесплатную версию, нужно обязательно сделать ее неюзабельной» — девиз PVS-Studio


        1. Oplkill
          30.11.2016 17:55
          +1

          Для того, чтобы поиграться в эту "«подделку»" есть такая вещь как демонстрационная версия, со своими ограничениями, которые не мешают поиграться.


      1. quzor
        30.11.2016 16:19
        -10

        > Они не урезанная. Это полноценная версия. Комментарий — плата за неё.
        Кажется, где-то вы не договариваете.
        Если уж зашла речь о комментариях, зачем из целых 3 вида? Почему нельзя было остановиться на каком-то одном? Есть подоздрение, что вы просто парсите эти комментарии и отключаете множество диагностик для полученного типа (студент, разраб, open-source).


        1. Jigglypuff
          30.11.2016 17:26
          +8

          Вам не кажется, что за Вами следят?


          1. 3aicheg
            01.12.2016 06:53

            Нет, не кажется — правда следят!


  1. vt4a2h
    30.11.2016 15:14
    +7

    Честно, я рад первым шагам в эту сторону. Но тут возникает вопрос мотивации добавления рекламы в код. Если для своего открытого проекта за полчаса можно настроить интеграцию с Travis-CI+Coveralls+Coverity, при этом не получив никакой рекламной нагрузки, то зачем использовать ваш продукт?


  1. borisxm
    30.11.2016 15:43
    +5

    Спасибо за шаг на встречу «пишущим за так». Прогнал анализатор на среднем embedded-проекте объёмом порядка 280 килострок. Получил несколько V547, да и то, только из-за того, что нижнее значение в условии определялось через макрос, и оно оказалось равным нулю. Затем скормил анализатору стороннюю коммерческую embedded-библиотеку, результат ошарашил — около сотни совсем не безобидных ошибок. Теперь буду пинать разработчиков в сторону вашего продукта, пускай покупают и правят свой **** код.

    Это, кстати, опровергает тезис из статьи о провале cppcat: «Уровень культуры программирования индивидуальных разработчиков и маленьких команд ниже, чем в крупных компаниях.» Библиотека от очень крупной компании…


    1. khim
      30.11.2016 19:01
      +2

      Это, кстати, опровергает тезис из статьи о провале cppcat: «Уровень культуры программирования индивидуальных разработчиков и маленьких команд ниже, чем в крупных компаниях.» Библиотека от очень крупной компании…
      Это embedded. У embedded главное — чтобы было «Дёшево, дёшево, дёшево? Нет — ещё дешевле!»

      Этот мир ещё ждёт своих регуляторов. Есть хорошая статья-предупреждение от Брюса. Не знаю — был ли тут перевод, но чувак совершенно прав: в развитии IoT неизбежно (и довольно скоро) наступит момент когда «мир Internet» (где подобный подход приводит к проблемам) и мир embedded (где разработчикам за безопасность и отсуствие ошибок никто не платит) столкнутся. Интересно сколько будет жертв до того, как какие-то нормы будут разработаны…


      1. LeftRadio
        01.12.2016 21:09
        +1

        … мир embedded (где разработчикам за безопасность и отсуствие ошибок никто не платит)…
        ===============================================================================

        Это Вы, простите, так шутите да? В мире embedded 1 единственная ошибка может покалечить, и/или даже убить, в отличии от повисшего сайта, или некорректной вставки фото пользователя в бложик. И тестируют продукты в embedded не меньше, и относятся к этому не менее серьезно. Если это не ардуино-перделка-всепогодная-хрень-показометр конечно :).

        А за возможность использовать Ваш продукт (полностью легально для себя любимого) спасибо!


        1. khim
          02.12.2016 21:06

          В мире embedded 1 единственная ошибка может покалечить, и/или даже убить, в отличии от повисшего сайта, или некорректной вставки фото пользователя в бложик.
          Есть такое.

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

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

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


  1. JerleShannara
    30.11.2016 16:23
    +1

    А что делать, если я как разработчик участвую в каком-то очень крупном opensource проекте, где, пардон, уже начинает лезть бюрократия на оформление комментариев (конкретно в этом случае — coreboot, там жестко прописан формат начального комментария во всех файлах исходников)?


    1. Andrey2008
      30.11.2016 16:34
      +3

      Поднять вопрос о приобретении анализатора.


    1. ZaMaZaN4iK
      30.11.2016 16:36
      -5

      1) Покупка лицензии.
      2) Пишешь несложные хуки на post-merge — добавление нужного комментария ко всем нужным файлам, pre-commit — удаление этого комментария.


      1. mapron
        30.11.2016 17:57
        +3

        думаю это нарушает лицензию


        1. thauquoo
          01.12.2016 06:14

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

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


  1. JohnyD
    30.11.2016 16:35
    -1

    Когда анализ кода 1С будет?


    1. ZaMaZaN4iK
      30.11.2016 16:37
      +4

      сразу после Brainfuck)


    1. Old_Chroft
      30.11.2016 22:47
      +4

      Когда АнализКода1С Будет
          Если Вопрос("А оно точно надо?") = Истина Тогда
              Возврат Неопределено;
          КонецЕсли;
      КонецКогдаБудет;
      


      1. SvyatoslavMC
        30.11.2016 22:57
        +1

        Кстати в 1C некоторые ошибки MS Word и подобные инструменты найдут :D


        1. Old_Chroft
          30.11.2016 23:55

          Ради интереса вставил сейчас кусок 1С-ного кода в LibreOffice — почти все красным :-)
          А если серьезно — мне кажется статический анализ в динамических ЯП с «никакой» типизацией (где переменная сначала число, а на следующей строке она по if-else внезапно превращается в объект) мало чем поможет.


  1. vba
    30.11.2016 16:45

    Скажите а поддержки F# в планах нет?


    1. Andrey2008
      30.11.2016 16:55
      +3

      Про этот язык не думали. Если будем думать, то про Java.


    1. SvyatoslavMC
      30.11.2016 16:55

      Java, 1C, Brainfuck, F# в планах на 2016 год нет.


      1. nikolaynnov
        01.12.2016 02:36
        +1

        Главное, чтобы и на 2017й их поменьше было в планах, а то C++ вообще забросили в пользу C#.


        1. SvyatoslavMC
          01.12.2016 09:23

          Не соглашусь. Разработка C++ сейчас активнее, чем когда либо. Откуда по-вашему Linux версия взялась?)


          1. nikolaynnov
            01.12.2016 13:53
            +1

            Линукс так же отвлекал от написания новых правил для C++, и от улучшения (исправления false positives) существующих.
            А когда вышел анализатор для C# реально скорость добавления диагностик для C++ снизилась в разы. Это даже по changelog'у видно.


            1. SvyatoslavMC
              01.12.2016 16:37

              Любое новое новое направление требует затрат из доступных ресурсов. Так всё новое и осваивается.


              1. nikolaynnov
                01.12.2016 16:49

                С этим никто и не спорит. Поэтому я и говорю, что эти новые направления C# и линукс отвлекли разработку от C++. А если ещё Java, Brainfuck, и т.д. будут, то ещё больше времени от плюсов будет отниматься. Вот про что я говорил, когда вы со мной не согласились.


  1. ZaMaZaN4iK
    30.11.2016 16:47
    +2

    Скажите пожалуйста, рассматривается ли в ближайшем будущем возможность интеграции в GitHub/BitBucket/etc. по аналогии с Coverity? Могли бы там кнопку побольше вставить «Checked by PVS-Studio». Ещё один способ рекламы, и пользователям хорошо.


    1. skobkin
      01.12.2016 12:35
      +1

      Да. Баннер на главной странице репозитория (README.md) был бы гораздо более адекватным решением, чем правка вообще всех сорцев.


  1. NickViz
    30.11.2016 16:57

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


    1. Andrey2008
      30.11.2016 16:57
      +1

      Будет выдано предупреждение V009. Если вы не хотите проверять файл/папку или не можете изменять файлы, то просто исключите этот файл/папку из анализа.


      1. NickViz
        30.11.2016 17:20
        +2

        По любому — большое вам спасибо, за появившуюся возможность легально использовать PVS-Studio для своих проектов!

        Ещё два вопроса перед тем как нырять в чистые воды статического анализа — если (или когда) вы решите, что «халяву» прикрывать надо и уберёте возможность бесплатного использования:
        1. могу ли я удалить шапки после этого? Или они должны остаться навсегда после первого использования согласно лиц.соглашению?
        2. требуется ли обновлять раз в год бесплатную версию или она не «превращается в тыкву» с течением времени? (да, я помню преимущества постоянного обновления анализатора, но вот представим, что не обновиться никак)


        1. Andrey2008
          30.11.2016 17:55
          +4

          1. Можете удалить. Всё равно мы не можем это контролировать.

          2. Превращать в тыкву не планируем. Превращение в тыкву возможно, если всё это пойдёт совсем сильно не туда. Не знаю, какой может быть сценарий беды, но и исключать форс-мажор смысла нет.


  1. JIghtuse
    30.11.2016 17:41
    +1

    Если Вы используете PVS-Studio for Linux, то сразу переходите ко второму шагу, файл с лицензией вам не понадобится.

    Не подскажете, что не так делаю?

    $ cat malloc.c
    // This is an open source non-commercial project. Dear PVS-Studio, please check it.
    // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
    
    #include <stdlib.h>
    
    int main(int argc, char **argv)
    {
        (void)argv;
        int *i = malloc(argc);
        return i[0];
    }
    
    $ ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  trace -- gcc malloc.c -o malloc
    
    $ ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  analyze
    [100%] Analyzing: /home/user/malloc.c
    Please request a trial license from our support at support@viva64.com.
    Analysis finished in 0:00:00.05
    
    $ ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  analyze -l malloc.c
    [100%] Analyzing: /home/user/malloc.c
    License information is incorrect. Please check your registration data or contact Customer Support at support@viva64.com
    Analysis finished in 0:00:00.02
    


    1. PavelBelikov
      30.11.2016 18:00

      ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  analyze -l malloc.c
      


      нужно поменять на:

      ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  analyze
      


      -l — это путь до файла с лицензией.


      1. JIghtuse
        30.11.2016 18:13

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


        1. JIghtuse
          30.11.2016 18:33

          С триальной (истёкшей) лицензией тоже не действует:

          ./pvs-studio-6.11.20138.1-x86_64/bin/pvs-studio-analyzer  analyze -l PVS-Studio.lic
          [100%] Analyzing: /home/user/malloc.c
          Your license for PVS-Studio has expired. You may renew your license at http://www.viva64.com/en/renewal/.
          Analysis finished in 0:00:00.02
          
          


        1. PavelBelikov
          30.11.2016 18:44
          +3

          Пардон, не заметил. Старого бинарника pvs-studio нет в PATH?


          1. JIghtuse
            30.11.2016 18:48
            +4

            О, действительно, из-за этого не работало. Спасибо!


          1. danfe
            05.12.2016 10:26
            +1

            А вы намеренно полагаетесь на то, что бинарник pvs-studio будет в $PATH? Почему бы не запускать его из того же каталога, что и запускаемый пользователем pvs-studio-analyzer? Relocatable/PATH-agnostic программы — это же так хорошо. :-)


  1. AgentFire
    30.11.2016 17:51

    Congratulations! PVS-Studio has not found any issues in your source code! 0
    Хммм, а я-то думал, что-нибудь да вылезет на крупном проекте. :)


    1. Andrey2008
      30.11.2016 17:51
      +5

      Хм… Прям вот ничего… А он точно крупный? :)


  1. Jeditobe
    30.11.2016 18:10
    +2

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


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


    1. Armleo
      30.11.2016 18:22
      +3

      Автоматизация

      Если в вашем проекте много файлов, то вы можете воспользоваться вспомогательной утилитой. Вы должны будете
      указать ей какой комментарий вставлять и каталог с кодом. Затем утилита рекурсивно обойдет все файлы в
      папке и вложенных папках, добавляя в файлы с исходным кодом соответствующие комментарии. Скачать
      утилиту (вместе с исходным кодом) можно здесь: how-to-use-pvs-studio-free.

      https://github.com/viva64/how-to-use-pvs-studio-free


      1. Jeditobe
        30.11.2016 18:23

        Вопрос не об автоматизации был на самом деле.


        1. Armleo
          30.11.2016 18:39
          +2

          Внесите правки во все компилируемые файлы вашего проекта. Имеются в виду файлы с расширениями c, cc, cpp, cs и так далее. Заголовочные h-файлы менять не требуется.

          Вроде все достаточно информативно.


      1. webkumo
        30.11.2016 18:48
        +2

        Прикольный коммитик получится…


        1. Armleo
          30.11.2016 19:09

          А вы про СКВ (VCS)? Извиняюсь.


        1. Jeditobe
          30.11.2016 20:07
          +5

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

          А среди наших разработчиков можно встретить тех тех, кто до сих пор сидит на EDGE. И таких не мало.


          1. EvgeniyRyzhkov
            30.11.2016 20:44
            -7

            тех, кто до сих пор сидит на EDGE


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

            «Разработчики PVS-Studio — проклятые капиталисты! Заставляют голодающих африканцев 50000 файлов апдейтить.»

            Давайте до абсурда не доводить?


            1. Jeditobe
              30.11.2016 21:05
              +9

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

              Так что, действительно, лучше не доводить до абсурда.

              В капитализме я никого не упрекал.


          1. rekby
            01.12.2016 00:07

            У вас используется SVN, он хранит и пересылает только изменения (подозреваю что в сжатом виде).

            Комментарий
            // This is an open source non-commercial project. Dear PVS-Studio, please check it.
            // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

            занимает 160 байт. Для 50000 файлов получается около 8Мб несжатых изменений. Даже без учета сжатия для EDGE и тарифов порядка $1/мб трафик вполне подъемный.


            1. rekby
              01.12.2016 00:12

              Скачал для интереса исходники с
              svn://svn.reactos.org/reactos/trunk/reactos
              файлов там 19 тыс (50 тыс. это видимо посчитались служебные файлы внутри .svn), а *.c* — файлов 7063 — примерно 1.1Мб изменений.

              Так что мне кажется это не так страшно.


              1. Jeditobe
                01.12.2016 01:35
                +5

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

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


                1. asm0dey
                  01.12.2016 07:36

                  Как минимум гиту такие изменения не страшны. Меркуриалу тоже. Про другие VCS не знаю.


                1. rekby
                  01.12.2016 08:28

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

                  Информация собранная людьми становится незначительно менее качественной — строки всё равно плывут и вроде никто не следит за тем чтобы после коммита сохранялись номера строк.

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

                  трех бесполезных строк в кучу файлов


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


                  1. Jeditobe
                    01.12.2016 12:58
                    +1

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


                    1. rekby
                      01.12.2016 13:16
                      +3

                      Тут вопрос двоякий.

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


    1. NickViz
      30.11.2016 19:24
      +4

      Да ладно вам. Зато бесплатно получаете возможность использовать отличную тулзу. Кому шашечки, кому ехать…
      Скажите спасибо, что по милой привычке гугла и прочих «корпораций бобра» бесплатное приложение не будет отправлять «соверешенно обезличенную статистическую телеметрию» на сервера PVS на каждый чих.

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


      1. Jeditobe
        30.11.2016 20:08

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


        1. skobkin
          01.12.2016 12:39
          +2

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


      1. 3aicheg
        02.12.2016 03:40
        +1

        >«соверешенно обезличенную статистическую телеметрию»

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


        1. NickViz
          02.12.2016 12:54

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

          в общем, если есть возможность программе в интернет не ходить — это кмк лучше, чем наоборот.


  1. Cid
    30.11.2016 19:55
    +1

    Остроумно придуман критерий бесплатности.

    Пользовался лицензионной версией для корпоративного проекта (большая кодобаза, > 15 лет разработки).
    Несколько мелких, но вредных ошибок PVS нам поймал.
    Теперь обязательно буду применять этот инструмент и в личных проектах.


  1. Psychosynthesis
    30.11.2016 20:01

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

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

    Чтоб было понятно о чём речь и почему меня MS VS не устроил, уточню — я сейчас веду речь о embedded-проектах, конкретно, например, о связке MPLABX + XC8.


    1. Andrey2008
      30.11.2016 20:13
      +3

      Нормальный анализ С/С++ кода без препроцессирования невозможен. Типы, макросы, объявления классов, где лежит h-файл…


      1. Psychosynthesis
        30.11.2016 20:14

        Оукей, в чём проблема все используемые .h- и.с-файлы в программу грузить?

        Кстати, макросы я в основном c-файле пишу, не знаю, может это и плохая практика для desktop, но для embedded вполне нормально…

        Да, опять же, я не просто так написал про embedded, типы, например, у меня все стандартные.


        1. mayorovp
          30.11.2016 20:16

          Вручную? Проще попросить компилятор собрать из вместе.


          1. Psychosynthesis
            30.11.2016 20:19

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


            1. mayorovp
              30.11.2016 20:19

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


              1. Psychosynthesis
                30.11.2016 20:20

                std которая? Совсем не используется, да.


  1. Jeditobe
    30.11.2016 21:17
    +5

    Предлагаю вам альтернативную модель.

    Для OpenSource-проектов, которые поддерживают больше чем 2-3 человека, вам нужна совершенно другая модель распространения лицензий. Сделайте web-сервис наподобие openhub.net . Автор опенсорс-проекта отправляет на этот сайт ссылку на свой публичный репозиторий, а вы автоматически выкачиваете код, анализируете, публикуете общедоступный отчет об ошибках о проектах, параллельно рекламируете платную версию для корпоративных пользователей.

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


    1. EvgeniyRyzhkov
      01.12.2016 04:29
      +2

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

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

      Мы лучше что-нибудь полезное этими ресурсами сделаем.


      1. skobkin
        01.12.2016 12:46
        +1

        Сделайте альтернативой комментарию в каждом файле плашку с баннером в README.md репозитория. Вас будут рекламировать красивой картинкой на главной странице репозиториев опенсорс-проектов.


      1. Jeditobe
        01.12.2016 13:33

        Значит будем ждать дальше.


    1. kloppspb
      01.12.2016 13:52
      +1

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


      1. Jeditobe
        01.12.2016 14:00

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


  1. QtRoS
    30.11.2016 22:45
    +2

    Отличное решение, спасибо!


  1. kloppspb
    01.12.2016 00:00

    Раз:

    $ cat void.c
    // This is an independent project of an individual developer. Dear PVS-Studio, please check it.
    // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
    int main(void)
    {
        return 0;
    }

    Два:
    $ cat pvs.ini 
    platform = linux64
    preprocessor = gcc
    output-file = void.log
    cl-params = -Wall -pedantic void.c

    Три:
    $ pvs-studio-analyzer trace -- gcc -Wall -pedantic void.c
    ...
    $ pvs-studio-analyzer analyze -c pvs.ini
    [100%] Analyzing: ... void.c
    Please request a trial license from our support at support@viva64.com.
    Analysis finished in 0:00:00.02


    1. Andrey2008
      01.12.2016 00:02

      А свежую версию PVS-Studio устанавливали?


      1. kloppspb
        01.12.2016 00:07

        6.11.20138.1


        1. SvyatoslavMC
          01.12.2016 00:11

          Смотрите инструкцию ниже.


    1. SvyatoslavMC
      01.12.2016 00:10

      Укажите, пожалуйста, версию (убедиться в работе с комментариями):

      pvs-studio --version
      

      В остальном запуск в корне неверный, в Вашем случае надо было так:
      pvs-studio-analyzer trace -- gcc -Wall -pedantic void.c
      pvs-studio-analyzer analyze -o void.log
      plog-converter -a GA:1,2 -t tasklist -o /path/to/project.tasks void.log
      

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


      1. kloppspb
        01.12.2016 00:16

        > pvs-studio --version

        PVS-Studio 6.11.20138.1

        > pvs-studio-analyzer trace — gcc -Wall -pedantic void.c
        > pvs-studio-analyzer analyze -o void.log

        [100%] Analyzing:… void.c
        Please request a trial license from our support at support@viva64.com.
        Analysis finished in 0:00:00.02


  1. rekby
    01.12.2016 00:27

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

    Большие организации скорее всего действительно купят, т.к. они явно не индивидуальный проект и тут может сработает бюрократия, может внутренний имидж + нужна поддержка и т.п.
    В конце концов большие предприятия и redhat покупают просто из-за поддержки, даже без доп. условий хотя есть бесплатный centos/oracle — точно такие же но без поддержки.

    А те, кто будут пользоваться бесплатной версией скорее всё равно всё равно бы никогда анализатора не купили.


  1. YaakovTooth
    01.12.2016 02:05
    +2

    Какой странный хабр. Разработчики занимают достаточно жёсткую позицию, но предлагают бесплатный вариант. И в ответ на предложение бесплатного варианта — всё не так, это не так, и это не так; господи, так не используйте.

    Разработчики могли бы быть мягче, но, чай, бесплатно работать никто не хочет.


    1. webkumo
      01.12.2016 14:04
      +2

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


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


      Возьмём для примера JetBrains и их смену схемы лицензирования недавнюю — ведь вой же поднялся! Но! JetBrains прислушались и немного модифицировали эту схему — в результате почти все довольны! Хотя некоторые представители оного в той теме тоже не понимали чего хотят все эти люди...


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


  1. Mox
    01.12.2016 03:40
    -1

    Сделайте облачную версию, продавая время работы PVS-Studio + хранилище для исходников.

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


  1. borisko
    01.12.2016 11:49
    +1

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


    1. SvyatoslavMC
      01.12.2016 16:41

      Посмотрим, спасибо.


  1. Lauren
    01.12.2016 19:21
    -2

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


    1. FoxCanFly
      02.12.2016 15:58
      +4

      Где тут GPL то? xD


      1. rogoz
        02.12.2016 17:05
        -1

        Возможно человека неправильно поняли вы или я, но я с ним в меру своего понимания согласен.
        Судя по этому https://habrahabr.ru/company/pvs-studio/blog/316484/#comment_9938592 комментарию, если вы 1 раз добавили строчки в файл и проверили бесплатной версией, эти строчки должны оставаться как GPL. То есть если вы их удалили потом, это будет «лицензия не подходит для данного проекта», но вы использовали её.
        Вот только я затрудняюсь оценить это со стороны закона, в отличие от GPL, которая законна (по крайней мере в США точно).


  1. ShaltaiBoltai
    02.12.2016 09:31

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

    Andrey2008, у меня 2 вопроса:
    1. FREE лицензия позволяет использовать PVS-Studio без каких-либо ограничений в ее функциональности, или же разница с коммерческим вариантом есть (предположим, анализатор пропускает какие-то вещи и т.д.)?
    2. Когда планируете начать поддерживать VS 2017.

    PS: И вопрос из любопытства: Вы сами пишете англоязычные варианты своих статей? Просто интересно.


    1. Andrey2008
      02.12.2016 09:33
      +1

      1. Версия полностью функциональна.

      2. В планах уже стоит задача.

      3. Переводчик.


  1. T-Khan
    02.12.2016 09:33
    +5

    Сделайте один из возможных вариантов «баннер на сайте». Я вот использую кучу свободных опенсорсных проектов, но в их исходники лазил чуть реже чем никогда. Увидев же баннер на сайте, SF, github, в меню «О программе» я бы как минимум заинтересовался.
    К тому же, формулировка комментария очень странная. Можно подумать, что люди отправляют свои исходники на какой-то конкурс, по результатам которого лучший проект будет проверен PVS. Лучше бы написали просто, без кривляний: «This project was checked with free version of PVS-Studio».


    1. Andrey2008
      02.12.2016 09:34

      Пока мы поэксперементируем с существующей моделью.


  1. KpuTuK
    03.12.2016 00:27
    -2

    Вот у нас (в России) всегда так — дали что-то нахаляву бесплатно, а они и нос воротят, то им ни так, это им ни этак. А потом удивляются —

    почему все деньги за все дерут?


  1. BlackRaven86
    03.12.2016 23:56
    +4

    // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

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


    1. Wohlstand
      07.12.2016 22:26
      +1

      Хотя можно было бы написать что-то вроде этого, (хотя можно на выбор): "// We are using PVS-Studio Static code Analyzer for C, C++ and C#: ..., try it yourself!", "// This project is debugging with PVS-Studio Static code Analyzer for C, C++ and C#: ...", и т.п. Хотя, можно и не обращать внимания на эту надпись, ведь теперь PVS нацелен в основном на большой бизнес, а там дополнительные подписи в коде совсем неприемлемы, да и у них денег всегда достаточно, чтобы купить даже дешевую лицензию (только маленькие компании с ограниченным финансированием не могут себе позволить даже лицензию по цене как на одного человека). Бизнес даже если и пользуются бесплатным и свободным софтом, иногда крайне нуждается в наличии официальной поддержки производителя, чтобы можно было на кого свалить за убытки и чтобы не тратить время и деньги на собственной поддержке дополнительных проектов и либ, чтобы просто позвонить, задать любой тупой вопрос или чтобы тем побыстрее исправили баги.


  1. Deu
    04.12.2016 09:51
    -1

    Спасибо команде PVS за возможность попользоваться вашим продуктом. Внесу свои пару копеек в этот проект. Первый раз пользую статический анализатор, есть много интересного. Есть кое какие логические ошибки, которые могли бы анализатором тоже определяться. Например сегодня обнаружил, что если в сеттере свойтсва присвоение вызывать после OnPropertyChanged, это может давать непредвиденные результаты при попытке обрабатывать новое присвоенное значение в событие PropertyChanged. Короче вот так не правильно

    set
                {
                    if (_value == value)
                    {
                        return;
                    }
                    OnPropertyChanged("Value");
                   _value = value;
                }
    


  1. Wohlstand
    07.12.2016 22:14

    Мне Австрийский друг как раз слил официальную статью на английском (которую я быстро переключил на русский) как раз про это. Скажу, что это очень интересный сюрприз!
    Опробовал его некоторое время назад на Linux, чего я долго ждал. Это пока был недельный триал, и как раз попробовал его в деле, и очен хорошо работает из под Qt Creator! Конечно много работы в коде (редактор уровней придётся переписать целиком, чтобы позже можно было добавить полноценную поддержку кооперативного редактирования через сеть). Огромное спасибо за такую возможность!


    (Немного подробнее: мои проекты все писаны под MinGW, GCC и CLang и они не совместимы почти с ни одной MSVC (хотя возможно с 2015-й условно совместим, остальное всё либо забаговано, либо имеют отсталую поддержку C++11 и не имеют даже набросков C++14, которые уже были в MinGW, GCC (аж 4.8/4.9-х версий) и CLang на момент VisualStudio 2012/2013), тем более даже на винде предпочитаю Qt Creator, который по мне более дружелюбный и гибкий, через него меньше телодвижений, чтобы прыгать от функции к функции, встроенная возможность рефакторинга, которая в студиях отсутствует (хотя, исправляется плагином VisualAssist, но он в разы медленее чем это через Qt Creator, что чувтсвуется на больших проектах), а MinGW за то, что он быстрее чем MSVC получает поддержку всех современных стандартов C++ и весит в разы легче, и даже за собственный набор библиотек, не требующий доустановки msvcr-ы).


    1. Wohlstand
      07.12.2016 22:50

      P.S. Так и не спросил: среди сообщённых предупреждений были и о явном привидении float / double к целому числу. (Хотя и приводил их к double / long double для более точного деления с последующим отсеканием дробной части и приведение к целому. Либо, например, округление плавающего в целое с привидением, тоже выдавалось предупреждение). Как по вашему лучше делать такие окруления?


      1. Andrey2008
        07.12.2016 23:03

        Мне кажется как-то так:

        int ToInt(const float val)
        {
          return static_cast<int>(val > 0 ? val + 0.5 : val - 0.5);
        }
        


        1. Wohlstand
          07.12.2016 23:09

          Я сначала использовал старый подход:

          double floating = ....;
          long integer = static_cast<long>(std::round(floating));
          

          И он как раз выдавал мне предупреждение здесь. Уже позже я скопировал код из Qt-шного qRound и сделал множество функций под разные unsigned/signed short, long, long long, и т.п., потому что штатный только под int, и получил вот такое:
          inline long lRound(double d)
              {
                  return d >= 0.0 ? static_cast<long>(d + 0.5) :
                                          static_cast<long>(d - static_cast<double>(static_cast<long>(d - 1))
                                          + 0.5) + static_cast<long>(d - 1);
              }
          

          Анализатором проверить тут увы, не успел, дела, да и триал просрочился.