Image

Imagebronikkk wrote in Imageru_python

Category:

Привет всем!

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

Это если совсем общо, а теперь больше конкретики. Меня интересуют,
прежде всего, Python, Ruby и JavaScript. Поэтому я и обращаюсь к вам,
потому что, как мне кажется, вы имеете неплохое представление об одном
или нескольких этих языках.

В рамках совсем предварительного, поверхностного изучения вопроса я
наткнулся на этот обзор в одном из блогов (англ. яз.):
http://www.klocwork.com/blog/2009/06/static-analysis-for-rubypython/

С одной стороны, обзор вселяет надежду, так как из него видно, что уже
существующие средства вполне себе убоги, то есть возможностей для
создания чего-то нового масса. С другой стороны, автор поста делает
один не совсем утешительный для меня вывод: «Ruby/Python developers
rely on tests pretty heavily. In fact, some claim, that tests are the
only right way to deal with bugs in your program. This way a tool for
automatic error detection might even be considered harmful - just
because it can be used as an excuse for not writing tests». В связи с
этим мой первый вопрос:

1. Действительно ли вы, как разработчик на Python/Ruby/JavaScript,
считаете, что тесты -- это единственный способ поиска багов в
разрабатываемой программе? Пользовались ли бы вы средством для
статического анализа, если бы оно не было таким убогим, как уже
существующие средства?

Ну и остальные вопросы, в общем-то следуют из первого:

2. С какими багами/дефектами вам как разработчику на
Python/Ruby/JavaScript приходится сталкиваться чаще всего? Какие
баги/дефекты наиболее критичны? Может быть вы слышали о каких-нибудь
критичных багах/дефектах в программах на Python/Ruby/JavaScript,
найденных в последнее время и для поиска которых пригодился бы
статический анализатор?

Ну или, может быть, спрошу немного по-другому:

3. Чего бы вам вообще хотелось от статического анализатора для
программ на вышеперечисленных языков? На ваш взгляд, что из того, чего
вы вам хотелось, реализовать реально и что весьма проблематично?
Реально ли вообще сделать востребованный разработчиками статический
анализатор Python/Ruby/JavaScript?

Мне очень интересно ваше мнение. Если вам есть что сказать по теме, не
ограничиваясь ответами на мои вопросы, буду очень рад и признателен!