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

<grammarnazi>

Проект написан на языке C и C++.
Я регулярно публикую ссылки на интересные статьи по программированию на языке C и C++,...

Нет такого языка «C и С++». Поэтому правильнее было бы «на языках C и C++». А то читаешь и недоумеваешь, как автор умудрился написать настолько мощный анализатор, но при этом считает C и C++ одним языком.

</grammarnazi>

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

Проверьте пожалуйста mpv.

anonymous
()
Ответ на: комментарий от eao197

Нет такого языка «C и С++». Поэтому правильнее было бы «на языках C и C++». А то читаешь и недоумеваешь, как автор умудрился написать настолько мощный анализатор, но при этом считает C и C++ одним языком.

Не понимаю, отчего здесь вспыхивает такая ненависть, когда я упоминаю про C/C++ или «языке C и С++». Всем ведь понятно, что имеется в виду. И часто пишут именно так. Я и многие грамотные программисты понимают, что это разные языки, но также и понимают почему их часто используют в паре. Не виду в записи C/C++ ничего неестественного. Это следует читать как «язык C или язык C++». Никто ведь не ругается, что нет языка С/С++/С#. Я думаю, такие комментарии появляются в том случае, если нечего сказать по существу. Тогда начинают придираться к отдельным словам и фразам.

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

А то читаешь и недоумеваешь, как автор умудрился написать настолько мощный анализатор, но при этом считает C и C++ одним языком.

Просто автору мощного анализатора необязательно быть занудой :-)

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

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

Не обращай внимания :-)

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

Очевидно, что не понимаете. Как по мне, так существуют общепринятые выражения «языки C/C++», «на языках C/C++» и «на языках C и C++». Но не «на языке C и C++». По вашей же ссылке:

В ней в доступной форме рассмотрены не только популярные языки программирования С/C++, но и изложены основные принципы визуального проектирования и событийного программирования...Детальное объяснение материала и подробные комментарии к примерам помогут вам самостоятельно освоить языки C/C++ и приемы работы...

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

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

Вы по-другому подумайте: вам показали фрагмент вашей в статье, который вызывает недоумение. Поправить его просто. Тем самым вы сделаете свою статью чуть лучше.

Но вместо этого вы ищете врагов там, где их нет.

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

Не можете писать в таком духе — не пишите, наймите кого-нибудь. Или конкурс объявите. Вроде «у нас есть результат проверки PVS-Studio такого-то OpenSource-продукта, вот здесь набор фактов и интересных моментов, кто напишет по этому поводу самую интересную и легкочитаемую статью, получит бесплатную лицензию на PVS-Studio».

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

Я и многие грамотные программисты понимают, что это разные языки, но также и понимают почему их часто используют в паре. Не виду в записи C/C++ ничего неестественного.

и понимают почему их часто используют в паре

Поясните плебеям.

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

Ну, вообще говоря, с точки зрения русского языка он прав. Тут нужно либо «на языках C и C++», либо, на худой конец, «на языке C/C++»

Deleted
()
Ответ на: комментарий от EXL

Собственно продолжаю это делать и, в обозримом будущем, буду продолжать это делать.

Поэтому для меня фраза «язык C и C++» безграмотна с точки зрения разработчика софта. Что ухудшает впечатление от статьи. Если заменить на «языки C и C++» или «языки C/C++» статья точно хуже не станет.

Ну и по мне «язык C и C++» в статье, это как что-то вроде:

int i = 0, j = 1, k = 2;
i = 0;
Понятно, что ничего страшного нет, но выглядит корявенько.

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

Поэтому для меня фраза «язык C и C++» безграмотна с точки зрения разработчика софта.

А фраза «ламповая сишка», которую ты применяешь раз от раза, для тебя грамотна с точки зрения разработчика софта? :-) Лол :-)

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

фраза «ламповая сишка», которую ты применяешь раз от раза

Правда чтоли? Ньюфаг такой ньюфаг.
Не ламповая, а няшная.

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

Если писать неграмотно, то люди всё равно понимают, но осадочек остаётся.

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