LINUX.ORG.RU

Диагностики GCC — это хорошо, но недостаточно

 , , , ,


0

7

С++ компилятор, реализованный в GCC, умеет выполнять множество полезных диагностик. Эти диагностики весьма хороши, и многие считают, что их более чем достаточно. В том числе я нередко слышу, что анализатор PVS-Studio не нужен, так как все те же диагностики имеются у GCC. Конечно, я знаю, что это не так. Это то же самое как сравнивать бесплатный Paint.NET с платным Photoshop. Вроде одно и то же, и функции общие есть. Но платный профессиональный Photoshop всегда будет мощнее, чем такие инструменты как Paint.NET.

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

Проверка GCC была ответственным испытанием для бета-версии PVS-Studio for Linux. Это и новая операционная система, это огромное количество макросов, это и код, который уже проверен многими инструментами, и найти в котором хоть что-то непростая задача.

Итак, приглашаю посмотреть, что интересного PVS-Studio нашел в коде GCC. Плюс в процессе повествования я даю ряд советов, как можно избегать подобные ошибки.

Находим ошибки в коде компилятора GCC с помощью анализатора PVS-Studio

Перемещено Aceler из proprietary

Ответ на: комментарий от SZT

Andrey_Karpov_2009 например не хочет отдельно продавать анализатор для C по меньшей стоимости, хотя вот мне совершенно очевидно, что на поддержку диагностик только для C тратится существенно меньше время, и львинная доля времени идет именно на все эти нововведения плюсов. Си же меняется со временем довольно незначительно. Так почему те, кто хочет только анализировать чистый Си, должны платить еще и за бесполезный для них анализатор C++ и C#? (или может быть они хотя бы C# анализатор продают отдельно? Хотелось бы надеяться)

Мы позиционируемся так. Есть анализатор PVS-Studio. Он постепенно учится поддерживать другие языки, но стоит при этом одну цену. Вот смотрите, был, например, C/C++ анализатор и стоил он 1000 условных единиц. Теперь он научился дополнительно проверять C#. И по-прежнему он стоит 1000 условных единиц. Если человек хочет только С/С++ это не значит, что мы должны теперь продавать ему эту часть за 500. Это как-то глупо. Но при этом не хотим повышать общую цену до 2000. Мы просто по-прежнему продаем анализатор, который научился большему, за туже условную цену 1000. Так нам проще описывать ценовую политику и делать прайс.

Можно сказать, что мы наоборот только сделали бонус и скидку тому, кто использует одновременно анализатор и для C/C++ и для C#. Ему повезло.

P.S. Всё что я здесь сказал есть не более чем отражение текущей ситуации и в дальнейшем ценовая политика может меняться. Не хочу, чтобы через пять лет кто-то ссылался на эти слова. :) Всё течёт, всё меняется.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от Andrey_Karpov_2009

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

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

Знаете, у майкрософта были серьезные проблемы с антимонопольным комитетом в связи с такой политикой. https://ru.wikipedia.org/wiki/Европейский_союз_против_«Майкрософт»

Можно сказать, что мы наоборот только сделали бонус и скидку тому, кто использует одновременно анализатор и для C/C++ и для C#. Ему повезло.

А если кто-то берет анализатор именно ради C#, и прочие анализаторы лично ему и даром не нужны? Ну и надеюсь вы прочитали Влияние спонтанных социально-экономических факторов на качество программного обеспечения в расширенных социумах

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от Andrey_Karpov_2009

1) Пусть раньше поддержку C/C++ в анализатор впиливали весь рабочий день(условно, можно также рассматривать в рамках обсуждения не рабочий день, а рабочее время в месяц), он стоил 1000.
2) Теперь рабочее время тратится также на C#, логично заключить, что компоненту C/C++ теперь уделено меньше внимания. И исходя из этого ДА, логично теперь уменьшить цену анализатора только лишь C/C++.
Так что не заговаривай зубы тут. Честно говоря, меня не раздражает этот продукт, и думаю он в некотором роде даже полезен. Тошнит от вранья таких как ты(не имеем возможности снизить цену, не можем продавать разные компоненты отдельно, налоги, зарплата...) Все это словестная акробатика. Было бы лучше просто честно сказать «Мы жадные ребята, хотим много золота и не хотим особенно напрягаться».
Отвечая на возможный вопрос «Почему я считаю цену высокой?», напишу слудующее: Иногда сравниваю коммеческие ит-продукты с ценой продуктов microsoft, уж не думаю, что на винду потрачено меньше человеко-часов чем на обсуждаемый анализатор, тем не менее если судить по цене, то так и не скажешь.

rumgot ★★★★★
()
Ответ на: комментарий от rumgot

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

Ну, справедливости ради, на какой-нибудь Instagramm потрачено человеко-часов явно меньше, чем на тот же анализатор (оцениваю по тому, что единственная сложная вещь в Instagramm - это то, что он не валится под наплывом пользователей, но даже это отчасти результат просто огромного парка серверов, а всё остальное напишет любой фрилансер за разумное время и сроки, а для разработки статического анализатора требуется разбираться в дебрях всяких стандартов и особенностях компиляторов C/C++/C#, которые нормально далеко не каждый разработчик на этих языках знает), а капитализация у него явно больше, чем у PVS Studio. А разгадка простая - всё дело в массовости продукта. Винда всем нужна, а статический анализатор даже в самом лучшем случае - только программистам на языках, которые он поддерживает. А программистов относительно общего количества пользователей ПК исчезающе мало, особенно если речь идёт о C/C++, а не каком-нибудь вебе.

KivApple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.