Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

PVS-Studio, CppCat. Беседа с Андреем Карповым, техническим директором этих планов

Anna | 24.06.2014 | нет комментариев

На Прогре время от времени возникают статьи, посвященные статическому анализатору кода PVS-Studio (также рассматриваются и иные анализаторы), в которых то и дело делаются проверки того либо другого плана с публикацией обнаруженных проблемных мест. Не так давным-давно был представлен новейший продукт CppCat— облегченная версия за небольшие, касательно PVS-Studio, деньги. Некоторое изложение планаPVS-Studio для Visual C дозволено обнаружить тут и тут, а изложение нового плана дозволено обнаружить в статье «Альтернатива PVS-Studio за $250».

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

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

На заданные мной вопросы отвечает Андрей Карпов Andrey2008 — технический директор планов PVS-Studio и CppCat. Также Андрей делится некоторыми рассуждениями о языке программирования, продуктах иных компаний и взаимодействии с этими самыми компаниями.

Преамбула

Если понаблюдать за становлением программиста, то дозволено изредка подметить некоторую обоснованность. В начале пути грядущий разработчик постигает какую-то литературу, что-то спрашивает на форумах. В определенный момент, для некоторого шага вперед, получает пинок под зад вопросом типа: «А вы не пробовали открыть для себя отладчик?». Открыв для себя данный один из бесчисленных, но в то же время основных инструментов, разработчик продолжает свой путь улучшения. В определенный момент он приходит к мысли либо ему таковую подсказывают, что дозволено ускорить свою работу, сократив время на поиск ошибок, если искать их еще на исходных этапах с поддержкой статического анализатора кода, а не искать ошибки теснее в готовом продукте, натравливая на него WinDbg и всевозможно упражняясь в ухищренной отладке приложений. В данный момент начинается обзор имеющихся средств на рынке, как платных, так и бесплатных. В такой обзор может быть включен и данный материал.

Разговариваем…

Я прошел по указанной в профиле Андрея ссылке на «Мой Круг». Судя по прочитанной информации, компания не является огромный. Может в этом и есть ее плюс… Это, как правило, минимум бюрократизма, огромная вовлеченность в процесс, огромнее творческой работы и т.д. У мелких компаний есть своя прелесть в сопоставлении с крупными. О правильных сторонах малого бизнеса есть отличная статья.

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

Андрей: Да, мы крошечная компания. Безусловно, мы хотим стать огромный и богатой. Но это желание исполняется медлительно. Скажем так. Нас устраивает то, что есть, но дюже-дюже хочется большего. Видны перспективы, но они противятся, Дабы мы их достигли.

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

Теперь непринужденно в разработке и движении PVS-Studio/CppCat принимает участие 4 человека. Дальше я считать затрудняюсь. Работники либо по совместительству, как, скажем, бухгалтер, либо исполняют работу удаленно. Вспоминается термин «половина рудокопа».

Некоторые практики компаний показывают, что оmk!>static void GetUseType(…) { …. if (kind == ntAssignExpr) { const Ptree *l = SafeSkipParentesis(pParentExpr); const Ptree *r = SafeSkipParentesis(pParentExpr); …. }
Предупреждение: V656 Variables ‘l’, ‘r’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘SafeSkipParentesis(pParentExpr)’ expression. Check lines: 345, 346. functionselector.cpp 346
Верно:

const Ptree *l = SafeSkipParentesis(First(pParentExpr));
const Ptree *r = SafeSkipParentesis(Third(pParentExpr));

В статье «Альтернатива PVS-Studio за $250» представлен новейший продукт компании — CppCat. В самом начале утверждается, что план сделан примерно «с чистого листа».

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

Хотелось бы узнать PVS-Studio и CppCat — это продукты, построенные на одном и том же ядре? Стоит ли пользователям ждать такое же качество обзора кода от нового продукта, как и от ветхого в том его сегменте, на тот, что он ориентирован? Если оба продукта возведены на одном и том же ядре, то пользователь упрощенного и больше дешевого продукта получает некоторое преобладание в том, что он получит те же исправления недостатков и нововведений в анализаторе, что и пользователь трудного продукта. Дозволено ли это сказать о CppCat?

Андрей: Да, PVS-Studio и CppCat возведены на одном ядре. А вот интерфейс переработан дюже значительно.

С точки зрения обзора всеобщего назначения они дюже близки. В CppCat отключены особенно неудачные диагностики, дававшие много шума. Причем не факт, что это нехорошо. Отменнее поправить 5 ошибок, просмотрев 10 сообщений, чем небрежно пролистав список из 100 предупреждений и исправить только 2 ошибки.

По поводу того, что CppCat Отчасти оттянет на себя пользователей PVS-Studio. Да, вероятно это произойдет, но не массово. Многим нашим пользователям необходима специфическая функциональность. Кто-то приобретает PVS-Studio из-за 64-битных диагностик, кому-то необходима модифицированная метрика «цикломатическая трудность» (непубличная функциональность). Кто-то использует MSBuild и так дальше.

Говоря о проверке крупных планов в PVS-Studio и CppCat, не могли бы Вы привести некоторые ориентировочные цифры, скажем, продукты были проверены на планах с числом подпроектов, скажем, чуть больше 500-700, код которых в XXX Мб дозволено собрать на машине с некоторой указанной конфигурацией за такой-то временной интервал?

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

Андрей: Мы не занимались особым сбором такой статистики. Вероятно, в грядущем этим стоит заняться. Теперь я могу привести следующие числа.

Если взять комплект для тестирования работы с Visual Studio 2010, в тот, что входят следующие планы:

  • CamStudio
  • CrashRpt
  • DosBox
  • ffdshow
  • IPP-Samples
  • Logs
  • Miranda
  • MongoDB
  • mpc-hc
  • Shareaza_vc10
  • STweet
  • XUI-GUI Fraimework
  • Zlib_IA64

То все они проверяются на моей рабочей машине за 55 минут. Объем начального кода этих планов составляет около 320 мегабайт.
Конфигурация:

  • IntelCore i7-4770 (3.40ГГц, 4×256Кб 8Мб, EM64T, GPU), число ядер — 4, число потоков — 8;
  • 16 гигабайт памяти (2 планки: DDR3 8Gb Kingston PC10600, 1333МГц);
  • Все, относящееся к тестам, находится на SSD диске.

Ценовая политика CppCat полагает покупку лицензии за некоторую фиксированную плату, но на год. Для некоторых продуктов годовая лицензия так же имеет место быть, но всякий год компания может выпускать новую версию продукта с такой же ценой на лицензию.Предусматривается ли либо есть мысли о некотором стимулировании пользователей обновлениями, новыми версиями и т.д.: каждому тем, что у пользователя вызвало бы огромнее мечты для получения продукта с годичной оплатой его применения взамен покупки продукта, за тот, что дозволено уплатить однажды и пользоваться сколько желательно, скажем, до момента осознания о необходимости получения новой версии?

Андрей: Мы считаем неприемлемым продажу «безмерной» лицензии. Нам кажется, мы по духу близки к антивирусам. Анализатор непрерывно учится ловить новые ошибки, учится поддерживать новшества в языке C , поддерживает новые среды Visual Studio и новые версии Windows.

В каком-то смысле мы продаем «сервис по предотвращению ошибок». Данный сервис непрерывно требует с нашей стороны вложений и усилий. За это Добросовестно умолять покупку обновлений.

Предвижу возражение: «А мне не нужно обновлений. Я хочу один раз приобрести и пользоваться потом сколько захочу». Это неумно. Необычно применять антивирус трехлетней давности. Свежий антивирус обнаружит гораздо огромнее вирусов. Так и новейший анализатор обнаружит огромнее ошибок, чем ветхий. Тот, кто умоляет «безграничный анализатор» на самом деле плевать хотел на число ошибок в своем коде. Ему анализатор не необходим и дозволено не обращать на него внимание.

Вы предлагаете испробовать CppCat в течении 7 дней даром. Не неизменно разработчику с его загрузкой дозволено по превосходству оценить продукт за 5 дней, если он это делает на рабочем месте с целью вынесения предложения о закупке продукта руководству.

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

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

Андрей: По поводу увеличения срока. Спорный момент. Когда у разработчика 5 дней, он помнит что ему нужно испробовать инструмент. Когда у него месяц, ему все время будет «некогда» либо «лень». Короткий срок стимулирует к действию.

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

Андрей: Нам не нравятся никакие идеи связанные с online. Вот ход рассуждений.

Есть человек, тот, что разрабатывает приложения в среде Visual Studio. Что может быть проще, чем запустить CppCat для обзора своего плана? Человеку либо нравится итог, либо нет. Если нравится, он может приобрести инструмент. Online-сервис тут как собаке пятая нога.

Фантазии на тему «залить куда-то план и проверить» дюже трудно реализовать и основное не ясно для чего. Анализатору требуется план, тот, что дозволено скомпилировать. Напротив он не будет знать, какие типы что обозначают, какие директивы препроцессора установлены, как раскрыть макросы и так дальше. Это значит, что где-то необходимо будет настроить полновесное окружение. Механически это сделать немыслимо. Придется принудить человека залить библиотеки, используемые в плане, сделать некоторый аналог плана в веб-системе, Дабы анализатор знал про директивы препроцессора и так дальше. Получается, что человеку необходимо сделать и поддерживать «параллельный план» где-то в облаках. А нам всю эту прелесть нужно где-то беречь и тоже поддерживать.

Исключительное, для чего дозволено применять online-анализатор — это ставить эксперименты. Но и это отменнее не делать. Программисты дюже однобоко подходят к таким тестам. На эту тему я писал даже заметку: «Мифы о статическом обзоре. Миф пятый – дозволено составить маленькую программу, Дабы оценить инструмент». Человек легко может сделать отрицательный итог, базируясь на одном, 2-х примерах. Так что пускай отменнее он проверяет свой настоящий план и обнаружит в нем ошибки.

CppCat предлагается для применения коллективно с некоторыми версиями MS Visual Studio, что определяет его платформу применения — Windows и целый класс приложений — настольное ПО. Да, Windows существует как для рабочих станций, так и для серверов, но если посмотреть на всевозможные публикации о каком-то огромном веб-источнике либо новом построенном кластере, то, в основном, дозволено увидеть много информации о Linux на сегменте серверного программного обеспечения. Дозволено подметить, что фуроры Windows на серверном сегменте, аналогичны триумфам Linux на сегменте настольного ПО. Среди настольных приложений для Windows у C возникает все огромнее соперников, на сегменте серверного ПО C так же не испытывает недочет в соперничества. Хотелось бы узнать Вашу позицию касательно выпуска продуктов для Linux и проникновения на рынок серверного ПО.

Была увлекательная статья о попытках продажи Вашего ПО в Google и как пример полезности Ваших продуктов проверка браузера Chrome. Есть ли какие-то новые события в этом вопросе? Рассматриваете ли вероятность сотрудничества с большими компаниями в движении Ваших продуктов на рынок серверного ПО с учетом выпуска версий под *nix платформы? Здесь же есть и отечественные игроки: Yandex, Mail.ru и т.д.

Андрей: Сначала я хотел написать что-то в духе: «У нас нет Linux версии и не предвидится. Поводом можете считать нашу некомпетентность, лень и самодурство. Только отстаньте он нас пожалуйста». После этого я решил, что легко попрошу убрать из интервью вопросы, связанные с Linux. Но потом сотрудник спросил: «Отчего я говорю, что Linux версии нет, когда вот она в данный момент запущена у него в виртуальной машине?». Я осознал, что все-таки нужно дать развернутый результат на эту тему.

Мы крошечная и независимая компания. У нас нет подпитки от других родительских организаций либо грантов от правительства. Мы дюже легко можем перестать свое существование, если начнем делать бессмысленности. Довольно, Дабы расходы в течение 3 месяцев превысили доходы и дозволено закрываться. Одним из таких тупых действий может быть раздувание инфраструктуры с целью реализации «Linux-версии».

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

У нас есть сборка под command-line версии анализатора под openSUSE 13.1. Она запускается и даже выводит предупреждения. Но у нас нет «Linux-версии». У нас нет такого программного продукта и не предвидится в обозримом грядущем.

К счастью, я и Евгений EvgeniyRyzhkov совмещаем в себе не только программистов, но и администраторов. Напротив мы, как компания, теснее давным-давно исчезли бы. Мы можем предвидеть, как технический энтузиазм может все испортить.
Припомним, из чего складывается наш программный продукт:

  1. Помощь операционной системы. Отлично, с этим все касательно легко. Взяли и скомпилировали программу. Но помним, что для этого нам потребуются как минимум виртуальные машины и усложнение систем сборки и подготовки релизов.
  2. Помощь компилятора и системных библиотек. Тут начинаются трудности. Не нужно думать, что программа на C это легко текстовый файл, тот, что будет всюду дозволено исследовать идентично. Всякий компилятор и системные библиотеки легко кишат каждыми нестандартными растяжениями. Помощь этих особенностей — неприметный, но дюже огромный объем работ. То, что ключевое слово ‘__restrict’ применяется в 10 000 раз реже, чем оператор ‘for’ совсем не обозначает, что его дозволено не поддерживать. Многие программисты и не подозревают о таких вещах как _Bool, __w64, __noop, __int3264, __if_exists, 123.0fi, __uuidof, __based, __LPREFIX, __builtin_offsetof, __volatile__ и так дальше и так дальше.
  3. Диагностические правила. Всякая система — своя модель данных, свои библиотеки и прочие нюансы. Если хочется выдавать отличные диагностики, необходимо знать особенности работы системных функций. Скажем, в PVS-Studio/CppCat имеется большая таблица, подсказывающая как дозволено ненормально применять ту либо другую функцию и что дозволено от нее ждать. Там сказано: сомнительно если у функции ‘_wcsicmp_l’ совпадает 1-й и 2-й фактический довод. Теперь файл «functions_info.cpp» занимает больше 800 килобайт и нам еще трудиться и трудиться над его пополнением. Если мы хотим идти на другие системы, нам необходимо учесть соответствующие системные функции и крепко пополнить таблицу. Это жутко трудоемкая задача.
  4. Документация. Документацию нужно серьезно перерабатывать. Нужно помнить, что теперь PDF файл с документацией к PVS-Studio содержит 250 страниц и непрерывно растет.
  5. Интеграция со средами разработки. Одно дело напечатать что-то в консоль, а вовсе другое сделать инструмент комфортным. В Windows приоритет явствен — нужно интегрироваться с Visual Studio. В Linux мире все больше многообразно. Необходимо поддержать несколько особенно распространенных редакторов. Пускай даже не в виде плагинов, но все равно необходимо уметь выдать информацию в подходящем для них формате, Дабы дозволено было осуществлять навигацию.
  6. Дистрибутив.
  7. Тестирование. Самый смертоносный пункт. У нас много разновидностей механических тестов. Основная система — это комплект регрессионных тестов, показывающий различия в диагностиках. Каждого для этого применяется больше 100 open-source планов. Время полного прохождения тестов занимает многие часы. Если мы хотим освоить новую операционную систему, мы обязаны сделать новую, больше трудную, переносимую систему тестирования. Мы обязаны обнаружить как минимум 50 новых open-source планов, которые дозволено собрать в этой системе. Еще необходимо обучиться запускать в новой операционной системе юнит-тесты и так дальше.
  8. Помощь. Усложняется помощь, так как придется иметь под рукой разные виртуальные машины и людей, которые готовы разбираться в специфичных для этой системы загвоздках.

А сейчас самое основное. Под Unix/Linux версией всякий понимает на самом деле свою собственную операционную систему. Это дюже значимо! От того, что есть пакет для системы X, пользователю системы Y ни тепло ни холодно. Для него у нас по-бывшему нет «Linux-версии». Это значит, что нужно делать версию, как минимум, для пяти различных особенно распространенных систем (но все равно останутся недовольные).

Соответственно, все, что описано выше, необходимо умножить на число поддерживаемых систем. Скажем, умножьте это на 5 и представьте объем работ.

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

К сожалению, то, что я описал не осознали 90% программистов и посмеялись. Провод он собрался какой-то тянуть…
Примитивный программист никогда не бегал искать электрика, когда напасть. У него легко добавочный выходной. Программист никогдане проходил круги бюрократического ада, пытаясь протянуть провод от электрической будки. Провод я, безусловно, привел для примера. Будет не провод, так что-то еще.

Мы в обозримое время это не потянем.

А можете рассказать о взаимодействиях с отечественными компаниями-разработчиками ПО? К примеру, с такими компаниями, как «Лаборатория Касперского», «Acronis» и так дальше.

Андрей: Пока никакого с этими и сходственными компаниями общения не было. Даже не знаю, что припомнить. Было мимолетное общение с Yandex. Думаю, дозволено рассказать, так как никакого NDA не подписывалось.

Yandex недавно до IPO решил немножко усилить себя получением некоторых стартапов. По крайней мере у нас сложилось такое ощущение. Они с охотой общались с различными командами. Пообщались и с нами. Но не сложилось.

Был задан вопрос: «Сколько денег и кому должен ваш стартап?». На что мы Добросовестно ответили: «Никому и нисколечко. Стартап нам приносит деньги и мы в плюсе». Они поразились и утратили интерес. Это ясно. Гораздо проще и выигрышнее выкупать накладные стартапы и тем самым получать в штат отличных работников.

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

Вы говорите, что план CppCat — это облегченная версия PVS-Studio, из которой убрано все, что связано с корпоративной версией программы. Отчего Вы не пошли по классическому пути образования линейки из Standart, Professional и т.д. версий одного и того же продукта, с соответствующим комплектом функциональности для всякой из версий? Возник новейший продукт с новым наименованием. Закладывали ли Вы какой-то маркетинговый ход в такое решение? Да, имеются случаи, когда одна и та же компания выпускает новейший продукт и по каким-то причинам хочет его отвязать от ассоциаций нового продукта с иными продуктами компании, Дабы не кидать тень дешевым продуктом на больше дорогие, дать продукту больше емкое, короткое и больше запоминающееся имя и т.д. Были ли сходственные планы у Вас при выпуске CppCat?

Андрей: Мы пришли к итогу, что интерфейс PVS-Studio слишком труден, перегружен и мешает стремительному знакомству с инструментом. Включение/выключение части функционала только еще огромнее все запутает. Мы решили кардинально переделать интерес и сделать новейший продукт. В идеале мы хотим рекламировать только CppCat и массово его продавать. А PVS-Studio будет только на тот случай, кому CppCat будет узок.

Что можете сказать о продукте Cppcheck? Есть ли какие-то идеи, планы по выпуску аналогичного торгового продукта для Linux с какими-то фишками?

Андрей: Cppcheck — отличный инструмент для знакомства с методикой статического обзора. Дозволено запустить даже на не
собирающемся плане. То есть легко на комплекте каких-то файлов. Безусловно, качество обзора от этого страдает, но дюже легко испробовать.

Про Linux я теснее отвечал. Нет, не планируем.

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

Андрей: Эксперимент продолжается. Итоги пока делать рано. Стало огромнее общения с потенциальными пользователями, но вот удастся ли зарабатывать огромнее денег, пока не ясно. У нас дюже долгий цикл продаж. Неоднократно продажа PVS-Studio осуществляется через полгода, а то и через год позже первого контакта в почте.

В статье так же описан вариант, когда приобретают компании одну лицензию, а пользуется каждая команда, приводя абсолютно законные доводы. По моему суждению такая обстановка понемногу должна исчезать. Это все-таки «некая экономия на списках», все равно, что приобрести один отладчик на небольшую командуразработчиков. Вызывает неудобство.

Считаете ли Вы, что со временем небольшие компании, которые на данный момент могут поступать сходственным образом, станут больше сознательны и у Вас станет поменьше преград для распространения лицензий для «одного разработчика»?

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

CppCat исправляет эту обстановку. Даже экономный в тратах коллектив может дозволить себе купить инструмент за $250 и проверить свой план. Если проверять на одной исключительной машине неудовлетворительно – пускай приобретают еще лицензии для других разработчиков.

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

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

Кстати вспомнился один схожий момент. В давнишние времена у антивируса Касперского (KAV) не было лицензии на 3 ПК. Необходимо было приобретать лицензию на 2 ПК и еще лицензию на 1 ПК. Либо что-то в этом духе. Я теснее позабыл подробности. На форуме человек возмутился: «Я хочу лицензию сразу на 3 ПК. Она должна получиться дешевле, чем если бы я приобретал 2 и 1. У меня неудовлетворительно на это денег». На что ему объективно подметили: «Если у Вас нашлись деньги на получение ТРЁХ компьютеров, то у Вас обязаны найтись деньги и на покупку антивируса».

Так же в этой статье описывается повод создания анализатора кода и доведение его до торгового продукта. Продукт нацелен на C разработчиков.

В отношении C неоднократно всплывают «разоблачающие» статьи, местами однобоко подчеркивающие и заключающие в толстую рамку некоторые подводные камни C — в всеобщем есть определенный тренд «бранить С ». Для меня C — это любимый, стержневой и исключительный язык программирования; может быть это кому-то покажется странным…

Как Вы считаете каковы перспективы данного языка программирования в той целевой аудитории, на которую нацелены Ваши флагманские продукты? C , Windows, настольное ПО — все совместно взятое крайне опасная целевая аудитория. Риск оправдывается?

Андрей: Для меня результат явствен. На C написано столько крупных и мелких планов, что никакой речи о значительном уменьшении роли этого языка в ближайшие 20 лет говорить не доводится. Довольно посмотреть на такой огромный план как Chromium, и сразу ясно, что никуда программисты от языка C в ближайшее время не убегут.

Chromium возник вовсе незадолго и для его создания дозволено было делать выбор среди множества инновационных языков. Но в силу необходимости применения сотен сторонних библиотек на C/C это невозможно. Слишком много каждого наработано на языке C/C . В всеобщем-то, с этим языком такая же обстановка как с FORTRAN либо COBOL. Даже дрянней.

Программы на языках FORTRAN / COBOL по бывшему обширно применяются. Скажем, компания Intel зарабатывает огромнее денег от продажи компилятора FORTRAN, чем от продажи Intel C . А программисты для COBOL теперь являются самыми высокооплачиваемыми программистами.

Легко статьи про эти языки теперь примерно не пишут. Следственно и кажется, что они сошли со сцены. Пишут статьи про инструменты и языки, которые продвигают. Что про FORTRAN либо COBOL писать. Им и так недурно.

Что-то можете сказать о конкурирующих с Вами продуктах и о превосходствах Ваших продуктов? Какие недочеты в конкурентах Вы видели, которые сумели решить в своих продуктах? Допустимо Вы в конкурирующих продуктах видели некоторые крепкие стороны, которые в то же время оказались и их уязвимым местом, которое также было закрыто одним из Ваших продуктов?

Андрей: Трудная тема. Правда бы потому, что легко нам никто не дает даже пробную версию :) .

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

Подводя выводы

Что дозволено сказать в заключении нашей беседы? Компания, создающая продукты, рассмотренные в данной статье, — это малый бизнес, предоставляющий крайне увлекательные программные продукты. На пути малого бизнеса одна из ключевых задач — это непременная надобность сурового учета средств. Что порой не дает вероятности воплощать в жизнь и тестировать на покупателях казалось бы прорывные идеи. Данный вопрос может безусловно быть решен, скажем, путем привлечения «чужих денег» (кредиты, инвесторы и т.д.). А вот Дабы решиться на такое привлечение, допустимо стоит многократно подумать, взвесив все «за» и «вопреки».

Есть дюже позитивный момент — компания существует и прибыльна! В то же время она может находить в себе силы на выпуск на рынок новых продуктов, в данном случае — это CppCat. У этого продукта в его позиционировании есть много увлекательных сторон. И даже на стержневой вопрос всякого бизнеса: «А отчего данный продукт должен приобрести покупатель?», теснее есть отличный результат в статье «Обзор статического анализатора CppCat», в которой приводятся абсолютно определенные цифры в пользу продукта, основанные на материалах пробного применения продукта.

В то же время данный продукт нацеленный только на Windows. Касательно Linux вопросы не перестают задаваться команде разработчиков продукта. Абсолютно может быть Андрею и его коллегам стоит обратить на эти вопросы свое внимание больше пронзительно. Изредка покупатель не знает чего бы он хотел, и может только выдавать пожелания об совершенствовании нынешних продуктов. В таком случае компания может что-то новое выпустить на рынок и тем самым завоевать его при правильном отклике целевой аудитории. Контраргументы Андрея в отношении Linux мне именно в таком ключе и показались. Абсолютно может быть не стоит из пушки по воробья палить со всеми издержками, указанными Андреем, а легко изыскать средства на временное привлечение аналитика, тот, что проанализирует обстановку и выдаст пищу для размышлений о принятии решения о выпуске данной версии. Есть знаменитое правило, что 20% чего-то приносит 80% выручки. Но, к сожалению, мир меняется, а может и к счастью, происходит некоторая его огромная поляризация и это правило теснее становится 10/90. Абсолютно может оказаться, что по данным аналитика затраченные 90% усилий компании дадут каждого лишь 10% выручки, а абсолютно может и напротив, выпуск продукта под Linux для компании станет прорывной идеей, которая даст вероятность воплотиться мечтам компании. Думаю, что Андрею и коллегам стоит подумать над аналитикой этого вопроса. Либо легко максимально «обводить в рамку» ту информацию, что их специализация — это Windows приложения. И что отменнее иметь отменную репутацию, подтвержденную финансовым откликом покупателей в одном секторе, чем сделать огромный шаг в ином направлении и утратить все.
Почитывая блог о C на Прогре, в тот, что изредка и пишу, подметил тенденцию, что разработчиков все огромнее и огромнее волнует вопрос статического обзора кода. Как пример этому дозволено привести то, что на момент написания данного материала в C блоге было подряд сразу две статьи о статическом обзоре кода с тестированием соответствующих анализаторов (о CppCat и Cppcheck). Что говорит о том, что продукты на C становятся труднее, а время разработчиков подороже — и это все дозволено принять как правильную тенденцию для становления ПО для статического обзора кода, Дабы на него возложить рутину по поиску ошибок как на больше недорогое средство, чем разработчики, эксперты отдела контроля качества и т.д. Это и может быть позитивным моментом для компаний, разрабатывающих такое ПО.

В связи с чем хочу пожелать команде разработчиков CppCat и PVS-Studio фуроров. Андрею хочу

 

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB