четверг, ноября 09, 2006

Про "гуру"

В одном из комментариев товарищ пейсатель меня подколол (как он думает), что, мол, если уж гуру-Fawler не рассматривает случай cо смертельными блокировками в транзакции, то куда уж практикующим программистам (что, очевидно, надо читать, как "ханурикам"). Меня всегда удивляла страсть людей найти себе идола и ходить за ним, ловя каждое слово. Когда-то я тоже был таким. Купил в 92м году чёрную книжку Буча, изданную в отвратительном переплёте, со странным переводом и отчаянно пытался понять, о чём базар. А летом 93го потратил полтора месяца на то, чтобы разобраться с борландовским Turbo Vision и это рассказало мне об объектном программировании много больше, чем все книжки всех бучей в мире, вместе взятые. Тогда мне показалось, что это случайность, но спустя несколько лет (может, 5, может, 7, я не помню) случилось разбираться с ПО компании Rational. Если вы читаете это, то не можете не знать, что это такое, как выглядит и как работает. А между тем, один из ведущих, если не главный у них был тогда Буч. Первая икона порублена. Дальше. В 93м же, Макконнелл издал свой дидактический труд Code Complete. Это хорошая книжка. Я читал оригинал, я читал перевод, могу сказать, что перевод ничего не потерял. А всякий, кто имеет глаза, может подтвердить, что CC2 (то, что вышло в прошлом году после моего ему письма, между прочим) - это полное собрание компьютерных банальностей. Просто их много и количество переросло в качество. Вот прямо сейчас открываю на произвольной странице этот кирпич, читаю (стр. 397):

чтобы переписать пример, используя подход с try-finally,
поместите код, который должен проверять возможные ошибки, в блок try,а код
очистки - в блок finally.
Гениально и непостижимо! Кто бы мог подумать, что finally именно для этого. Закрываю и открываю снова. Стр. 700
Управление версиями. Справиться с быстро растущим количеством версий ПО
позволяют инструменты управления версиями...
Ниже там же.

Компиляторы преобразуют исходный код в исполняемый

Всякий может это проверить, а кроме того (мне уже лень) - найти нечто подобное, открыв Макконнелловский опус на любой любимой странице. Тем более, что это так нетрудно. Как человек, изрекаюший такие банальности на протяжении 13 лет может считаться гуру? По-моему, никак. Хороший дидактический труд, для студентов, не серьёзней. Там нет ничего такого, до чего любой "практикующий программист" (с которого взять нечего, как мы все уже знаем) не дошёл бы сам через пару лет нормальной работы.

Дальше. Икона архитектурных астронавтов - Фоулер. Не поленюсь, открою и его. Увы, не открою. Книжка ушла в макулатуру. Ну, попробую по памяти. Раздел "корпоративные приложения":
вы можете реализовывать шаблоны так и эдак, но вам всё равно придётся их
реализовывать.
А кто в этом сомневался? Когда люди придумывают шаблоны ради того, чтобы попасть в неизвестную мне книгу рекордов, это вызывает смех и раздражение, если некий поклонник хочет научить кого-то. Доведение обычного вызова метода до метафоры некой абстрактной команды - это очень круто, но для меня - совершенно бесполезно. В точности так, как расписывать девиации в реализации фабрики классов. Я ваще-т не первый год в шоу-бизнесе, мне не надо втирать о модных подходах к инстанцированию (почему-то почти все доморощенные переводчики очень любят использовать этот "глагол"). Лучше покажите, что вы написали, где оно работает и насколько им довольны клиенты. Это единственный критерий. И другого нет. А все эти "Банды Четырёх" (из четырёх пузато-близоруких гангстеров) ---.

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

Люди, которые могут претендовать на техническое превосходство, глубоко законспирированы и чужды публичности. Как правило. Много ли вы слышали про Дэвида Катлера? А в его ОС вы сейчас читаете этот текст. Знакомы ли с мировоззрением и предпочтениями в шаблонах проектирования Алана Купера? Сомневаюсь. А этот человек сделал Visual Basic и всё, что это повлекло за собой. Вот это -люди. Но я что-то сомневаюсь в том, что у них есть какие-то поползновения на "поучить практикующих программистов". Потому что они сами программисты. В отличие от.

4 комментария:

Unknown комментирует...

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

про гурей - да. А чо делать? эти хоть как-то более-менее пишут. Наши местные куда хуже.

Das Ich комментирует...

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

Unknown комментирует...

Вопрос по Макконнеллу: разве СС2 -- это не переработанное первое издание? Понятно, что под веянием моды добавилось много нелепых банальностей, однако неужели в целом костяк книги -- не то же, что было в 93м? Спрашиваю без подвоха, потому что хочу узнать, ибо первое издание я не застал, но могу судить по тому, что вижу сейчас: СС2 сейчас для многих начинающих программистов срывает покровы с очень многих "тайн" профессии. Особенно это видно по тому факту, как сильно уменьшилось количество студентов, по настоящему одержимых программированием, ибо такие языки как PHP сильно провоцируют на пробелы в знаниях такого плана.

Das Ich комментирует...

У меня первого нет. Я читал его в EPAMовской библиотеке, когда там работал. По памяти - разницы не заметил (ну кроме того, что 1е изд. - не русское).

Есть много моментов в Макконелле. Он, прежде всего, талантливый инженер. И к программированию подходит комплексно, как к процессу, направленному на достижение результата с заданными наперёд показателями. Во-вторых, он инженер компьютерный. В-третьих, сангвиник с устойчивой психикой. Всего этого достаточно, чтобы сказать, что существенная часть его идей будет чужда большей части программистов. A priori.

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

Так что Макконнелл - руководство по получению от средних (то есть, почти всех) программистов максимальных результатов. А тупиздни и гении в его поваренную книжку не помещаются.