Как использовать PVS-Studio бесплатно

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

    Введение


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

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

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

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

    Размышления


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

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

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

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

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


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

    Шаг 1.


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

    Name: PVS-Studio Free

    Key: FREE-FREE-FREE-FREE

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

    Шаг 2.


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

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

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

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

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

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

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

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

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

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

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


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

    Заключение


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

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

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

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


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

    Update


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

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

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

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

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

    Update: Поддержка


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

    Общение через сайт StackOverflow сократит объем переписки, и позволит нам часто отвечать на вопросы, просто давая ссылку на уже обсужденный вопрос по данной теме. Более того, многие вопросы просто не будут заданы, так как пользователи смогут найти готовые ответы на StackOverflow самостоятельно, и им не потребуется ожидать нашего ответа в почте.

    Итак, всех кто использует бесплатную версию PVS-Studio просим задавать нам вопросы на сайте StackOverflow. Чтобы ваш вопрос не остался незамеченным, используйте тег «pvs-studio».

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

    См. также статью "Поддержка пользователей, использующих бесплатную лицензию PVS-Studio теперь осуществляется на сайте StackOverflow".


    Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Andrey Karpov. How to use PVS-Studio for free.
    PVS-Studio 352,25
    Ищем ошибки в C, C++ и C# на Windows и Linux
    Поделиться публикацией
    Похожие публикации
    Комментарии 662
    • +14
      Отлично! Супер! Единственная просьба — разрешить не только С++ комментарии, но и Си (/* */). Проект в релиз собирается по стандарту С90, там комментарии "//" не даст вставить компилятор
      • 0
        Расскажите, пожалуйста, что за проект? C90 сейчас все-таки экзотика.
        • +3

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

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

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

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

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

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

              • +22

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

                • +3
                  Попытки редактировать поля Registration и Serial в настройках PVS Studio намертво убивают Visual Studio :( (Upd: оказывается не намертво, но где-то полминуты Студия висела.)
                  • +1
                    Профайлер плагинов в VS2017 покажет кто где не прав! :-)
                    • +1
                      Боюсь что к тому времени выйдет Rider, и Студия будет постепенно уходить в забвение.
                      • +1
                        Придется сделать нам плагинчик для Rider.
                      • 0
                        Боюсь, что Rider для enterprise — это далекое будущее… А значит студия еще поживет…
                  • +10
                    Уже два раза пытался внедрить ваш продукт на производстве, но есть проблема. Ищешь ты удобного случая, подходишь к начальству говоришь: «Тут есть такая классная штука .....». А тебе в ответ: «Прайс покажи», ну ты мнешься немного, говоришь ну вот полгода назад мне в письме отвечали столько-то. На тебя смотрят сквозь густую бровь: «Ты что на китайском рынке, где ценник на товар не указывают». И ты снова идешь пишешь письмо, и когда этот удобный случай настанет снова…
                    • –16
                      Казалось бы, возьми да напиши на support@viva64.com и не надо ждать удобного случая.
                      • +53
                        Казалось бы, возьми да повесь прайс прямо на сайте, и не надо никакие письма писать…
                        • +2
                          Сколько можно пережевывать одно и то же. Корпоративные продукты и их внедрение имеют свою специфику и «прайс по запросу» — одна из них.

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

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

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

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

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

                                    Но у вас-то хотят узнать цены на коробочное решение. Ну если оно у вас есть, конечно.

                                    Потому как из-за отсутствия прайса — впечатление хреновое. То ли обдерут как липку, то ли у людей нету продукта, а есть полузаказные (исследовательские) варианты программы.
                                    • 0
                                      то ли у людей нету продукта


                                      Зайдите в раздел Downloads и скачайте. Сможете понять, продукт это или не продукт.
                                      • –2
                                        Ну батенька, ну Брукса почитайте. Или вы утверждаете что у вас комплексный программный (коробочный) продукт или у вас программа, которая при внедрении подтачивается напильником под клиента.

                                        Если внедрение требует усилий от вас(и только от вас) — это не продукт.
                                        • +1
                                          Мир не такой чёрно-белый. Наличие дистрибутива и кнопки «выполнить анализ», не гарантирует что всё у всех получится, и вот здесь и нужна поддержка. И дело не в том, что мы криворуки. Статический анализатор — это сложный продукт. И как следствие есть масса нюансов, которые невозможно учесть. Сталкиваемся с ними не только мы, но и, например, старшие коллеги из Coverity. В свою очередь предлагаю прочитать их статью: "A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World". В ней как раз рассказывается, что не всё так просто в этом самом Real World.
                                          • 0
                                            Давайте не путать отсутствие продукта и цену поддержки. На поддержку вполне возможен отдельный прайс. В пределе как в 1С-Бухгалтерии. 1С — вполне себе продукт, но без настройки непригоден для использования. Отличие в том, что настройку делают сторонние фирмы.

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

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

                                            P.S. Интересно, вы вспомните хоть один пример компилятора, подпиливаемого под заказчика?
                                            • 0
                                              P.S. Интересно, вы вспомните хоть один пример компилятора, подпиливаемого под заказчика
                                              Легко. ICC, SCC. Cygnus Solutions на этом специализировались (и да, скачать с сайта у них можно было весьма небольшую часть того, что можно было купить). Со временем, правда, компиляторы стали более «коробочными» — я знаю что пять лет назад они ещё вовсю пилились под конкретных заказчиков, но не знаю — пилятся ли всё ещё сейчас…
                                              • 0
                                                я то имел ввиду компилятор Алгол-68, который команда Терехова за месяца раскручивала на новую архитектуру процессора. Кто делал компилятор под NeuroMatrix не помню, но там тоже только кодогенератор писали.

                                                Но, повторюсь, это не продукты, а решения. Чуть иная категория.
                                              • 0
                                                Прочитал все ваши диалоги и не могу сдержаться спросить: вы точно не путаете настройку программ, разработку и поддержку? Просто выглядит так, будто в программе есть гибкие настройки, но от нечего делать разработчики переписывают код каждый раз, когда им пишут на почту.
                                                • –7
                                                  Это вопрос ко мне? Если ко мне, то я бы сказал так, что их программа не является комплексным программным продуктом и не может корректно обрабатывать результаты препроцессирования любых #define. Поэтому они затачивают вручную программу на конкретный набор используемых макроопределений.

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

                                                  Ну как пример, что мы используем
                                                  #define CCASSERT(predicate) _x_CCASSERT_LINE(predicate, __LINE__)
                                                  #define _x_CCASSERT_LINE(predicate, line) _x_CCASSERT_LINE_CAT(predicate,line)
                                                  // cppcheck-suppress variableScope
                                                  #define _x_CCASSERT_LINE_CAT(predicate, line) \
                                                  typedef char constraint_violated_on_line_##line [2*((predicate)!=0)-1];


                                                  Это assert, работающий в compile-time. И подавление диагностики от cppcheck там не спроста. Но если вместо настройки макроопредений под систему статического анализа они пытаются сделать наоборот (настроить систему статанализа под используемые макро) регулярное добавление ручек в в конфиг является неизбежным…

                                                  Мой совет — спросите их напрямую, может быть расскажут… я лично сужу по куче признаков, начиная с конской цены в 25 миллионов рублей (информация с тех времен, когда они ещё цену не скрывали). Ну и см выше об отдельной цене для каждого заказчика.
                                                  • 0
                                                    я лично сужу по куче признаков, начиная с конской цены в 25 миллионов рублей (информация с тех времен, когда они ещё цену не скрывали)


                                                    • +2

                                                      В PVS-studio можно подавлять предупреждения комментариями.

                                                      • –3
                                                        я чуть о групповом подавлении ложных сообщений. Именно в нем и можно(и нужно) добавлять фильтры под заказчика.
                                                        • 0

                                                          Тогда я вас не понимаю. Что вам не нравится-то?

                                                          • –3
                                                            Мне не нравится, когда цену назначают исходя из толщины моего кошелька. я не против сегментации, когда есть явный прайс с вариантами подешевле и получше.
                                                            • 0

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

                                                              • –6
                                                                Перечитайте, пожалуйста ветку. Или объясните, к какому именно посту вопрос. А то похоже, что я туплю… Может вы придрались к этому ??

                                                                Ну тогда почитайте, что пишут авторы PVS-Studio. Собственно я всего лишь попытался конкретизировать их слова

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


                                                                Это авторы PVS-studio считают, что нужно подтачивать их программу напильником, а не я. я всего лишь пояснил, в каких местах её, скорее всего, точат.
                                                                • +3

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

                                                                  • 0
                                                                    Видимо туплю. Объясните тогда (лучше в личке) против каких слов вы возражаете.
                                  • +7
                                    Да знаем, хлебали этого говна. Начинаешь изучать, какие продукты на нужную тему вообще есть на рынке. Находишь три варианта, цена от компании X и от компании Y отличается в разы, а у компании Z на сайте цены вообще нет, один только маркетинговый буллшит и вот это вот «возьмите да напишите». При этом ни о какой кастомизации и аццкой интеграции вопрос не стоит. Вообще не стоит, не может стоять, в силу специфики продукта. Вот нахуа?? Зачастую «возьмите да напишите» означает совершенно антигуманные цены, но и это не всегда. Пишу, высылают прайс, явно стандартный какой-то. Всё то же самое, как если бы просто цену на сайте указали, только ещё дополнительно надо прыгнуть через горящее кольцо и подождать ответа от нескольких часов до нескольких дней. По-приколу люблю таким писать с личного мусорного гмайл-аккаунта, всё равно отвечают, высылают тот же самый прайс :)
                                    • +1
                                      Ладно если так, а то иногда для запроса цены надо анкету заполнить в которой разве что результатов твоих анализов нет.
                                      • 0
                                        Главное, чтобы как Интел не сделали, чтобы анкету надо было заполнять только чтобы скачать триалку новой версии.
                                        Или как постоянные посетители бара «Голубая устрица» компания Оракл — чтобы скачать что-то надо сперва зарегистрироваться на сайте, при попытке регистрации должно сперва письмо придти для окончания регистрации, а письмо-то и не приходит…
                                        • +7
                                          NVidia тоже не отстаёт — для каждой ихней библиотечки надо подавать заявление на очередную «девелоперскую программу», в процессе чего заполнить анкету, а кто ты, да что ты, да как ты собираешься использовать, после чего они тебя рассмотрят на пленуме ЦК и зааппрувят, а может быть и нет. При этом аппрув, хоть и занимает порой несколько дней, похоже, автоматический — я как-то раз написал в ответ на вопрос «зачем хотите это использовать?» что для пост-обработки детской порнографии, деньги от которой планирую направить на наркоторговлю, работорговлю и поддержку международного терроризма — таки всё равно зааппрувили.
                              • +3
                                Странно, на самом деле. Сплошь и рядом такое (к сожалению), и не только в России. Недавно 2 недели MaximIntegrated мурижил, чтоб выставили счёт на одну отладочную платку, ну никак не хотели продавать.

                                зы: хочу PVC studio для эмбеда (БЕЗ Visual Studio)
                                • –4
                                  Это нормальная стандартная практика.

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

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

                                    • +6
                                      Если мы сейчас начнём по очереди приводить примеры товаров с ценниками и без, то ветка уйдёт в бесконечность, учитывая, что ни география, ни предметная область вопроса не ограничена.
                                      • +9
                                        Так в чём проблема продумать и построить схему ценообразования такой, что её не придётся прятать? Думаете JetBrains добился бы распространения своей IDE, если бы прятал ценник?
                                        • 0

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

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

                                            Вот уж действительно, подсадили на иглу смолоду.
                                          • +1
                                            И тоже дают с неё скидку при покупке через sales@jetbrains.com или реселлеров.
                                        • +1
                                          Только это ничего не значит. NASA, например, платит в два раза больше им. Недавно вон пуск за $120млн. купили.
                                          • +3
                                            Потому что NASA, если сильно упростить, покупает примерно так:
                                            — Хотим вот эту позицию (тычет пальцем в прайс), плюс вот это, это и это. И чтобы ещё всё застраховано было по максимальному тарифу. Ах да, и ещё хотим контролировать каждый ваш чих в момент предоставления услуги.
                                            — Не вопрос. Тогда цена будет вот такая.
                                            — По рукам.
                                            • +1
                                              NASA не страхует пуски как государственная компания. Она вкладывает дополнительные деньги в дополнительные проверки.
                                          • +1
                                            А где кнопочка «Заказать»?
                                          • +1
                                            Вот вы ведете себя как очень прогрессивная компания, готовая искать новые каналы сбыта и рекламы. Чего только стоит этот топик.
                                            Так может попробуете «сломать систему» еще разок и сформировать подход при котором потенциальный клиент может заранее оценить затраты на внедрение?
                                            • 0
                                              Я ничего не понял. Прошу сформулировтаь предложение как-то иначе.
                                              • 0
                                                Стандартная практика — не публиковать прайсы и не раздавать бесплатных лицензий за комментарии в коде.
                                                От второго вы смогли отойти, попробуйте отойти и от первого.
                                                • 0
                                                  В день когда на viva64.com появится прайс, миллионы россиян вздохнут спокойно… А собственно почему? Вот лично Вам какое дело до наличия цен на сайте?

                                                  Если у Вас есть интерес к PVS-Studio, то напишите с корпоративной почты и узнаете цены, секрета в них нет. А если интереса нет, то какая разница, указаны они на сайте или нет.
                                                  • +1
                                                    я знаю цену, которую вы заломите для нашей компании. А чтобы узнать реальную цену на ваш продукт — нужно писать не вам, а выискать 5-10 ваших клиентов и у них узнавать, по какой цене они купили.

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

                                                    А искать ваших клиентов — откровенно лень. Потому, если уж покупать продукт для статического анализа — то не у вас, а у фирм, не скрывающих сои прайсы.
                                                    • –1
                                                      а у фирм, не скрывающих сои прайсы.


                                                      Жаль таких фирм почти нет.
                                                      • +1
                                                        Да ноль проблем; 1C, ИнСат, Embarcadero
                                                        … ну в общем все, у кого есть продуктовое решение, не требующее подтачивания напильником под клиента.
                                                        • 0
                                                          Ну и покупайте статический анализ у 1С и ИнСат.

                                                          Сразу видно теоретика. Вам просто не нужно, вот и все.
                                                          • +1
                                                            Статический анализ нам полезен. CppCheck я использую. Но судя по косвенным признакам — ваши цены не для нас. 200 тысяч строк кода — не тот размер, где миллионы на PVS-studio окупятся.

                                                            Поэтому работаем по-старинке — код периодически компилируется дюжиной компиляторов под полудюжину операционок.

                                                            Ну и опять-таки, отпугивает необходимость адаптировать код PVS-studio под каждый проект.
                                                            • 0

                                                              cppcheck — это несерьёзно, на самом деле.


                                                              Coverity скорее попробуйте или даже clang static analyzer. И вообще, я на днях таки допилю статью на тему недосравнения всех трёх (мне, наконец, ответили из Coverity с решением моей проблемы по запуску их анализатора в моей конфигурации, что дало возможность потестить этот анализатор и в очередной раз затянуло статью), там можно делать выводы.

                                                              • 0
                                                                Не понимаю, почему вы решили, что clang static analyzer продукт более высокого уровня, чем coverity.
                                                                • 0

                                                                  Не понимаю, почему вы решили, что я так решил.

                                                                  • 0
                                                                    Coverity скорее попробуйте или даже clang static analyzer.

                                                                    вот это даже мне и не понравилось
                                                                    • 0

                                                                      О, прекрасные человеческие языки с их неоднозначностями.


                                                                      В общем, оно там в другую сторону, считайте.

                                                            • –1
                                                              Но в целом вы правы, нам ваш продукт не выгоден. Сколько он может сэкономить времени в год? Ну скажем 2 недели на поиски ошибок. Вот половину этого (неделя ФОП программиста) и должна стоит лицензия на рабочее место. Тогда внедрение выгодно. А при тайных ценах — даже экономический расчет не получится сделать.
                                                              • –1

                                                                Т.е. по вашему и покупателям IntelliJ CLion анализ не нужен, коли ваш продукт не покупают? Я конечно им не пользовался (на c/c++ не пишу), но сомневаюсь, что в этом продукте JetBrains отступились от своей практики внедрения он-лайн статического анализа с быстрыми проверками и возможностью более полного статического анализа по запросу…
                                                                с ним только одна проблема — это побочный клиент-сайд функционал

                                                                • +1

                                                                  Кстати, непонятно, почему вас минусуют. У CLion анализ находит любопытные и пахнущие места, некоторые из которых не находит тот же PVS или clang.

                                                        • 0
                                                          А ведь раньше был там прайс. Хотя уже подозрение иногда, что могло и присниться. Помню, что на команду в 9 человек что-то около 110 т.р. выходило. Если сейчас цена приблизительно такая же, то это очень не плохо.
                                            • +2

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

                                              • +1
                                                Я что-то не понял, вот, допустим, я очень корпоративный разработчик — кроме мук моей воспалённой совести мне что-то помешает держать ваши комментарии только в моей рабочей копии и автоматически удалять перед каждым коммитом?
                                                • +5
                                                  В очень корпорации иногда приходит очень внезапно проверка. И очень внезапно обнаруживает у вас нелицензионный софт на компе. В конце концов, для очень корпорации это не такие уж и деньги.
                                                  • +1
                                                    Возможно. Но зачем тогда требовать какой-то дополнительный комментарий в начале каждого файла?
                                                    • +3
                                                      Очевидно чтобы они работали как реклама? Да, какой-то «Злобный Буратино» может настроить в своём личном проекте всё так, как вы сказали — ну так он и без того платить не будет.

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

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


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

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

                                                          • +3
                                                            3aicheg, для приличия хоть, добавить бы, сослагательное наклонение
                                                            • 0
                                                              *для приличия делает вид, что понял комментарий*
                                                              • 0
                                                                Имеется в виду замена явного намерения
                                                                всё, что нужно, я сваяю левой ногой минут за пять

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

                                                                              А у PVS'ников задача — пройти их все и получить денег, однако…
                                                                  • +2
                                                                    Всё так сделали, спасибо! Успехов вашему проекту.
                                                                    • +1
                                                                      Попробуемс))
                                                                      Для небольших групп можно сделать как у Unreal Engine, типо в проектах с прибылью до скольки то там, юзай бесплатно, как превысил — отчисляй пенни.
                                                                      • +1
                                                                        Это сложно и непонятно как отслеживать. Плюс это не решает вопроса с большой компанией, продукт которой бесплатен, но по факту косвенно приносит прибыль.
                                                                        • +1

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


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


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

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

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

                                                                          Единственная просьба, разрешите, чтоб эти сроки были не первые в файле, просто в пределах «шапки», в пределах ~20 строк, например. Все же, информация о разработчике и владельце прав на код важнее, имхо.
                                                                          • +3
                                                                            Если информация о разработчике и владельце прав на код важнее, то предлагаем рассмотреть вариант приобретения платной лицензии. А так, извините, нет.
                                                                            • 0
                                                                              Воля Ваша.
                                                                              Тогда давайте проясним один момент. Допустимо ли, с Вашей точки зрения, удаление «шапки» после окончания разработки?
                                                                              • +3
                                                                                Я вот кстати не знаю, что такое «окончание разработки». А вы?
                                                                                • 0
                                                                                  Это случай, когда продукт на 100% соответствует требованиям технического задания.
                                                                                  Еще одним примером является момент запуска продукта в серию.
                                                                                  • +1
                                                                                    Ну а потом его все, сразу на кладбище?

                                                                                    Вот у PVS-Studio окончание разработки — это когда продукт на кладбище окажется, как мне кажется. А у вас как?
                                                                                    • +3
                                                                                      Вот, допустим, человек разрабатывал-разрабатывал код, честно ставил в начале каждого файла ваш комментарий. Заказчик видит, говорит: «Убери.» Должен ли он сказать в ответ твёрдое и решительное «Нетъ!», или же допустимо убрать комментарий, но перестать пользоваться бесплатной версией PVS-Studio для этого проекта? А когда интенсивная фаза разработки, в целом, закончена, и код выкинут на кладбище передан заказчику, который вообще не слышал ни о каком PVS-Studio — этот заказчик имеет право убрать комментарий? А если заказчик что-то ещё сам дописал и хочет от изначального разработчика неких доработок — должен ли тот добавить комментарий обратно?
                                                                                      • +4
                                                                                        Ответ прост: если возникают сложности с бесплатной лицензией, значит лицензия не подходит для данного проекта.
                                                                                        • +1
                                                                                          Стоит ли это понимать, как:
                                                                                          «Пользуетесь PVS-Studio — вставляйте комментарии. Перестали пользоваться — можно удалить.»?
                                                                                          • +2
                                                                                            Это стоит понимать как сложности :D
                                                                                            • –2
                                                                                              То есть это как продажа души — один раз и на всю жизнь?
                                                                                          • +4
                                                                                            Вообще не ответ, а вольные фантазии в духе гоголевской Коробочки:
                                                                                            — Право, я боюсь на первых-то порах, чтобы как-нибудь не понести убытку. Может быть, ты, отец мой, меня обманываешь, а они того… они больше как-нибудь стоят.

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

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

                                                                                                • +2
                                                                                                  А продукт Боженька разрабатывает, что даже спросить ничего нельзя, а можно только «славатебегосподи»?
                                                                                            • 0
                                                                                              Не вижу смысла обсуждать абстрактные «а что если». Но Святослав рядом правильно написал.
                                                                                            • 0
                                                                                              Конечно. На кладбище. Кладбище ПО — т.е. в архив.
                                                                                              Проекты они разные бывают. Бывают, внезапно, и со статическим и полным ТЗ. ТЗ выполнил — работа окончена, код изменениям более не подвергается.
                                                                                      • 0
                                                                                        У нас первой строкой обычно идет что-то вроде
                                                                                        /* -*- mode: c++; coding: windows-1251-dos; fill-column:160 -*- */

                                                                                        Это некий компромиссc между удобством на Windows и linux. На Windows — удобнее комментарии в 1251, на линуск — в UTF-8. вот и приходится сообщать редактору о кодировке файла.
                                                                                        • 0
                                                                                          Может проще всегда utf-8 тогда сделать кодировку файлов?
                                                                                          • 0
                                                                                            Среда отладки на Windows не позволяет. Про MS-DOS уже не говорю. А основная отладка — в Windows.
                                                                                            • 0
                                                                                              А что вы используете как среду отладки?
                                                                                              Qt Creater вроде как только в utf работает. Visual Studio тоже без разницы, в локальной там или в utf'е, главное, чтобы BOM был. Если какие-то среды, которые BOM в файлах не понимают?
                                                                                              • 0
                                                                                                Лучшую среду всех времен и народов — <a href=«https://ru.wikipedia.org/wiki/Borland_C++>Borland C++ 3.1 :). Это для MS-DOS. Для windows — Borland C++ Builder 5.0.

                                                                                                А кто ещё может брейкопйнты на изменение значений, просмотр структур с изменением их полей и так далее??? Ну Qt Creator советуют посмотреть, а кого ещё?

                                                                                                Работает-то оно под linux в основном. А отладка комфортнее на винде.
                                                                                                • 0
                                                                                                  А кто ещё может брейкопйнты на изменение значений, просмотр структур с изменением их полей и так далее??? Ну Qt Creator советуют посмотреть, а кого ещё?

                                                                                                  Вы не поверите, лучшая иде всех времён и народов, ака Visual Studio, это всё умеет уже лет как N'дцать. Qt creater в плане удобства отладки, даже рядом не валялся.
                                                                                                  Кстати, советую, ещё https://blogs.msdn.microsoft.com/vcblog/2016/07/11/debugging-tips-and-tricks-for-c-in-visual-studio/ прочитать/посмотреть, может там что заинтересует ещё, а вот например Parallel Stacks так для себя открыл, уже пару раз реально помогло.

                                                                                                  P.S. Примите соболезнования по поводу необходимости работать в иде и с компилятором 2000-го года выпуска. Может вам стоит совершить сумасбродство, и перейти на C++ Builder 6.0? :)
                                                                                                  • –2
                                                                                                    Вы не поверите, лучшая иде всех времён и народов, ака Visual Studio, это всё умеет уже лет как N'дцать

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

                                                                                                    Окна для изменения данных в структуре — просто нет. И даже не вижу окна для просмотра структуры с разворачиваем и сворачиваем её подструктур…

                                                                                                    Окна регистров FPU тоже не вижу. Не говорю уже о том, что для VS++ POSIX — это оbsolete. Короче, отказать. Глючный и очень неудобный.

                                                                                                    У коллег в VS++ только debug-сборка работает. В релизе у них просто не собирается… Ну в общем VS++ — для тех, кто не видел возможности удобных отладчиков.

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

                                                                                                    Вообще-то, BC++ 3.1 — 1992ого года. А что вас так удивляет? Новое дороже и тормозней, но с чего вы взяли, что оно удобней? Не говоря уже о том, что вряд ли вы найдете компилятор под MS-DOS новее 1995ого года.

                                                                                                    Может вам стоит совершить сумасбродство, и перейти на C++ Builder 6.0? :)

                                                                                                    Зачем? Назовите хоть один важный для меня плюс. А важных минусов — много.
                                                                                                    Главный минус — Kylix, то есть CLX. Это потребовало перетряски VCL, в итоге что Delphi 6, что C++ Builder 6 — основано на прилично забагованной библиотеке.
                                                                                                    В семерке стало получше, но вмешалась кадровая ошибка. В ядро VCL пустили человека, плохо понимающего работу в многопоточной среде. Итогом стало несколько неприятных ошибок.

                                                                                                    Мы купили 10.1 Berlin, но я пока его не смотрел. Из очевидных минусов — gcc в качестве компилятора. А чем больше разных компиляторов — тем проще с портируемостью.
                                                                                                    • 0
                                                                                                      У коллег в VS++ только debug-сборка работает. В релизе у них просто не собирается…

                                                                                                      Самая глупая отмазка из тех которые я видел. Если кто-то перемудрил с директивами условной компиляции — это не является недостатком ни IDE, ни компилятора.


                                                                                                      Ошибки компиляции надо взять и исправить.

                                                                                                      • –3
                                                                                                        Вы знаете, если у "одной из ведущих российских компаний" на рынке SCADA один из их флагманских продуктов так себя ведет, то явно не все так просто.

                                                                                                        Ошибки компиляции надо взять и исправить.

                                                                                                        Ну-ну… Скачайте и разберитесь.

                                                                                                        я понимаю, вы не занимаетесь АСУТП. Но подумайте о том, что баги в продуктах мирософта видели все. Ни о какой надежности там речи не идет, зато ИнСат — это работа на рынке, где требуется очень высокая надежность. Это защиты АЭС, это автоматизация котла ТЭЦ (а современный котле без автоматики или тухнет ил взрывается), это автоматизация изготовления сопел ракет, это климат-контроль на производстве банковских карт., это автоматизация компрессорной магистрального газопровода, это мониторинг теплоснабжения миллионного города…

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

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

                                                                                                        Чтобы никогда не использовать VC++ мне хватает того, что они объявили POSIX obsolete и ввели свои, нестандартные вызовы. Поскольку целевой системой у нас Linux и FreeRTOS, То проще уж отлаживаться там, где POSIX не вызывает таких проблем.

                                                                                                        Собственно это повтор истории про осла. Когда IE захватил рынок, он диктовал свои стандарты. Ну и где он сейчас?
                                                                                                        image

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

                                                                                                          Это не "дурацкое ограничение", а конфликт зависимостей. До тех пор, пока отладочный рантайм и релизный рантайм — это две разных библиотеки, проблема будет существовать.


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

                                                                                                          • 0
                                                                                                            Но скорее всего это очередное дурацкое ограничение у микрософта — EXE, рассчитанный на подключение dll отладочной сборки, не может подключить dll релизной сборки

                                                                                                            Ну, если вы так изначально рассчитывали, что же потом удивляетесь?
                                                                                                            Вот если бы не хотели такого ограничения, то написали бы сразу exe, который рассчитывает, что ему пофигу с какой dll работать — с релизной или с дебажной. :-).
                                                                                                            А если серьёзно, то у майкрософт таких ограничений, конечно же нет, это вы придумали. Вот гляньте на ffmpeg, например. Ты собрал dll'ки, хоть в релизе, хоть в дебаге, хоть другим компилятором, например интеловским. И дальше используй хоть в релизном, хоть в дебажном exe'шнике.

                                                                                                            Чтобы никогда не использовать VC++ мне хватает того, что они объявили POSIX obsolete и ввели свои, нестандартные вызовы. Поскольку целевой системой у нас Linux и FreeRTOS, То проще уж отлаживаться там, где POSIX не вызывает таких проблем.

                                                                                                            Я уже писал выше, что вы всё перепутали, и майкрософт наоборот, вместо нестандартных платформозависимых POSIX функций, ввела обычные стандартные, прямо из ISO C++, функции.
                                                                                                            • +1
                                                                                                              Чёрт, случайно комментарий послался не законченным. Продолжу.

                                                                                                              Так вот, в стандарте C++ нет ничего, например, про strcmpi. Но есть _strcmpi. Поэтому VS честно предупредит, если вы используете этот анахронизм. И да, как вы понимаете, я не говорю не про C++98, где strcmpi — это норма. Ну что же, за 19 лет мир немного поменялся.

                                                                                                              Собственно это повтор истории про осла. Когда IE захватил рынок, он диктовал свои стандарты. Ну и где он сейчас?

                                                                                                              А это к чему? Компилятор от MS сейчас вролне поддерживает стандарты C++. Да есть свои extension'ы, но ИМХО, в том же gcc их уже больше :-). А так, например VS 2013 поддерживала C++11 лучше, чем скажем вышедший одновременно Intel composer 2013.

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

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

                                                                                                              Я скажу так, не бывает идеальных программ без багов, так как не бывает идеальных аналитиков, которые написали бы ТЗ без противоречий, не существует идеальных системных архитектов, не бывает идеальных программистов, которые написали бы код без багов, не бывает идеальных тестеров, которые не пропустили бы ни одной баги, и т.д…
                                                                                                              То, что баги есть — это нормально, это надо понимать. Да что там, я лично более 2-х десятков багов репортил на vs connect. А вот то, что вы не слышали не про одну багу в продуктах ИНСАТ или любой другой компании, это не значит, что их там нет. У нас вот в компании тоже половина программистов свято уверена, что у наших клиентов нет никаких проблем, типа это они круто пишут, что багов мало, а те что есть, типа все находятся тестированием. А когда периодически всплывает, что дня без клиентской проблемы не обходится, так делают круглые глаза. Я к тому, что неспособность скомпилировать свой же код в релизе — говорит о многом. Я бы не хотел работать с такими партнёрами, чтобы они для меня код писали. И да, у меня соседний департамент имеет схожую проблему, они не умеют собирать дебажные сборки. Так что о проблеме, её источнике, и т.д., я знаю не понаслышке.
                                                                                                              • –1
                                                                                                                Вы немного промахнулись при ответе. Если вам нужен ответ, то я его, конечно дам. Но лучше подождите, пока я напишу статью про систему, работающую 14лет 365*24 без видимых сбоев.

                                                                                                                Мир АСУТП и embeded -это несколько иной мир, чем мир visual studio. За программу типа Word, падающую при ошибке в любой части без сохранения данных, в АСУТП бы оторвали… Ну в общем что оторвали, то бы и оторвали.

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

                                                                                                                А кто вам сказал, что они несовместимы?

                                                                                                                • –1
                                                                                                                  До тех пор, пока отладочный рантайм и релизный рантайм — это две разных библиотеки, проблема будет существовать.


                                                                                                                  Всё остальное — спор о терминах. я в нем участвовать не хочу.
                                                                                                                  • 0

                                                                                                                    Отладочный рантайм и релизный рантайм — это две разных совместимых библиотеки

                                                                                                                    • –4
                                                                                                                      Давайте не спорить о терминах.Разные — означает несовместимые. По багам, по таймингу… Исходя из ваших слов — по зависимостям.

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

                                                                                                                      Для доказательства несовместимости — достаточно одной ситуации, где библиотеки не взаимозаменяемы. Искомая ситуация описана выше. Если программа, собранная для одного из рантаймов не может вызвать dll с другим рантаймом — значит они несовместимы. Были бы совместмы -легко бы совмещались в одном проекте.