Наличие ошибок в программном продукте не зависит от языка программирования

image

Теги: языки программирования, человеческий фактор, ошибки

Авторы исследования утверждают: на качество ПО прежде всего влияют масштаб проекта и количество специалистов в команде разработчиков.

Издание The Register сообщает о том, что на Симпозиуме по основам разработки программного обеспечения (FSE) Ассоциации вычислительной техники (ACM), который состоится в середине ноября этого года в Гонконге, будет представлена статья «Масштабное исследование языков программирования и качества кодов на Github».

Изучив 729 проектов, 80 миллионов строк кодов и 1,5 миллиона записей, сделанных 29 000 авторов на 17 языках программирования, авторы исследования пришли к заключению, что язык программирования крайне незначительно влияет на качество созданного на нем программного обеспечения. Более того, ученые полагают, что более важными факторами, нежели язык программирования, могут оказаться масштаб проекта, количество специалистов в команде, объем выделенной памяти и даже тип личности программиста (который проявляется в выборе версии языка программирования).

Наиболее часто в программных продуктах, независимо от того, на каком языке они созданы, встречаются некорректная обработка ошибок, несоответствие типов, ошибки компиляции, ошибки в управлении потоком передачи данных и ошибки инициализации. На их долю приходится 88% от общего числа проанализированных исследователями брешей. К остальным относятся ошибки управления памятью, ошибки параллелизма выполнения и алгоритмические ошибки.

В программных продуктах, созданных на языках C, C++, JavaScript, Objective-C, Php и Python, недоработок несколько больше; языки Clojure, Haskell, Ruby, Scala и TypeScript показали негативный коэффициент, а это означает, что количество ошибок в ПО на их основе находится на уровне ниже среднего по всему исследованному материалу.

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

С текстом исследования можно ознакомиться здесь .

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