[spoiler]Она уже вроде как десятилетие занимается метриками, связанными с эффективностью разработки ПО, сотрудничает с различными профильными комитетами по стандартизации, консультирует внушительные организации (например, крупнейший банк Голландии) по оценкам трудоемкости программных проектов. И тем неожиданнее выглядят ее оценки, основанные на анализе почти шести тысяч проектов (ссылка).
В таблице приведено среднее количество рабочих часов кодировщика для реализации условного требования в объеме одной функциональной точки (очень условно, примерно 100 операторов).
Тут надо отметить несколько спорных моментов. Если пропорции между Java, C++ и Си выглядят достаточно естественно, а низкие позиции Кобола и PL/I (кстати, официальное название этого языка именно PL/I, а не PL/1, и уже подозрительно, что ISBSG не в курсе) можно объяснить все же достаточно сильным моральным устареванием последних, а наоборот высокая позиция SQL объясняется достаточно узкой спецификой его использования, то такой заметный провал C# удивил даже главного редактора DrDobbs. Как минимум, весьма производительный и продуктивный СиШарп должен располагаться не ниже Джавы -- исхожу из своего опыта , когда в позапрошлом десятилетии я написал несколько сотен тысяч строк кода на С++ и Java, а в прошедшем столько же на C#.
Столь странную диспропорцию я могу объяснить только тем, что проекты, анализируемые ISBSG, имеют явно выраженную мэйнстримовскую направленность -- много рутины, множество хорошо формализованных требований, рядовая несложная логика и большие объемы кодирования. Все это хорошо делегируется офшорным фирмам, которые выдают на гора тонны и километры "индийского" кода, после которого рушатся английские банки ("Сломается всё").
Первое место ASP объясняется скорее всего совсем простыми задачами типа "сайт под ключ", любой студент-айтишник склепает их на коленке на основе готовых шаблонов, которые удобно повторно использовать, отсюда и такая "эффективность". Пожалуй, и Visual Basic, с помощью которого можно успешно закодировать 90% типовых корпоративных Windows-проектов, допускает высокую степень повторности, поэтому и эффективность его столь высока. Да и попадание в список специализированного языка ABAP (внутренний язык SAP) тоже в пользу этой гипотезы.
C# же подразумевает иную парадигму разработки, активное использование библиотек, всяческих абстрактных механизмов, коих в .NET множество, и для этого уже требуется активно включать мозги. Кстати, Visual Basic столь высок еще и по этой причине -- он может задействовать всю мощь платформы .NET.
А вот ежели пытаться кодировать на C# как на C++, с помощью трех операторов, тогда, действительно, эффективность шарпа упадет ниже плинтуса.
Интересно, что трудоемкость на ABAP для SAP такая высокая, казалось бы, специализированный язык, на нем проще должно быть программировать.
Вот в этом вся причина - сколько времени при программировании вы тратите на собственно кодирование алгоритма и сколько на обязательные ритуальные пляски с написанием сопутствующего кода. Именно classic ASP (VB Script) тут вне конкуренции. ASP.NET уже проигрывает по причинам, которые я указал.
"Visual Basic, с помощью которого можно успешно закодировать 90% типовых корпоративных Windows-проектов, допускает высокую степень повторности, поэтому и эффективность его столь высока"
В этой фразе и выражено преимущество - "высокая степень повторности" и есть несомненное достоинство, повышающее скорость разработки. Это ж плюс, а не минус. Опять же, VB.NET обладает такой же "высокой степенью повторности", но сложнее в использовании, да и в скорости работы за счет того, что функционирует в среде .NET, поэтому явно проигрывает в скорости разработки. А уж про скорость отладки и говорить нечего - на глюки разработки накладываются глюки .NET и отладка увеличивается просто в разы.
Так что исследование, на мой взгляд, вполне объективно.