Вас приветствуют разработчики статического анализатора кода PVS-Studio. Мы разработали новый программный продукт - CppCat. Разработан он так. Мы представили, что у нас нет PVS-Studio, но есть опыт в разработке инструментов статического анализа для языка Си/Си++. И мы с чистой головой разработали новый статический анализатор таким, каким бы хотели его видеть. Мы сделали инструмент простым и лёгким. И что многих обрадует, он будет стоить $250 за одну инсталляцию.
К сожалению, мы больше не развиваем и не поддерживаем проект CppCat. Вы можете почитать здесь о причинах.
Мы всегда старались делать инструмент PVS-Studio простым в освоении и использовании. Но обрастая новой функциональностью, он неизбежно стал терять свою простоту. Примером может служить поле ID в таблице с ошибками. Для одних оно полезно, других сбивает с толку. Его путают с номером диагностики и недоумевают, почему ID могут быть такими: 3, 7, 23, 25. А где остальные? Ответ прост и очевиден, эти ошибки скрыты. Например, отключен набор диагностик "64-bit".
Плохо обстоит дело с настройками. Для больших проектов важна возможность задать, какой препроцессор использовать (Clang или Visual C++). Это позволяет существенно ускорить проверку некоторых проектов. Но тому, кто впервые пробует инструмент, это настройка может оказаться совершенно непонятной. Выбирают Clang и ожидают, что увидят предупреждения, которые он генерирует. Или вообще пишут письма с возмущением, что мы продаём надстройку над Clang за деньги. На всякий случай вот ссылка, которая объясняет, как мы используем Clang. Тяжело продать человеку анализатор, если он случайно подумал, что это обёртка для Clang :). А причина всей этой путаницы - непонятная настройка.
Мы, программисты, умные и толковые ребята. Но, когда дело доходит до осваивания новых инструментов, мы часто ведём себя не лучше многих обыкновенных пользователей. Это нормально. Слишком много кругом информации. И уделять каждому новшеству своё внимание нет никаких сил. Поэтому, хотя инструменты для программистов являются хитроумными вещами, знакомство с ними должно быть таким же простым, как освоение калькулятора. Иначе, есть шанс, что ваш инструмент просто не оценят. Не хватит времени разобраться и понять его. Именно так, часто происходит с PVS-Studio.
В том, что продукт PVS-Studio стал сложным, исключительно наша вина. Мы не увидели путей сделать интерфейс вновь простым. Мы сделали новый продукт CppCat. Он настолько прост, что там просто негде заблудиться в настройках. Разобрать в нём можно за меньшее время, чем то, которые вы сейчас потратите на чтение этой статьи. Да, в нём отсутствуют многие функции. Но ведь PVS-Studio никуда не исчезает. Мы просто даём программистам нужную им тёрку для морковки, вместо многофункционального кухонного комбайна. И эта тёрка стоит намного меньше.
Ещё раз выделю основную мысль. Мы создали простой в освоении инструмент анализа Си/Си++ кода. Он сделает первое знакомство с методологией статического анализа таким простым, насколько это вообще возможно. Благодаря своей простоте и цене, он станет известным инструментом, без которого программисты будут чувствовать себя как канатоходец без страховки!
Инструмент CppCat предназначен для выявления подозрительных мест в коде программ, написанных на языке Си/Си++. Основные функции анализатора:
Вот и всё. Анализатор делает ровно то, для чего он нужен. Проверяет код и подсказывает программисту, где стоит быть внимательнее. Работает только в Visual Studio (2010, 2012 и 2013).
Мы решили пореже использовать выражение "анализатор выявляет ошибки". Любой анализатор даёт ложные срабатывания. Однако то, что анализатор выдал предупреждение на корректный код, вовсе не значит, что не нужно ничего делать. Нам понравилась следующая ассоциация, в одной из прочитанных статей. Анализатор выявляет участки кода, которые "пахнут". То, что код "пахнет", вовсе не означает, что он работает неправильно. Если в коде присутствуют какие-то аномалии, это может стать помехой при сопровождении кода другими людьми. Часто код "с запахом" может стать причиной ошибки после рефакторинга. Программист, изменяющий код может не правильно понять принцип работы функции и внести дефект.
Таким образом, мы считаем, что должен быть улучшен весь код, который CppCat считает подозрительным. Сделав код "не пахнущим" вы облегчите жизнь своим коллегам. Конечно, иногда предупреждение нужно всё равно подавить. Для этих целей есть несколько механизмов, описание которых можно найти в руководстве к CppCat.
У читателя возникнет вопрос, так чем же всё-таки CppCat отличается от PVS-Studio? Ответ на него представим в виде сводной таблицы:
Таблица 1. Сравнение функциональности анализатора PVS-Studio и CppCat.
С одной стороны, в CppCat многое отсутствует. С другой, есть всё необходимое, чтобы ежедневно использовать статический анализатор в своей работе.
Основное идеологическое отличие CppCat от PVS-Studio:
CppCat лицензируется на каждого отдельного пользователя. Вы устанавливаете его на свой компьютер и используете. В нём нет функциональности, полезной при командной работе. Например, вы не сможете настроить CppCat для проверки проекта по ночам. Для этого есть PVS-Studio.
PVS-Studio предназначен для сложных и больших проектов. CppCat также может проверять большие проекты. В этом отличия нет. Просто в CppCat нет некоторых дополнительных функций и другая лицензионная политика.
CppCat точно так же может использоваться и в компаниях, причем даже большими командами. Просто нужно купить несколько лицензий (предусмотрены скидки за количество!).
С ценами всё просто. Одна версия стоит $250. Лицензия не плавающая. Лицензия привязывается к компьютеру (hardware ID).
При покупке нескольких лицензий предоставляются скидки:
Лицензия действует 1 год. Продление стоит 80% ($200).
Мы продолжаем разрабатывать и PVS-Studio, продукт актуален, ценовая политика не меняется, все в силе.