...Сошлюсь опять на Докинза, который разбирается в эволюционной биологии и программировании лучше нас всех вместе взятых, ДНК не программа или архитектурный чертёж, но кулинарный рецепт с весьма большой свободой.
Хотелось бы спросить Докинза:
а что значит "большая свобода"?
А почему бы не прочесть самого (т.е. его книги) известного эволюциониста, имеющего несколько научно-популярных книг по теме?
Это когда из семечка подсолнуха получается, например, баклажан?
Нет, это означает, что в результате ошибки в ДНК всё равно вырастет подсолнух. А из исправной ДНК в одних условиях вырастет большущий цветок, а в других -- мелочь незрелая. Или в результате ошибки вырастет не совсем подсолнух.
Для программы так нельзя. Любой программы. Поскольку ЦЕЛЬ программы -- получить запрограммированный результат.
Хотя тут есть определённая тонкость. О которой я писал ранее. Целью ДНК в семечке не является взращивание подсолнуха. Т.е. писать, что в семечке в ДНК прописано выращивание подсолнуха, не верно. Подсолнух для ДНК -- промежуточный этап в цепи собственного копирования. ДНК совершенно непринципиально, получится из неё подсолнух или баклажан. Ей важно реплицироваться дальше.
Т.е. в ДНК "записана программа" создать ХОТЬ КАКОЙ-ТО способный к размножению организм, который проживёт достаточно, чтобы оставить хоть одного потомка, тем самым продолжив "жизнь ДНК", хотя и не в виде той же самой молекулы.
Вот только достигается это тем, что то самое ДНК в потомках повторяется не абсолютно точно. Т.е. речь идёт не только о конкуренции между ДНК, но и о аллелях в одном ДНК.
Теперь представим простую схему перехода этого самого семечка в подсолнух (взрослое растение):
Х → Х2 → Х3 → ..... → Х9 → Х10, где
Х - семечко,
Х10 - взрослое растение,
Х2...Х9 - переходные звенья.
Бессмысленная херотень.
Что имеем? Правильно, последовательность действий!
Нет, не имеем, поскольку этапы онтогенеза ни разу не последовательность действий по их прохождению.
Кстати,
кулинарный рецепт тоже является программой, только созданной человеком.
Ничего подобного. Это я как кулинар-неумёха говорю.
Разница между рецептом и программой как раз в степени свободы. Положить в блюдо 3-4 куриных яйца, 3 щепотки соли, чайную ложку соды и муки, пока тесто не станет густотой со сметану -- это рецепт, а не программа. Поскольку можно сыпать муку в кефир, а можно кефир лить в муку. Можно класть соду до соли, а можно после. Соду можно заменить разрыхлителем теста, кефир -- кислым молоком, ацидофиленом, простоквашей, йогуртом или вообще водой. Месить всё можно деревянной ложкой, можно крутейшим миксером, руками или вилкой. Запекать на чугунной или керамической сковороде. На рафинированном или нет подсолнечном масле, или на оливковом и т.д. Итогом всё равно станут оладушки.
Тогда как в программе замените int на float и получите результат далёкий от. Потому как float считается приближённо, а int -- точно.