Тонны кода

Довольно распространенная фраза. Любят ей блеснуть на конференциях или в статьях. Давайте попробуем прикинуть, сколько это - тонна кода.

Популярная некогда идея платить за строчки кода привела к закидонам вроде:

for (i=1;i=1;i++)
{
x=x*i;
}

Или еще хуже:

for
(
i=1;
i=1;
i++
)
{
x=x*i;
}

Чтобы привести первый и второй вариант к “единому знаменателю” проведем “нормализацию” кода. Все “белые пробелы” (переход на другую строку, табуляция) заменим одним пробелом.

Получившееся, отформатируем согласно одному из РД. 14 кегль, 30 строк на страницу, 60 символов в строке. Итого примерно 1800 байт исходного кода с комментариями (комментарии является частью поставляемого продукта отвечающий за такой атрибут качества, как анализируемость) на страницу.

Печать один лист - одна страница.

Стандартный лист А4, 80 ден - 4 грамма

Итого:

  • один килобайт - 2,2 грамма
  • один мегабайт - 2,2 килограмма
  • один гигабайт - 2,2 тонны

Слышал мнение, что программа до мегабайта исходного кода - маленькая. Ее легко держать в голове целиком и легко переписать любую часть, т.к. понятны взаимосвязи. Соответственно, и юнит тесты для рефакторинга не сильно нужны. Таким образом, пока мы работает с граммами и началом килограммов - все просто и, вероятно, одного человека на проект достаточно. Просто нужно найти человека нужной квалификации. Переход к пудам обычно требует команды и неких формальных схем взаимодействия. С центнерами кода лучше работать с хорошей документацией. Но самое интересное начинается, когда у вас действительно тонны кода. Встречается не так уж часто, но уж если встречается…

Комментариев: 3

  1. Sergey Vysotsky написал:

    Только вот мегабайт исходного кода на питоне и на ассемблере это две большие разницы

  2. SALar написал:

    На ассемблере сейчас не так уж много пишут. И если есть фанатизм можно попробовать сделать преобразование через таблицу соответствия функциональных точек и строк кода на разных языках, но я не стал бы заморачиваться:

    Ассемблер 320
    Макроассемблер 213
    C 150
    Algol 106
    Cobol 106
    Fortran 106
    Pascal 91
    Modula-2 71
    Ada 71
    Prolog 64
    Lisp 64
    Forth 64
    Basic 64
    C++ 53
    Java 2 46
    Objective C 26
    Visual Basic 6 24
    Smalltalk 21
    Delphi 5 18
    Языки запросов 16–13

    С++ и Java не так уж сильно отличаются. Стиль написания кода у разных программистов оказывает большее влияние.

  3. Sergey Vysotsky написал:

    Стиль написания, по хорошему, нужно унифицировать через code conventions в рамках проекта. Иначе проблем потом не оберешься.

    А разменный курс на правду похож, да.

Оставьте комментарий

Вы должны войти, чтобы оставить свой комментарий.