Мне понравилось, тема даже где-то немного серьезная
Археологические раскопки в Древней Индии
Итак, все ругают плохо написанный код. Давайте-ка посмотрим...
Если в коде много goto, возможно, программу перетащили с Фортрана; чем их больше, тем древнее версия.
Если в названиях идентификаторов присутствуют дикие сочетания букв, разбавленные подчёркиванием, возможно, исходно это был Фортран БЭСМ-6, где позволялись русские буквы.
Если все переменные в программе глобальные — скорее всего, программа «познакомилась» с третьей версией микрософтовского Фортрана, где надо было распихать переменные по 64-килобайтным common-блокам.
Если сишный код плохо отформатирован, скорее всего, код был знаком как с Борландом (три пробела на отступ), так и с Микрософтом (одна табуляция).
Если в коде на С++ много указателей на функции, значит, изначально код был сишным.
Если системные вызовы завёрнуты во множество вложенных «обёрток», которые просто перекладывают параметры из пустого в порожнее и ничего не делают, это годовые кольца: их столько, сколько платформ сменил продукт.
Если имена переменных совпадают с названиями регистров процессора, значит, кусок, написанный на ассемблере, пытались утянуть на другой процессор.
Если всё сказанное выше замешано в крутой коктейль с кусками вменяемого кода, значит, пытались рефакторить.
Если не используются очевидные фичи, значит, в исходном фреймворке их не было.
Если встречается эмуляция RTTI и интерпретируемого кода, в предках кода было что-то типа Клиппера.
Ну и, естественно, в коде присутствуют следы идеологической борьбы между разными фракциями программистов и архитекторов, следы модных некогда концепций из Прологa и Смоллтока, попытки имитировать одну платформу на другой...
Такая вот занимательная археология. Если прикинуть, в каких условиях нормальный человек может написать такую муть, много становится очевидным — даже убивать никого не хочется.
http://ithappens.ru/story/4980
Здравствуйте, Michael7, Вы писали:
M>Мне понравилось, тема даже где-то немного серьезная
M>Если в коде много goto, возможно, программу перетащили с Фортрана; чем их больше, тем древнее версия.
Недавно искал БПФ по смешанному основанию,
нашел жуткий исходник на фортране некоего Синглтона. Исходнику больше 30 лет.
Встречались его порты на С с кучей goto. Сначала пытался разобраться, потом бросил.
M>Если имена переменных совпадают с названиями регистров процессора, значит, кусок, написанный на ассемблере, пытались утянуть на другой процессор.
+500
Сам неоднократно портировал код с ассемблерными вставками
M>http://ithappens.ru/story/4980
похоже, в этом "индусском" безобразии, каждый, насмеявшись вдоволь, в какой-нибудь строчке да найдёт свой собственный косяк...