progstone

Mar 06, 2007 19:17

Книгу "Programmer stone" читал достаточно давно, но вот на wikipedia написано, что сайт перевода недоступен. Так вот - ничего подобного, progstone.nm.ru жив и здоров.
Сама книга, вообще говоря, нехороша: 90% - обычный программисткий треп, а иногда складывается впечатление, что авторы пишут не про "картостроителей" и "паковщиков", а про себя и остальной мир, и в итоге - про хороших и плохих программеров. ну, и кроме того перевод идеальным назвать нельзя.
Но первую главу прочитать, по-моему, стоит


То, что представляется как социально обусловленное общепринятое мышление (называемое паковкой - packing), основано на действии. Чтобы быть хорошим каменщиком, паковщик должен знать, что делает каменщик. Но что же делает программист? Большинство разрабатываемых паковщиками моделей программирования являют собой концепцию Программной Фабрики. В ней пункты требований от заказчиков входят в одну дверь и обрабатываются рабочими по описанной в руководствах процедуре. Когда производственная линия завершает свою работу, программа выползает из другой двери. Это работает на автомобильных заводах.

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

Паковщики, бескомпромиссно защищающие ориентированные на процессы Программные Фабрики, действительно заявляют, что способны реализовать Искусственный Интеллект, имитирующий разработчика на конвейере, и сделать это, используя в качестве своего компьютера перемещающих листки бумаги людей. К сожалению, паковка не способствует пониманию производства программ и приводит к ужасной путанице. Это означает, что иногда паковщики произносят очень глупые вещи.

Чтобы понять, что же на самом деле делают программисты, требуется альтернативная стратегия мышления (называемая картостроение - mapping), поскольку программирование по сути - это процесс усвоения возможностей системы, природы задачи и желания, а затем выражение результатов исследования на языке программирования. Вся суть в исследовании деталей наших желаний и понимание их таким способом, что мы можем отследить всю их сложность. Решение проблемы картостроителем может привести к красивым, компактным, элегантным программам, в которых нет места для ошибок. Картостроение может осуществлять программирование, но способ, каким оно это делает, невозможно объяснить на языке паковщика (ориентированном на действия).

Паковщики, таким образом, заключают, что хакеры "необъяснимы" и отвергают их работу, говоря, что сложность по своей внутренней сути необъяснима, и мы должны создавать все более сложные процедуры, чтобы избежать ответственности.
К счастью, многие управленцы в организациях продолжают поощрять обдумывание на основе интуиции и эмпирического опыта, без попыток вложить их в прокрустово ложе процедурных (основанных на действии) инструкций. Это трудно сделать, но это единственный способ довести что-то до результата.

Очень важно осознать, что картостроение - это не еще одна процедурная методология, которую нужно загрузить в голову паковщика. Это другой способ посмотреть на все вещи сразу. Необходимо осознать, что реально возможно принять личную ответственность за работу вместо того, чтобы уйти от нее, прячась за процедуру.

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

--

Осознавая важность картостроения, предложим другой взгляд на то, что произошло в Японии на самом деле. Картостроение определенно можно пробудить травмой. Вот возможные способы травмировать людей:
1. Скинуть на них атомную бомбу. Дважды.
2. Похоронить их застойное, предсказуемое феодальное общество.
3. Сказать им, что завтра придут захватчики.
4. Оставить их без ужина.

Чтобы поесть, человек вынужден пробудить свою способность мыслить. Поэтому к тому времени, когда Деминг прибыл в Японию, народ, с которым ему пришлось работать, был уже картостроителями. Поголовно. Весь сразу. Возможно, все, что нужно было сделать Демингу, - это взять листок из "Необыкновенных приключений Билла и Теда", встать на чайной церемонии и закричать: "Будьте внимательнее друг к другу!"

--

Lisp требует применения неудобоваримых манипуляций с лямбда-исчислением, которые приводят к появлению "собаки для еды" (dog of food) вместо "еды для собаки"

книги, цитаты

Previous post Next post
Up
[]