Mishka>> ещё одна au> А можно развернуть мысль?
Надо бы посмотреть на диссер моего начальника и его статьи. Ну, разговоров у нас была уйма на эту тему. Причём, вся лаба спорила (было у нас такое правило, что на выходные или просто так, все из лабы забирались к кому-нибудь на дачу, загружались спиртным, жратвой, бумагой, карандашами и на целую неделю отбывали из универа — говорить, говорить и ещё раз говорить — в полной изоляции от мира; решений было сделано так уйма). Начальник взял и рассмотрел около 30 метрик на тот момент (это был конец 80-х) с полным анализом каждой — положительные стороны, отрицательные стороны, возможность применения в коллективе, привязка к размерам проектов и т.д. Обкатывал во многом на нас — сотрудниках и аспирантах. Выходило, что технология — нужная вещь, но найти убервафель не получалось. Всякая метрика всегда несла в себе элемент субъективности. Т.е. в конкретном коллективе можно было применять метрику (а лучше несколько, если время есть), с учётом знаний начальника. Т.е. Начальник знал, что тот же v(G) у Борыги (я тут использую наши ники, т.к. не хочу называть имён) будет всегд близок к 1. Борыга писал всегда очень чётко небольшими функциями — как кирпичиками. Но сложность задачи была всегда офигенная — Алгол 68, Ада и т.д. А вот Lin всегда писал очень размашисто, фундаментально. Его v(G) был бы очень высок, но у процедур всегда была логическая завершённость. Лёгко изменять, понимать. SHR и я, как аспиратны, всегда писали с вы#бонами поначалу — как говорил IBG, не такой херовой особенности у машины (языка), которую бы было нельзя использовать очень красиво хоть бы раз. Вот мы были в этой категории. Gnil был тоже близок к этому стилю. У нас v(G) скакал бы резко, а сложность, на самом деле, была бы одинаковая, как и понимабельность. А вот Bokr (он же jec) всегда был более прост. Jul писала быстро, в зависимости от нужды могла менять стиль. Дама очень толковая, но мысли всегда обгоняли руки.
Ну, так можно на каждго из 30 людей. Т.е. чисто метрика v(G) не работала бы. Надо было бы v(G)+DeltaSubject, причём последняя составляющая очень не маловажна. Хороший начальник эту составляющую знает и учитывает. При этом, наш начальник ратовал за применение метрик. И показывал другим, как это бывает полезно. Но метрика сама по себе — один из многих показателей, которые надо учитывать в технологии программирования.
Сейчас идёт возрождение идей старых, новые появляются. Ренесанс, одним словом. Я это связываю с тем, что:
1. За последние десятилетие нет большого прорыва в области технологии. Прорыва в том смысле, чтобы качественно улучшить надёжность кода, производительность и т.д. Моё ИМХО на эту тему я уже высказывал не раз. Технология программирования, помимо упрощения жизни настоящим инженерам, привносит волну новичков, которым вдруг стало легче делать проекты. Или им только так кажется. Но общий уровень падает.
2. Программирование как таковое широко шагнуло в embedded — если раньше там были высококвалифицированные люди, которые хорошо обучены (не только в универе, но в жизни — знают как это устроено и работает), знают область, заботятся о качестве (история одного байта — хорошая иллюстрация), то теперь ряды embedded программистов пополняются обычными программистами — не хватает тех спецов уже, что готовятся по стандартной схеме, слишком быстро отрасль развивается. Поэтому сюда занесло и обычные технологии программирования, обычные проблемы. Т.е. шагнула массовость в embedded и принесла с собой не только хорошее, но и всё г, что накопилось за годы развития программирования в обычной области.
3. Всё идёт по спирали и к этому вопросу должны были вернуться рано или поздно.
PS Заметь, что в статье почти везде использованы старые метрики. Может немного подправленные. Но всё из далёких 70-х, 80-х.