Любой программист знает, что такое зависимость модулей. Если ты хочешь, чтобы твоя программа умела делать какую-то стандартную штуку – например, скачивала файлы из интернета – ты не станешь писать весь функционал сам. Ты просто включишь в свою программу уже готовый модуль, в котором есть все необходимые инструменты.
Но модуль, в свою очередь, сам полагается на другие модули, функции из которых использует. Их тоже придется включать в программу.
В результате получается структура, которая называется графом зависимости. Она показывает все модули, необходимые программе для работы.
Биолог Уинстон Эверт в работе "The Dependency Graph of Life" предположил, что именно такова подлинная классификация жизни. Виды похожи не потому, что у них был общий предок, а потому, что они используют одни и те же генетические модули.
Чем ближе виды, тем больше у них общего кода.
Скажем, кошка и рысь используют модуль «кошка», которому для работы необходим модуль «хищник», а тому, в свою очередь – модуль «млекопитающее», и так далее, вплоть до своеобразного БИОСа, который задает базовые функции живого существа как такового. В собаке же присутствует модуль «собака», который тоже вызывает функции модуля «хищник» и всех остальных, но делает это по-другому.
Хорошая гипотеза позволяет делать нетривиальные предсказания:
В данном случае мы предсказываем, что должны быть достаточно большие участки кода (генные семейства), одинаковые для видов, совершенно не родственных между собой. Например, если требуется разработать код морского млекопитающего, незачем писать его с нуля – можно взять тот, что уже написан для другого морского млекопитающего.
ДНК – своего рода машинные коды жизни.
Но программисты крайне редко пишут в машинных кодах. Обычно они пользуются языком высокого уровня или хотя бы ассемблером, а затем поручают программе перевести это на язык, понятный компьютеру.
Современные компиляторы еще и оптимизируют код, так что предсказать, какой будет окончательная последовательность байт, становится невозможно.
Что если ДНК – как раз и есть результат работы компилятора, который уже умеет оптимизировать, но плохо с этим справляется?
Это объяснило бы многие странности в генетических «программах», например, т.н. «мусорный код». Он не выполняется ни при каких обстоятельствах, но выкинуть его из исполняемого файла компилятор не догадался.
Возможно, это функции какого-то из модулей, в которых нет необходимости в этой программе.
Дятел является результатом разумного замысла?
Шея жирафа: символ эволюции или символ сотворения?
Совпадение? Не думаю...
Солнечная система — это аномалия в космосе.
Стирая границы.
Принц Чарлз и архитектор Фидий
Как понять замысел Бога?
Разумный дизайн?
Следствие замысла.
Жизнь — это артефакт!
От простого к сложному?
МАТЕМАТИКА - ВНУТРИ РЕАЛЬНОСТИ
Внешний организующий интеллект.
Ряд парадоксов.
Способность ЖИЗНИ.
Гипноз мировоззрения.
О эволюции.
Новые аспекты эволюции.
Представление об эволюции.
"Филогенетический конфликт".
Journal information