Category: it

Category was added automatically. Read all entries about "it".

scoundrel

Бог как программист


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

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

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

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

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

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

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

Машины Тьюринга - предшественники современных компьютеров

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

Борис "Всё-Смешалось-в-Доме-Облонских" Тененбаум, Англо-Германская война на море, 1939-1945

Программисты оценят. Не Купцов, конечно, но тоже хорошо.
  • Current Music
    7,896.68