Comments 86
Радует, что она до сих пор открывается на сайте :-).
Embedded область нам пока не понятна, но будем пробовать работать и с ней постепенно.
То есть embeded — это активная защита от ошибок (надежная работа независимо от ошибок в программах). Тогда как статанализ — это пассивная защита.
я давно уже планирую серию статей про «ненастоящих программистов», чтобы рассказать, что у нас и как. Надеюсь, на зимних каникулах надеюсь, что пару опубликую.
- Добавлена поддержка проверки проектов, использующих компиляторы Keil MDK ARM Compiler 5 и ARM Compiler 6.
- Добавлена поддержка проверки проектов, использующих компилятор IAR C/C++ Compiler for ARM.
Предлагаю желающим попробовать новую версию PVS-Studio.
Хотели сделать как лучше, сделать для разработчиков, но в итоге пожадничали и выставили слишком большой ценник, поэтому интереса и не было.
И не надо говорить, про зарплаты программистов, 250$ даже для 2014 года — порой слишком дорого.
Да, и посмотрите на ценники других инструментов? Тот же решарпер (на тот момент был только для C#) стоил гораздо дешевле вашего поделия.
За статью спасибо.
На самом деле, у многих людей есть проблема с поиском непонятных ошибок в коде. Думаю, что за $20-$30 — у вас бы не было отбоя от желающих один раз проверить проект и получить отчет (по всем анализаторам, а не только по PVS). Понятно, что вам это неинтересно, но такой стартап, ищущий ошибки в чужом коде, вполне жизнеспособен.
Вообще немного удивлён, что разработчики адаптировали свой продукт под Linux, где царствует бесплатное ПО, а Mac OS остаётся без внимания...
Как я понимаю PVS-Studio предназначен в первую очередь для проверок кода на сервере сборки, а вот что-то хоть отдалённо похожее на сервер с MacOS я последний раз видел году эдак в 2005 на студии занимающейся видео-клипами и использующих Mac для обработки видео.
А бесплатное ПО никак не мешает существованию таких дистрибутивов как RHEL и SLES, а именно их и предпочитает энтерпрайз, да и телеком по большей части…
Как я понимаю PVS-Studio предназначен в первую очередь для проверок кода на сервере сборки
Ну блин, они же в каждой второй статье пишут что это неправильное применение их продукта!
У них же большинство возможностей заточены на интерактивную работу, а не на пакетную...
Вообще немного удивлён, что разработчики адаптировали свой продукт под Linux, где царствует бесплатное ПО, а Mac OS остаётся без внимания, ведь именно Mac OS царство комерческого ПО и не просто ПО, а довольно качественного, вероятность заработать денег на этой OS должна быть выше, чем в Linux.На Linux есть много разных миров. Enterprise на серверах — это почти один Linux, а софт под него кто-то ведь разрабывает. А MacOS — это, как раз, очень-очень узкая ниша, iOS, фактически, и всё — но там своя, очень серьёзная головная боль, чтобы Objective C++ хотя бы распарсить.
некоторые программисты умудряются писать, забивая даже на предупреждения компиляторов…
Ну так и на предупреждения анализатора забьют такой же болт… Впрочем, вы ещё не видели, как пишут математики… Для математика правильно все, что математически эквивалентно.
Так же как и вы для 15 тысяч
То есть вы подтверждаете мою гипотезу, что PVS-studio экономит 2 недели труда разработчика по сравнению с бесплатным CppCheck? А исследования были?
Индийский код — не новость. Выльем воду из чайника и сведем задачу к предыдущей.
Меня больше поражают американцы. Российская техника обязана работать при любом отказе датчика, надежно диагностирует два одновременных отказа и старается диагностировать тройной отказ.
А вместо изменения порядка проверок они всего лишь заменили пластмассовый датчик на металлический.
А какая программа лучше ищет ошибки — это уже заход на холивар,
— Армяне — лучше, чем грузин.
— Чем лучше?
-Чем грузин!
(с) анекдот
Кто лучше ищет сферические ошибки в вакууме — это неинтересно. Интересно, найдет ли PVS-studio что-то важное, в коде, уже проверенном бесплатными анализаторами. Причем не в абстрактном коде, а в конкретном.
PS. Это был, так сказать, «русский код»… причем от специалиста «с дипломом».
Если вместо того, чтобы с 13-17 лет писать код до 23х лет сидеть за партой — то диплом, конечно, будет. А вот программер — уже не получиться.
Так что ваши аналогии — лживы по той простой причине, что вы перечислили кучу инструмента, который далеко не всем нужен для жизни, работы и или хобби.
Дивитесь! я перечислил инструмент, используемый в нашей фирме именно при отладке программ. И не только в нашей — можете перепроверить у других embedчиков.
Болгарка и дремель используется на финальных стадиях отладки, когда нужно монтировать оборудование на трактор или тепловоз. Не все можно отладить в офисе или на автомобиле.
Паяльная станция — при отладке используется регулярно. Последний раз — дня 3 назад. Потребовалось мне часто делать RESET процессору — припаяли кнопочку.
Микроскоп — используется не только при пайке, но и при отладке некоторых ошибок. Прежде чем лезть в код, иногда полезно посмотреть, нет ли паразитного контакта между двумя ножками.
Логический анализатор — незаменимый инструмент при отладке протоколов. Особенно — при общении с хитрыми микросхемами. Возьмите datasheet на любую микросхему — там обязательно будет временная диаграмма сигналов. И если микросхема не отвечает — первым делом снимается эта самая временная диаграмма.
JTAG вообще незаменим ничем. Как вы без него зальете прошивку на ПЛИС или некоторые модули микропроцессоров? Да и самый низкоуровневый код им отлаживается.
Осциллограф незаменим при отладке ошибок типа CRC error. Первое. что нужно сделать — это посмотреть форму сигналов. Могут быть заваленные фронты или звон…
Вольтметр (лучше универсальный авометр) тоже незаменим при отладке. Ибо если не работает ничего — вначале смотрится, есть ли питание на процессоре и портах. а потом — осциллографом смотрится тактирование.
А мы тут обсуждаем использование проф.программы для программиста C++, который этим как бы зарабатывает себе на жизнь
Ну вот я привел вам список наших профессиональных инструментов. Удивляет?
Меня тоже удивляет ваше понятие «программист С++». Потому что мы просто программисты и пишем на чем угодно. на Delphi, Си, shell, javscript, PHP, языках IEC 61131-3, языках ПЛИС., куче разных ассемблеров… по мне так, если человек умеет писать только на С++ — это не программер, а кодер. Потому что программеру почти все равно, на каком языке писать. Почти — потому что при переходе от процедурных языков к иным (FORTH, Ladder, LISP, APL...) приходится напрягать мозги.
Нееет, естественно не найдет.
Да нет, найти-то найдет, но важное ли? Ну знаю я, что если задать имя файла длиннее 4096 символов, программе станет очень плохо. Вот только, чтобы его задать — надо открыть корпус, спаять диагностические кабели и подключить их. а если уж подключили — так можно и свою собственную прошивку залить, чего мелочиться со взломом нашей?
Может внимательнее почитаете статьи, которые на хабре выкладываются?
Почитал. Ни одного embeded-проекта не проверено. и даже авторы PVS-studio сомневаются в его применимости в embeded.
Если же вы считаете, что параллельная прогонка на нескольких проектах — это сферические поиск в вакууме, то мне даже не понятно, что вы хотите получить вообще?
Хочу понять пользу для своих проектов. У каждого — свои стили написания и свои типичные ошибки в коде. Да и цена PVS-studio для мелкой фирмы очень велика. Так что оправдывает ли польза цену — вопрос открытый.
а пруфы на исследования, подтверждающие ваше высказывания будут?
Смотря про какие высказывания речь.
Зачем там болгарка и дремель — думаю, что понятно. Да и осциллограф полезен — зависало там при переходе от аккумуляторов к дизелю, надо смотреть, что с напряжением твориться.
Вы напишите, какие высказывания надо подтверждать пруфами, я отвечу, есть у меня пруфы или нет…
Более того, я же нигде вроде как не утверждал, что любой разработчик ОБЯЗАН был купить данную программу
Угу. Меня интересует, есть ли польза именно для нашей компании. С учетом текущей цены на PVS-studiobb и того, что покупается всего лишь годовая подписка.
Или данный набор инструментов помогает вам писать и отлаживать программы постоянно и на всех языках?
Угу. Осциллограф и паяльник — совсем языконезависимы. Кстати. PHP и javascript — это тоже embeded, web-интерфейс для управления береговой радиостанцией Сидит себе внутри железки C++ и PHP, а в браузере работает JS, HTML и CSS, загруженные с той же железки.
Например, наши постоянно удивляются, какого фига мы ставим важность «авария», если после их обновления всего лишь отвалилась подсистема печати и у нас начинаются проблемы с выдачей анализов пациентам.
Так у вас программы или программно-аппаратные комплексы? Если комплексы — то осциллограф и паяльник нужен. Потому что за железо и связь железок друг с другом отвечаете тоже вы. Зато и железки подбираете такие, чтобы подсистема печати была сдублирована и не отваливалась. Ну, скажем, USB на одной машине, Wifi на второй, проводной ethernet на третьей. тогда сбой подсистемы печати на двух машинах из трех уже не страшен.
А о том, почему же не выстрелил CppCat — это разные суммы и разные программы
А скорее всего у него нету серьезных преимуществ перед бесплатным cppcheck.
Разовые проверки никак глобально не улучшат качество написания кода
Написания — не улучшат. Они просто помогут найти ошибки в самом коде. Довольно много программеров не умеет искать баги. И не понимает, как их найти.
См. пример авторов PVS-studio. Товарищи не поняли, что чтобы поймать проблемы с 64битными поинтерами, надо было просто откомпилироваться на 16бит. И большая часть проблем — просто вылезла бы явно.
Так что дешевый сервис разовых проверок — вполне может взлететь. Ну как и любой другой сервис, основанный на помощи гуру новичкам, то бишь консалтинг.
Вы на это пруф хотите?
Если вместо того, чтобы с 13-17 лет писать код до 23х лет сидеть за партой — то диплом, конечно, будет. А вот программер — уже не получиться.
Доказательств нету. Есть примеры людей из обоих категорий. ну вот пример знакомого, программирующего за деньги с 13-14 лет. В 17 он был моим сотрудником. Хотя по хорошему — лучше было бы ему быть начальником, а мне его подчиненным. Ну это просто пруф, что такие бывают.
И шнец, и жнец, и на дуде игрец. А в реальности я не видел еще ни одного человека, который мог бы «писать на чем угодно» (слушайте, а как оно, писать на брейнфаке в эмбедед?). Обычно, достаточно ограниченный набор за хотя бы тот же год.
На брейнфаке писать не приходилось. А вообще это примерно так же, как примеры на сложение и умножение. Не важно какой язык — если умножать умеете, но и на суахили умножите.
Из экзотики — ошибки можно исправлять и на неизвестном языке. 30 лет назад я сначала целый вечер правил деткам ошибки в их программах и только после отбоя сел читать описание языка фокал.
А за год — да, набор обычно ограниченный. Но 6-7 языков в одном проекте — да, бывает.
Как-то для pet-проектов 250$ — это дороговато.
Что к чему...
64-бита — это, зачастую, никому не нужная роскошь. Огромное количество утилит и в XXII веке, подозреваю, будут оставаться 32-битными.
Конечно там, где это этого есть выигрыш 64-бита нужно использовать. Но всех туда загонять просто потому что вы это можете… зачем?
P.S. Вот 16-бит отошли в прошлое легко и не напрягаясь. Потому что набрать ручками текст > 64К — никогда не было проблемой. И ещё в 80е годы на 16-битных компьютерах на это натыкались сплошь и рядом. А вот 32-бита… нет, тут ситуация иная. Собственно потому компьютеры и начинались со всяких 32-битных и 36-битных систем, 8-битные и 16-битные появились позже, как попытка упихать что-то работающее в небольшое число транзисторов.
А почему тогда 95 процентов софта на маке и линуксе 64битные? Кажется мне это исключительного проблема винды
Все бинари в макоси, собранные для последних версий, начиная года с 2011 исключительно x86_64 или universal, который умеет обе архитектуры. Все дистрибутивы линукса со всем софтом полностью собраны для amd64, все новое проприетарное по тоже поставляется в amd64 архитектуре, даже скайп теперь amd64 only. Но точную статистику по макоси не скажу как и по линуксу.
i386 сейчас в основном используется для запуска wine.
А почему тогда 95 процентов софта на маке и линуксе 64битные?Потому что в MacOS и Linux плохо с поддержкой 32-битных программ на 64-битных системах.
Кажется мне это исключительного проблема виндыВо-первых не проблема, а достоинство, а во-вторых — с Android такая же точно ситуация.
Собственно популярность винды во многом и обусловлена тем, что там разработчиков «калёным железом в рай» не загоняют…
А что такого ужасного в этой картинке?А то, что MS — это компания, на которую, по идее, должны все равняться в Windows мире, а она уже как 10 лет не может выродить IDE, адекватное современным реалиям.
Настоящая сосулина, разбившая, наверно, кондиционер до неремонтопригодности.
В нашей компании, к сожалению, используется C++ Builder. (сожаление не потому, что билдер, а потому что PVS его не поддерживает).
Проверка проектов C++ Builder всё ещё возможна с помощью утилиты PVS-Studio Standalone. Можете попробовать проверить свой проект. Правда мы сейчас не тестируем этот режим работы, так как опять-таки нет никакого интереса со стороны сообщества разработчиков.
А не может анализатор существовать отдельно от среды разработки? Типа как отдельное приложение в которое накидал файлов *.cpp и пусть оно их жуёт. Пусть хоть и с некоторым ухудшением качества анализа.
Никакой нормальный анализ в таком режиме невозможен. Это будет не более чем баловство. Чтобы проводить настоящий анализ надо знать все типы классов, функций и т.п. На эту тему я как раз недавно написал статью, но она ещё не переведена, так что опубликую её только в следующем году.
Молодцы! Очередное подтверждение, что чтобы добиться успеха, надо вкалывать :-)
На программе «Старт» мои знакомые тоже сидели много лет назад. Там были странные условия на фонд оплаты труда, можно было платить одному человеку не больше смешной суммы. Они нанимали фиктивных знакомых, которые числились в конторе, но ничего не делали и их зарплату руководство вытаскивало наличными, после чего уже можно было тратить на то что надо (пусть и за вычетом налогов).
А я помню статьи про появление VivaMP и его закрытие. Хотя к плюсам никакого отношения не имею. Просто читаю вас.
Как 10 лет назад начинался проект PVS-Studio