Новое не значит лучшее

13 декабрь, 2011 - 00:28Игорь Дериев

Компания CAST Software, специализирующаяся на анализе бизнес-приложений, выдала любопытный отчет. Исследовав 365 млн строк кода в 745 приложениях, ее специалисты попробовали оценить качество не только самого ПО, но и средств его разработки.

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

Почти половина приложений (46%) была на Java EE. Затем .NET, ABAP, COBOL, Oracle Forms - примерно равными долями от 7 до 11%. Ну и еще всякое разное. Видимо, такое распределение более-менее отражает реальную картину.

Тем любопытнее выводы: по многим показателям и в совокупности рулит старый добрый COBOL. Конечно, с оговорками, что созданные на нем приложения отлаживались дольше прочих и исполняются в основном на мэйнфреймах, и тем не менее. .NET (надо понимать, прежде всего С#) оказалась последней с точки зрения безопасности. Java EE пасет задних по производительности - обилие возможностей способствует тому, что разработчики выбирают не самые эффективные средства, в частности, злоупотребляют динамическими конструкциями и не очень четко представляют себе взаимодействие с другими технологиями и фреймворками.

Эти же две технологии оказались худшими с точки зрения так называемого "технического долга", т.е. средств, которые придется затратить в дальнейшем на исправление ошибок. Если "в среднем по больнице" этот показатель составил $3.61 в расчете на строку кода, то для Java EE - $5.42, а вот для COBOL - всего $1.26.

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

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