kaipa: (Default)
[personal profile] kaipa
Пост одного френда навел на интересную аналогию: программы довольно неплохо подчиняются теории Дарвина.

Среда обитания -- это определенная предметная область, в которой используется программа. Среда обитания может быть жестко формализована (например, космос), а может -- и нет (игры и прочая фигня).

Очевидно, что есть естественный отбор и конкуренция (рынок). Сначала идет внутривидовой отбор (тестирование, продукт-менеджмент). Самые неудачные умирают сразу. Затем программа выходит в мир, и сталкивается в конкуренции с похожими. Где либо выживает, либо нет.

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

Мутации и скрещивание генов -- рефакторинг, включение новых библиотек и включение новых программистов.

И т.д.

В определенных случаях саму программу удается настолько формализовать, что эволюцию и естественный отбор в классе программ можно промоделировать (другой программой). Это называется Генетическим программированием (частный случай генетических алгоритмов).

Интересно, что по-моему у Иванова-Петрова была как-то дискуссия о том, что научные теории развиваются по похожим принципам. Более того, человеческая созидательная мысль сама по себе работает так же. При решении любой проблемы, человек, отталкиваясь от какого-то фундамента, пробует малые изменения, и в голове проводит естественный отбор идей и изменений. "Прыжки", совершаемые гениями, очень редки, и как правило лишь кажущиеся, когда промежуточные шаги просто не видны наблюдателю.

Profile

kaipa: (Default)
kaipa

April 2017

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 24th, 2026 09:33 am
Powered by Dreamwidth Studios