Я видел много тестов, измеряющих скорость выполнения языков программирования, но я никогда не встречал тестов, измеряющих скорость разработки.
Я слышал, что при работе с динамическими языками скорость разработки увеличивается, но есть ли доказательства этому? Я не пытаюсь сказать, что динамические языки не эффективны, но я бы хотел увидеть результаты научного исследования, если такая вещь существует.
Еще лучше будет информация об объекте обслуживания. Какие языки легче отлаживать, чем другие?
РЕДАКТИРОВАТЬ: Меня больше всего интересуют различия между двумя языками, которые близки по синтаксису. Например, я предполагаю, что программирование на C обычно медленнее, чем на Java; но программирование на Java быстрее, чем программирование на C #?
programming-languages
comparison
DistantEcho
источник
источник
Ответы:
Абсолютно язык программирования имеет значение. Тем не менее, я думаю, что разница гораздо больше в том, насколько программист знаком с каждым языком, чем с каким-либо конкретным аспектом языка, особенно с учетом вашего ограничения языков с похожим синтаксисом.
источник
Для меня это своего рода аналог того, какой тип кисти позволяет рисовать быстрее.
Если вы считаете, что рисуете товар, то чем больше кисть, тем быстрее вы будете рисовать.
Если вы видите хороший код как художественную форму, то он меньше прилегает к размеру кисти и больше к тому, что именно вы делаете со своими кистями.
Извините, это не ответ на вопрос.
источник
Я не уверен, что это актуально, но это интересно
В «Мифическом месяце человека» Фред Брукс упоминает исследования, сравнивающие языки ассемблера и более высокого уровня. Они обнаружили, что программисты производили одинаковое количество инструкций в год для обоих, но инструкции для языка высокого уровня были равны множеству инструкций на языке ассемблера. Таким образом, переключившись на язык высокого уровня, программисты добились увеличения производительности независимо от среднего кратного количества ассемблерных инструкций до языковых.
То же самое должно быть верно для C против Java / C #, я не знаю реальной разницы между C # и Java. Но каждый раз, когда вы повышаете уровень абстракции, вы будете увеличивать производительность. Однако я также думаю, что это уменьшит контроль над тем, что на самом деле делает машина. Вы должны верить, что язык делает то, что вы хотите. Например, в высокопроизводительном программном обеспечении сборка мусора недопустима, кроме случаев, когда у вас есть полный контроль над тем, когда он запускается и как долго он работает.
источник
Что такое производительность? Что такое продукт , даже? Никто не знает, математически говоря.
KLOC?
Цикломатическая сложность?
Функциональные точки?
Я считаю, что вам придется взглянуть на бизнес-уровень и провести процентильные сравнения с другими программистами, выполняющими аналогичную работу, а затем измерить возможности, предоставляемые каждому программисту. Это очень сложные и тонкие моменты, позволяющие статистически измерить и сохранить значение.
источник
Представьте себе, как это будет проверяться: вам нужно, чтобы какой-то реальный проект разрабатывался независимо, как многократно, на одном и том же языке (чтобы устранить изменчивость опыта и знаний программиста), так и на разных языках (чтобы получить некоторые данные для сравнения языков). Сдается мне, что эксперимент быстро вырастает до неуправляемого размера.
Я хотел бы услышать о способах «сжать» эксперимент или о попытках фактически выполнить эксперимент, как указано.
источник