![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вот сижу, пишу программу. А профессиональная хоббишная деформация в бекграунде комментирует:
Зачем всё это мне? Затем что Киберморф я не забросил. Проект находится на стадии очередного обдумывания направления дальнейшего развития. А для этого тема продолжает исследоваться. Изучается вопрос: чем отличается среда биохимии и генетики от среды программной. Какими дополнительными условиями требуется обеспечит программную среду, чтобы эволюция киберморфов не барахталась, застряв в топологических ямах, а стала двигаться, хоть в каком-то направлении.
добавил в программу кучу строк | - | мутаген (я) спровоцировал появление пачки мутаций, увеличившие геном на пару килобайт |
проверил корректность кода (perl -c) | - | мейоз прошёл успешно |
запустил скрипт на исполнение/тестирование с заданными параметр-сетами | - | новый организм проверяется на жизнеспособность в разных условиях |
проанализировал код. вынес дублирующиеся алгоритмы в отдельную подпрограмму | - | транспозоны в действии |
один кусок кода не понравится, рядом скопировал его же и стал в новую копию вносить изменения | - | произошла дупликация гена. одна из копий попала под последовательность прогрессивных мутаций |
закоментил старый код | - | мутация пришласьна сайт транскрипции и ген выключился |
снова погонял новый код, сравнивая со старым. | - | работает отбор, в котором конкурируют старый код с новым |
новый код удобнее в сопровождении | - | новый ген оказался эффективнее. стрый ему проиграл и не выдержал конкуренции |
удаляю старый закоменченый кусок кода | - | очередная мутация привела к потере очередного гена. тут можно поспорить: поскольку новый код призван был заменить страрый, то это была потеря не гена, а дуплицированного аллеля. согласен. однако, в процессе |
новый код в подпрограмме оказался на столько удачным, что я планирую по его образцу нагенерировать ещё пачку подпрограмм и внеся небольшие изменения заставить трудиться каждуго над своей задачей | - | если с предыдущей ситуацией можно ещё было поспорить, мол это никакая не дупликация и расхождение свойств по факту, хотя по процедуре и похоже, то теперь в чистом виде имеем многократную дупликацию и действительно расхождение аллелей с превращением их в разные гены. |
вот неплохая процедурка, результат работы которой пригодится в разных местах программы. Правда в разных местах понадобится чуть-чуть отличающийся результат. Чтобы не плодить подпрограммы - чуть разные но слишком похожие, вносим в неё небольшие изменения - делаем параметро-зависимым её поведение. В результате в зависимости от переданных ей параметров она выдаёт в разных местах немного различающиеся результаты - ровно те, что требуются. | - | Вот тебе и альтернативный сплайсинг: в зависимости от факторов (передаваемы в процедуру параметров) логически работают разные последовательности. То естьif ... then ... [else ...]- аналог интронов/экзонов. Из кода они, конечно, не удаляются, но при исполнении кода при разных условиях работают разные его части. фактически это и есть созревание кода. Полной аналогии ожидать не надо. Куски кода как РНК по программе не гуляют (хотя, вообще-то бывает и такое), а остаются на месте. Аналог экспрессии, созревания происходит при запуске кода. Есил в биологическом организме один ген транскрибируется и транслируется в разные разнесённые в пространстве объекты, то в данном случае транскрипция/созревание/трансляция происходит при исполнении. |
Зачем всё это мне? Затем что Киберморф я не забросил. Проект находится на стадии очередного обдумывания направления дальнейшего развития. А для этого тема продолжает исследоваться. Изучается вопрос: чем отличается среда биохимии и генетики от среды программной. Какими дополнительными условиями требуется обеспечит программную среду, чтобы эволюция киберморфов не барахталась, застряв в топологических ямах, а стала двигаться, хоть в каком-то направлении.