fat_yankey: (Default)
[personal profile] fat_yankey

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

С одной стороны каждый новый вид суть некий апгрейд предыдущего (эволюционизм), с другой стороны изменения дискретны и осмысленны - или маленькую новую фичу прикрутят, или архитектуру икрометания коренным образом рефакторят, всё одно требуется инженерное вмешательство, некий великий инженер. В нашем случае инженер-программист, ведь изменения нужно запрограммировать в ДНК. При этом по всем законам программирования от старой версии должны оставаться разные рудименты и атавизмы, неиспользуемые куски кода и прочий мусор. И да, они остаются, мы их наблюдаем.

Ну, понятно что этот бог отличается от всевеликого, всеведающего и всеблагого сотворившего мир одним махом. Так ... демиург какой-то. Например, у него в творениях постоянно вылезают баги, приходится их патчить в следующих версиях. Некоторые пропатчить не успевают и несчастные смилодоны вымирают от остеохандроза в страшных мучениях. Впрочем, нишевые виды можно и не патчтить, а списывать в legacy. И да, мы видим - legacy крокодилы живут себе в неизменном виде уже 80 миллионов лет и легко проживут ещё столько же.

Однако, если мы записали бога в программисты, то хотелось бы определиться со стилем его программирования. Можно ли чему-то здесь научится? Просмотр "Доктора Хауса" наглядно демонстрирует что божественные программы написаны спагетти-кодом. По симптомам совершенно неочевидно, какой именно участок кода сбоит. Все органы и системы взаимосвязаны, неисправность в одном месте порождает каскад отказов в других, порою самых неожиданных. Картина знакомая любому кто работал со старыми системами (большинство систем накапливая изменения гомогенизируются в Big Ball of Mud).

Такой стиль программирования обычно приводят в пример как "антипаттерн".

Но я бы не стал торопиться осуждать бога. Подумайте - в геноме человека всего-навсего 3 с хвостиком миллиарда пар оснований. Т.е. размер кода 6,5 гигабит, чуть более 800 мегабайт. Меньше чем Microsoft Office, а запрограммирован целый человек. Такое на языке высокого уровня не создашь, только ассемблер, только хардкор.

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

Date: 2014-06-11 04:22 am (UTC)
From: [identity profile] hemdall.livejournal.com
=) Очень древний боян - читал аналогичные рассуждения в бумажном журнале в году этак 88-89.
Но смешно, да.

UDP. Да и еще - ДНК не программный код в буквальном виде, кодирование "межклеточного взаимодействия".
То есть в программном смысле - это программа отношений объектов дающая в итоге чрезвычайно гибкую само-программирующуюся и саморазвивающуюся уникальную систему.
Edited Date: 2014-06-11 04:26 am (UTC)

Date: 2014-06-11 04:26 am (UTC)
From: [identity profile] fat-yankey.livejournal.com
Если в 88-89, то это уже не боян, а ретро или винтаж.

Date: 2014-06-11 04:31 am (UTC)
From: [identity profile] hemdall.livejournal.com
Винтаж не винтаж но Вы повторили идею 1:1.

Там еще развитие было - что обратном смысле файлы в компе могут получить самосознание и начать на конгрессе рассуждать что "Великое Включение Вселенной" было не один раз.

Date: 2014-06-11 05:06 am (UTC)
From: [identity profile] eugene-gu.livejournal.com
Коль хорошо забытое - то новое! :)

Date: 2014-06-11 04:46 am (UTC)
From: [identity profile] lefantasy.livejournal.com
Самофоркающаяся система.

Date: 2014-06-11 05:51 am (UTC)
From: [identity profile] hemdall.livejournal.com
Именно - как две ветки пересекутся так следом форки с улучшениями от одного до пары десятков =)

Profile

fat_yankey: (Default)
Igor Kurtukov

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28 2930 31   

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 04:54 pm
Powered by Dreamwidth Studios