Есть ли доказательства того, что использование динамических языков влияет на производительность?

25

Мне интересно, есть ли какие-либо эксперименты, которые показывают существование или отсутствие корреляции между использованием динамического языка (такого как Python, Ruby, или даже языков, которые работают на платформе Java, таких как Groovy, Clojure) над статический язык (например, C / C ++) и разница в производительности.

Кен Ли
источник
3
Эмпирическое сравнение C, C ++, Java, Perl, Python, Rexx и Tcl для программы поиска / обработки строк является хорошим и классическим документом, который на практике охватывает многие аспекты программного обеспечения (включая производительность).
увлекался
6
Как динамически работает Java?
svick
5
У меня проблемы с восприятием этого вопроса как онтопического, но, поскольку он спрашивает конкретно об экспериментах, все должно быть в порядке. Пожалуйста, держите ответы соответственно строгими.
Рафаэль
1
Ранее я задавал этот точный вопрос программистам: programmers.stackexchange.com/questions/10032/… , надеюсь, вы получите лучшие ответы, чем я.
Уинстон Эверт
3
Это тот вопрос, над которым исследователи должны работать. Я считаю, что это по теме.
Дэйв Кларк

Ответы:

11

Хотя я не в курсе исследований по производительности, были исследования по пониманию. Филип Уодлер собирает ссылки на статьи по этой теме: посмотрите этот пост и этот .

Суреш
источник
3
На первый взгляд кажется, что все они о функциональности против императива, а не о статичности и динамике.
sepp2k
В дополнение к комментарию seepp2k, использование Уодлером этих исследований представляет собой именно опасность эмпирической науки: ошибочные обобщения!
Uday Reddy
8

Что касается производительности, Ханенберг исследовал влияние времени разработки, когда та же задача была реализована в Java (статическая версия) и Groovy (динамическая). Их результаты были описаны в следующей статье:

Статические и динамические системы типов: эмпирическое исследование о связи между приведением типов и временем разработки , 2011.

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

Эмпирическое исследование влияния статической типизации на ремонтопригодность программного обеспечения , 2014 г.

Авторы также опубликовали предыдущую работу в той же области, включая эту (также указанную в одной из ссылок, упомянутых Сурешем):

Системы статического типа улучшают ремонтопригодность программных систем? Эмпирическое исследование , 2012 (PDF доступно)

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

rla4
источник