PVS-Studio и GitHub-сообщество: начало дружбы

    Некоторое время назад было принято решение сделать статический анализатор кода 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. Пожалуйста, ознакомьтесь со списком.
    PVS-Studio
    239,98
    Static Code Analysis for C, C++, C# and Java
    Поделиться публикацией

    Комментарии 150

      +18

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

                          0

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

                            0

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                +1

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

                                  +7
                                  Итого, я не вижу никакого подтверждения слов:
                                  не покрывает нанесенный ущерб репутации проекта, дискредитации проекта.

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

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

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

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

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

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

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

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

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

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

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

                                      Но я вас понял, поэтому раскланиваюсь и остаюсь в отношении ваших утверждений при своем мнении.
                              +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.». И тогда заживём. Ну а почему нет?

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

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

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


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


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

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

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

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

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

                                    –1

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

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

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


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

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

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


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


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

                                        +7

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


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


                                        3)


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

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


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


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


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


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


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


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

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

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


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

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

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

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


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


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


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


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

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

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

                                                По разработке ПО вообще много книг и методик. Они совсем не о том, «как писать на C++ и что появилось в C++17», поэтому не всегда интересны рядовому программисту, а зря.
                                              +4
                                              — А это правда, что Иван Иванович выиграл машину в лотерею? — Правда. Только не машину, а тысячу рублей. И не в лотерею, а в преферанс, и не выиграл, а проиграл…

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

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

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

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


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

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


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

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


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

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

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

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

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

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


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

                                                  –4

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


                                                  Э́тика (греч. ἠθικόν, от др.-греч. ἦθος — этос, «нрав, обычай») — философская дисциплина, предметами исследования которой являются мораль и нравственность[1]

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


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

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

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


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

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

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

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


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

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

                                              +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)
                                              */


                                              Чудо от использования PVS-Studio не произойдёт. Однако PVS-Studio мог бы дополнить Coverity и поможет устранять ряд ошибок на самом раннем этапе. Например, мне кажется, что вот с этим кодом не всё в порядке:
                                              Код
                                              myhtml_tree_attr_t * myhtml_token_node_attribute_first(myhtml_token_node_t *token_node)
                                              {
                                                  return token_node->attr_first;
                                              }
                                              
                                              myhtml_tree_attr_t * myhtml_token_node_attribute_last(myhtml_token_node_t *token_node)
                                              {
                                                  return token_node->attr_first;
                                              }

                                              Мне кажется, во второй функции следовало написать «return token_node->attr_last;»

                                              Или, например, здесь:
                                              void * mycss_property_destroy_text_decoration(mycss_entry_t* entry, void* value)
                                              {
                                                  if(value == NULL)
                                                      return NULL;
                                                  
                                                  mycss_values_text_decoration_t *text_decoration = (mycss_values_text_decoration_t*)value;
                                                  
                                                  if(text_decoration->color)
                                                      text_decoration->color = mycss_declaration_entry_destroy(entry->declaration, text_decoration->color, true);
                                                  
                                                  if(text_decoration->line)
                                                      text_decoration->color = mycss_declaration_entry_destroy(entry->declaration, text_decoration->line, true);
                                                  
                                                  if(text_decoration->style)
                                                      text_decoration->color = mycss_declaration_entry_destroy(entry->declaration, text_decoration->style, true);
                                                  
                                                  return mycss_values_destroy(entry, text_decoration);
                                              }

                                              Есть подозрение, что после Copy-Paste не изменена левая часть «text_decoration->color =».

                                              Это я к тому, что тот-же Coverity не является панацеей.
                                                +5
                                                Ну лично мне, например, не нравится идея плодить кучу комментариев в проекте вместо одного упоминания вашего проекта на самом видном месте: в README.{md,txt,rst}, который отображается на главной странице репозитория. Я и лицензию-то в каждый файл не буду вставлять, если это не будет строго необходимо (частичное лицензирование). При этом я никакого негатива к PVS не испытываю. Но вот плашечку на главной (и на сайте бонусом) я бы с благодарностью повесил, а сорцы все править не стал бы.
                                                Кстати, в своих проектах (не C++) я использую сервисы типа CodeShip и Scrutinizer. Их плашки у меня установлены (хотя они этого не требуют). Но если бы они хотели от меня модификации исходников, я бы от них отказался.
                                                  –4
                                                  А мне вот не нравится, что за последние несколько лет (порядка 5) в среднем я раз в день сталкиваюсь с ошибкой какой-нибудь программы:
                                                  — Опенофис, падающий во время работы из-за того, что история изменений съела гига полтора? Легко.
                                                  — Рейд-контроллер, который полностью потерял инфу о сконфигурированном SAS рейде при подключении к выключенному серверу Sata диска? Пффф…
                                                  — Один альтернативный продукт для работы с офисными файлами, который выжрал 1,5 гига и тоже упал при попытке открыть мой ods? Ха-ха-ха. Не смешно.
                                                  — Программа для 3D проектирования, у которой некоторые «умные» функции определения сторон начинали глючить в виде «прямоугольная изометрия»? Да, я извращенец и мне нравится проектировать именно так!
                                                  — Программа, которая не отображает данные, если во время их загрузки и выводе на экран была не в фокусе? А программист точно в c++ умеет окошки писать?

                                                  Вот куда мне жаловаться на то, что мне нифига этот подход разработчиков не нравится?
                                                  Подскажете?
                                                    –4
                                                    Отличные доводы. Присоединяйтесь к обсуждению.
                                                      +4

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


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

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

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

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

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


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


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

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

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

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


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


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


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

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

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

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

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

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


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


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

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

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

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

                                                                        0
                                                                        А теперь пособирайте открытые проекты и посчитайте, сколько сотен мест там найдётся. Я даже в статьи такие места не добавляю, ибо очевидно, но никто не думает исправлять.
                                                                        0
                                                                        современный, думаю имеется в виду, которому меньше 10 или 20 лет после релиза. На пример вот gcc 4.4 http://melpon.org/wandbox/permlink/UHC7Ee0wWxncUxOx находит проблему
                                                          +4
                                                          Опенофис, падающий во время работы из-за того, что история изменений съела гига полтора? Легко.

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

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

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

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

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

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

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

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

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

                                                          Хорошая опечатка :)
                                                        0
                                                        И вы реально проверяли, что пользы не будет?

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


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

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

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


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

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

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

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

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


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


                                                              ====


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


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


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

                                                              а


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

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

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


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


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

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

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

                                                                    Объясняю:

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

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

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

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

                                                                        Что вы скажете о «не критичных» багах в этих проектах?
                                                                          +3
                                                                          Just for fun тут не причём. Такие люди более, чем довольны нашей акции.

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


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

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


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


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

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

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


                                                                              1. Надо по возможности пользоваться статическими анализаторами даже для некритического софта, или
                                                                              2. Надо пользоваться PVS в любом случае.
                                                                                –1
                                                                                Почему в любом случае то. Хоть как-то внедряйте методологию статического анализа.
                                                                                Надо по возможности пользоваться статическими анализаторами даже для некритического софта.
                                                                                По возможности? Надо программировать без варнингов компилятора, пользоваться бесплатными инструментами повышения качества кода. И если есть возможность, привлекать платные инструменты.
                                                                                  +1

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


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

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

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

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

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

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


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


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

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

                                                                              Никто не забыт.
                                                                                +1
                                                                                В чём это выражается?
                                                                                  –2
                                                                                  Выделили в отдельную категорию. Очевидно же.
                                                                                    +5

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

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

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

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

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

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

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

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

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

                                                                    0

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

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

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

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

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

                                                                            +6

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


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


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


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


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

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

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

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

                                                                              Дословно и по сути? Когда мы работали с Unreal Engine 4, некоторые баги неделями разбирали разные команды своих разработчиков, чтобы исправить.
                                                                        0
                                                                        Легко!
                                                                        Открываете любой свободный проект.
                                                                        Находите лицензию распространения его кода.
                                                                        Читаете строчку:
                                                                        В случае использования этого проекта для написания статей по проверке программы статического анализа кода на ошибки вы должны разместить название нашего проекта на сайте на каждой страничке

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

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


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

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

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

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

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

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

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


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

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


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

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


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

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


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

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

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

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

                                                                                  +5
                                                                                  Ну вот и в сорцах мусорить желающие нашлись.
                                                                      –1
                                                                      Продолжение темы бесплатного лицензирования: Бесплатный PVS-Studio для тех, кто развивает открытые проекты.
                                                                      +2
                                                                      Я правильно понял, что если сделать эти комментарии, то можно переходить к коду из списка ошибок без потери «триала» через 50 переходов? Т.е. получается полноценная полная версия за счёт двух строчек в каждом файле реализации?
                                                                        0
                                                                        Да.
                                                                          0
                                                                          А если чужой фрэймворк используешь скопировав его в папку проекта — там тоже надо в каждом файле комментарии проставлять, или он просто будет игнорироваться, если там не будет комментариев?
                                                                            +3
                                                                            Файлы из этого проекта не будут проверятся, о чем будет выдаваться соответствующее сообщение. Просто исключите в настройках папку с фрэймворком из проверки.
                                                                        +6
                                                                        use case, же, а не пользователь-чемодан
                                                                          –2

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

                                                                          +18

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

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

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

                                                                              +2
                                                                              Надо добавить тогда хорошее чувство юмора в требования к бесплатному использованию продукта.
                                                                                –1
                                                                                Уточните, пожалуйста, несколько моментов. Оно должно распространятся на всю команду, лидера или среднее по команде? Только open-source или индивидуальным разработчиком тоже надо соответствовать? А то сделаем, да не так опять.
                                                                                  +1
                                                                                  Давайте сразу от души — всей команде. А то ходят там угрюмые, пишут свой код, на пользователей огрызаются.
                                                                              –4
                                                                              Уверен, что если бы авторы PVS-Studio раздавали по 10 000 рублей за бесплатное использование, то появилось бы куча негативных комментариев в стиле «совсем охренели! за эти копейки еще напрягаться. вот если бы по 20 000...»
                                                                              +2

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

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

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

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

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

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

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

                                                                                          +1

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


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

                                                                                            +5

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

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

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

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

                                                                                      +1
                                                                                      1. Реально, интеграция типа Coverity гораздо удобнее.
                                                                                      2. А что делать компаниям (мелким, но), выпускающим Open Source? Хоть и выпускающим эти продукты часто от частного лица, но вот у меня большая часть больших проектов (open source, часто автор давно ушел, а я maintainer) принадлежат организациям.
                                                                                        +2
                                                                                        > Почти все компании, которые разрабатывают под Linux — перешли на CLion, а количество людей, которые используют «Vim и аналоги», сейчас резко сокращается… Вообще рекомендую присмотреться к продуктам JetBrains, а точнее к TeamCity и YouTrack. Эти продукты используют почти ВСЕ крупные и средние компании, и интеграция туда PVS-Studio — это очень правильная Business-модель.

                                                                                        Эдык его накрыло, такого понаписал, аж волосы на голове зашевелились
                                                                                          +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
                                                                                            Наш продукт включает в себя библиотеку glibc, распространяемую под лицензией LGPL. В соответствии с лицензией LGPL, по запросу третьего лица, мы готовы предоставить объектные файлы, которые позволят перекомпоновать наш продукт с использованием другой версии glibc. Мы гарантируем работоспособность нашего продукта только с официальной версией glibc 2.23. Запросы на получение объектных файлов можно отправлять через форму обратной связи.
                                                                                              –6
                                                                                              Пожалуйста, читайте внимательнее. Я процитировал ответ на эту же вашу стандартную отписку. Если вы не понимаете по-английски, приведу вам цитаты из перевода лицензии.

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

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

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


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

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

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

                                                                                                  Нет, я серьёзно не понимаю, почему opensource-проектам нужно вставлять в себя для проверки унизительные комментарии, а вам — так сложно выполнить два ужасно простых требования лицензии? У вас от этого убавится?
                                                                                            +3
                                                                                            А я вот для себя пропатчил вашу программу для расстановки комментариев:
                                                                                            1. Она проставляла комментерии во все файлы, включая AssemblyInfo.cs и *.Designer.cs, хотя анализатор не ругается, если их там нет — я это убрал
                                                                                            2. Не добавляла пустую строку после себя — пришлось добавить
                                                                                              +4
                                                                                              Надо вам дочернюю пиарастическую компанию от себя отпочковать, для канализации ненависти. Типа PRS-Studio назвать, пусть занимаются продвижением ваших сомнительных маркетинговых инициатив. В любой критиканский тред можно будет смело впрыгивать с криком «да не поверишь, братан, сами давно мечтаем всё раздать под zlib-лицензией, но вот эти пиарасы не дают!»
                                                                                                0
                                                                                                Решил послать весточку интересующимся анализатором PVS-Studio. Сегодня 06.03.2013 в 15.00 состоится пробный стрим, где можно будет вживую посмотреть на процесс работы PVS-Studio и интерактивно пообщаться. Присоединяйтесь к нашему стриму. Подробности (см. раздел Важно).
                                                                                                  0
                                                                                                  Уверены, что сегодня 2013 год? ;-)
                                                                                                    0
                                                                                                    Упс. 2017. Присоединяйтесь прямо сейчас.
                                                                                                      +1
                                                                                                      Заготовка давно готовилась :-)

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

                                                                                                  Самое читаемое